如何裁剪
判断点与裁剪平面的关系
这是一个三维空间 plane是裁剪平面 P是裁剪平面上的一个点 n是裁剪平面的法线
判断线与裁剪平面的关系
其实从上面我们就能知道 分别通过两个点和裁剪平面的关系我们能知道正负值 这样我们就能知道关系了
当线和裁剪平面相交时
我们应该做的是求交点 然后通过交点裁剪出位于裁剪平面内部的三角形
例如
求点I
I = Q1 + t × (Q2-Q1)
如何在四维裁剪
比如我们要对(x,y,z)这个点进行(1,-1)(1,-1)(1,-1)这三个维度进行裁剪 转到(x,y,z,w)同裁剪的话就是
什么时候裁剪
一般在透视除法(/w)之前进行裁剪 也就是上面那种裁剪 防止w为0的时候出现除0错误
他在透视除法前进行裁剪就进行一个w=E(极小的一个数)的平面裁剪 保证留下w>0的顶点
我们也可以自定义在顶点坐标中就对顶点进行裁剪
裁剪的几种情况
按照图形裁剪与窗口一视图区变换的先后顺序,裁剪的策略有两种。
一种是先裁剪后变换,即图形裁剪在用户坐标系下相对于窗口进行,这样可避免落在窗口外
的图形再去进行无效的窗口一视图区变换,因此,这种策略比较快。
另一种是先变换后裁剪,即先进行窗口一视图区变换,转换为屏幕坐标后,再裁剪,这时,
裁剪是在屏幕坐标系下相对于视图区进行的。
按照图形生成与裁剪的先后顺序,裁剪的策略也有两种。
一种是先生成后裁剪,这种策略只需简单的直线段的裁剪算法,但是可能造成无效的生成运算。
另一种是先裁剪后生成,这种策略可避免那些被裁剪掉的元素进行无效的生成运算,但却需
要对比较复杂的图形(如圆弧等)进行裁剪处理。