我正在用C++编写软渲染器来学习,但遇到了一点问题。我不确定剪裁是在何时进行的。有些资料说它会在透视投影矩阵应用后但在透视除法之前(仍处于三维空间)的剪裁空间中发生。其他资料则说要在2D空间(透视除法后)使用像Cohen-Sutherland线段剪裁算法这样的算法进行剪裁。如果我应该在3D空间中剪裁,那么深度缓冲区只用于确定对象栅格化的顺序,还是必须在二维空间中进行剪裁,并且还要防止将超出z缓冲区中-1的点进行栅格化?
基本上,关于这方面的信息不是非常清楚,而我也没有看到过如何在齐次剪裁空间中进行剪裁。有人说你应该这样做,但却没有人展示如何操作。