Shader数学基础16-齐次除法
在图形渲染管线中,投影操作是至关重要的一步,特别是在从裁剪空间(Clip Space)到屏幕空间(Screen Space)的转换过程中。这一过程的核心是通过标准齐次除法(也称为透视除法),将三维空间中的顶点映射到二维屏幕空间中。
1. 齐次除法
齐次除法是将裁剪空间中的顶点坐标(x, y, z, w)通过 w 分量进行除法运算,从而将裁剪空间中的坐标转换为标准化的设备坐标(NDC,Normalized Device Coordinates)。这一步确保了透视效果的正确呈现,特别是在透视投影中,远离观察者的物体会被缩小,而靠近的物体则会显得更大。
公式:
x' = x / w
y' = y / w
z' = z / w
此时,裁剪空间中的坐标(x, y, z)会被映射到 NDC 空间,x、y、z 的值会被缩放到 [-1, 1] 的范围内。
对于正交投影,由于所有的物体距离观察者的距离保持一致,因此齐次除法不会对 x、y、z 的值产生影响。正交投影后的裁剪空间已经是一个立方体,因此这一步操作仅对透视投影才有实际意义。