天天看点

5.9 裁剪

完全不在视锥体内的几何体需要被丢弃,并且几何体与视锥体相交的的边界必须被剪切,所以,只有内部部分保持;请参阅图5.27中的2D所示的理念。

我们可以把视锥的作为由六个平面包围的区域:顶部,底部,左,右,近,远平面。为了对视锥进行多边形裁剪,我们通过对视锥体的每个平面逐一裁剪。当裁剪多边形平面时(图5.28),平面的正半空间的部分保留,且在负半空间的部分被丢弃。对一个平面裁剪的凸多边形后,结果还是凸多边形。因为硬件负责裁剪,我们将不包括在这里的细节;相反,我们建议读者参考流行的Sutherland-Hodgeman裁剪算法[Sutherland74]。它基本上相当于找到平面和多边形边缘之间的交叉点,然后排序顶点,以形成新的剪裁的多边形。

[Blinn78]介绍了如何裁剪可以在四维到齐次空间(图5.29)来完成。在透视分割后,点

在视锥里面是标准化设备坐标,界定如下:

所以在均质裁剪空间,在除法之前,在视锥内部的4D点(x,y,z,w)是有界限的,如下所示:

即,点由简单4D平面限定: