这是个有着复杂答案的简单问题:
“为什么我的透明物体的绘制顺序不对, 或者有些不见了?”
当绘制一个3D场景时, 对图形进行深度排序是非常重要的, 这样离镜头近才画在远处物体的前面....如果对场景中的所有物体进行排序, 那我们就可以先画远处的, 再画近处的, 这样就可以确保前面例子中的B可以在A之前绘制.
不幸的是, 这说起来容易做起来难....对物体进行排序在很多情况下并不适用, 如A和B相交的情况该怎么办?
如果A是个玻璃杯而B是它里面的一个玻璃球时就是这样....无论你从哪个角度看, 每个屏幕上的像素都会被覆盖两遍: 一次是物体的前面, 一次是后面. 如果你用背面剔除丢弃了背面的三角形, 那就只剩前面了....)
油画家算法对透明的物体排序(两个透明物体相交时仍然会有排序错误)
依赖背面剔除来对单个透明物体上的三角形排序(如果物体不是凸面体也会产生错误)
结果并不是非常完美, 但是非常高效, 易于实现, 对于大多数游戏来说也够用了