c语言一维数组怎么快速排列
233
2022-09-25
5.9 裁剪
完全不在视锥体内的几何体需要被丢弃,并且几何体与视锥体相交的的边界必须被剪切,所以,只有内部部分保持;请参阅图5.27中的2D所示的理念。
我们可以把视锥的作为由六个平面包围的区域:顶部,底部,左,右,近,远平面。为了对视锥进行多边形裁剪,我们通过对视锥体的每个平面逐一裁剪。当裁剪多边形平面时(图5.28),平面的正半空间的部分保留,且在负半空间的部分被丢弃。对一个平面裁剪的凸多边形后,结果还是凸多边形。因为硬件负责裁剪,我们将不包括在这里的细节;相反,我们建议读者参考流行的Sutherland-Hodgeman裁剪算法[Sutherland74]。它基本上相当于找到平面和多边形边缘之间的交叉点,然后排序顶点,以形成新的剪裁的多边形。
[Blinn78]介绍了如何裁剪可以在四维到齐次空间(图5.29)来完成。在透视分割后,点
在视锥里面是标准化设备坐标,界定如下:
所以在均质裁剪空间,在除法之前,在视锥内部的4D点(x,y,z,w)是有界限的,如下所示:
即,点由简单4D平面限定:
Left: w = –x Right: w = x Bottom: w = –y Top:w = y Near:z = 0 Far:z = w
一旦我们知道在到齐次空间的视锥平面方程,我们可以应用裁剪算法(如Sutherland-Hodgeman)。需要注意的是段/平面相交测试概括到,所以我们可以用4D点和4D平面在均质裁剪空间中做测试。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~