裁剪空间法-引出平面


在这里另外一种扩展视景体空间的方法就是基于裁剪空间属性。

假设一个点p=(x,y,z,1)位于3D空间中。同样假设一个模型变换矩阵M和投影矩阵P。点p经过矩阵M和矩阵P变换之后的在裁剪空间中的点pc=(xc,yc,zc,wc)

pc是本地坐标,当规范化后的点pcn:

在规范化的裁剪空间中视景体是中心在原点的轴对齐的长方体,是通过下面的平面包围的:

1. 左平面:x’= -1;

2. 右平面:x’=  1;

3. 顶平面:y’ = 1;

4. 底平面:y’ = -1;

5. 近平面:z’= -1;

6. 远平面:z’= 1;

如果点pcn=(x’,y’,z’)在视景体内部那么:

那么没有规范化的点pc,要在视景体内部要满足:

基于这些信息可能可以找到六个平面,在世界坐标中,视景体包围盒,点pc在左平面的右边需要:

假设p和A = MP,可以用下面描述:

其中的xc和wc可以用函数p=(x,y,z,w)和A来定义:

那么如果点p在左平面的右边必须满足:

修整不等式得到:

因此左边平面的方程(Ax+By+Cz+D=0):

其中col1和col4分别代表矩阵A第1行和第四行。

如果只是简单的判断点是在视景体之外还是之内用定义的平面就可以了。然而当测试球体时,就需要计算球体中心到平面的距离,最好是规范化平面

右边平面也可以用相似的方法来计算:

下面的系数是用来定义右平面:

剩下的平面如下:

底平面:

顶平面:

近平面:

远平面:

英文地址


我的博客地址:http://www.arcosu.com/post/index/105

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值