在渲染的时候,图形管线会先对每一个位置的像素存储一个深度值,称为深度缓冲,代表了该像素点在 3D 世界中离相机最近物体的深度值。于是在计算每一个物体的像素值的时候,都会将它的深度值和缓冲器当中的深度值进行比较,如果这个深度值小于缓冲器中的深度值,就更新深度缓冲和颜色缓冲的值,否则就丢弃。深度测试发生在片元着色器处理之后, 透明度混合之前。
6.提前深度测试在哪个阶段?
方法一:思路是判断像素点 P 是否在三角形三条边的同一侧,具体方法是顺时针(或逆时针)用三角形的三条边作为向量分别与顶点与 P 构成的向量作叉乘,如 ABxAP,BCxBP,CAxCP,判断三个叉乘是否同号,同号则说明点 P 在三角形内部。
方法二:思路是计算三角形关于点 P 的重心坐标 (\alpha,\beta,\gamma) ,如果重心坐标都大于零,则表明点 P 在三角形内部。
14.光线追踪的流程
参考