先渲染后面的物体,后渲染前方的物体,前方的物体覆盖后方的物体——画家算法(Painter Algorithm)
将需要光栅化的三角形进行深度排序,此时的时间复杂度是O(nlogn)
But 会出现在这样的问题,出现一下的情况

当前图片无法判断P Q R 哪一个图片在前面 自然这种算法让是不可取的
三角形无法进行排序,所以深度缓存算法用每个像素点进行排序
frame buffer(帧缓存)—存储结果(当前看到图片)
depth bufffer(深度缓存)—存储当前图片的深度
两个缓存同时生成
相机的坐标在原点向Z轴的负方向,因此数字越小反应距离计算机越远,数字越大反应离计算机越近
先将所有像素深度视为负无穷
for(each triangle T) //遍历每一个三角形
for(each sasmple (x,y,z) in T) //遍历每一个三角形的下像素点
if(z < zbuffer[x,y]) //如果当前遍历的像素点深度小于图片深度
framebuffer[x,y] = rgb; //则将图片深度设置为当前三角形深度
else donothing
对于遍历三角形来说时间复杂度为O(n) ps:与顺序无关