OpenGL3.3-裁剪

如何裁剪

判断点与裁剪平面的关系

请添加图片描述
这是一个三维空间 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的顶点

我们也可以自定义在顶点坐标中就对顶点进行裁剪

裁剪的几种情况

按照图形裁剪与窗口一视图区变换的先后顺序,裁剪的策略有两种。
一种是先裁剪后变换,即图形裁剪在用户坐标系下相对于窗口进行,这样可避免落在窗口外
的图形再去进行无效的窗口一视图区变换,因此,这种策略比较快。
另一种是先变换后裁剪,即先进行窗口一视图区变换,转换为屏幕坐标后,再裁剪,这时,
裁剪是在屏幕坐标系下相对于视图区进行的。
按照图形生成与裁剪的先后顺序,裁剪的策略也有两种。
一种是先生成后裁剪,这种策略只需简单的直线段的裁剪算法,但是可能造成无效的生成运算。
另一种是先裁剪后生成,这种策略可避免那些被裁剪掉的元素进行无效的生成运算,但却需
要对比较复杂的图形(如圆弧等)进行裁剪处理。

网站

主要参考大佬的

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值