Games101 - 遮挡与深度
之前几节课学了怎么映射一个三角面到画面上,这节学多个三角面之间的遮挡关系处理,谁在前谁在后,也就是可见性怎么处理。
实现遮挡关系
画家算法
由远及近依次画(光栅化)。近的物体覆盖远的物体,就可以实现遮挡关系。
但是画家算法也存在一些问题,比如存在一些不可依赖深度排序解决的问题。所以不会直接用画家算法。
深度缓存 Z-Buffer
这是工业界采用的算法。这里的z不是z轴,而是深度 depth,是摄像机位置到所求点的距离。
最后,只渲染每个像素上depth最浅的那个颜色。当物体发生运动后,会同步更新深度,有更小值出现就重新赋色。
深度缓存的复杂度是O(n),而不是排序的O(nlogn),因为深度缓存并不排序只求最小值。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CodingCodingK Blog!