【翻译】View Frustum Culling --3 Clip Space Approach – Extracting the Planes
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【翻译】View Frustum Culling --3 Clip Space Approach – Extracting the Planes,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含916字,纯文字阅读大概需要2分钟。
内容图文
3、使用裁剪空间的方法提取平面
上一篇中,我们讨论了通过几何的方法提取视锥体的六个片面。在这一篇中,我们继续讨论通过裁剪空间的方法来提取视锥体的平面。
假设现在在世界坐标系中有一点p=(x,yz,1),modelview矩阵记作M,projection矩阵记作P。当点p经过这两个矩阵变换后变到pc=(xc,yc,zc,wc)的位置,即
因为pc点是由齐次坐标表示的,则其正则化后为pcn:
在正则化的裁剪空间中,视锥体的中心与单位立方体的原点对齐,且它的六个平面由以下平面界定:
- Left Plane: x’ = -1
- Right Plane: x’ = 1
- Top Plane: y’ = 1
- Bottom Plane: y’ = -1
- Near Plane: z’ = -1
- Far Plane: z’ = 1
那么,当pcn=(x‘,y‘,z‘)的坐标满足以下关系时,就证明pcn在视锥体内部:
往前推一步,没有正则化的pc=(xc,yc,zc),如果想在视锥体内的话,那它的坐标范围为:
基于这样的信息,那么我们就可以用世界坐标来届定六个平面,例如,当pc点在左平面的“右”侧时,就必须满足:
继续向前推一步,考虑点p的坐标,记A=MP,如下图所示
点pc中xc和wc坐标就可以通过以下式子计算:
则p点在视锥体左平面的右侧就可以用以下不等式表示:
经过如下简单代数变换:
就可以得到左平面的一般方程:(Ax+By+Cz+D=0)
其中,col1和col4分别代表A矩阵的第一列和第四列。
如果我们只需要考虑一个点在平面左还是右,那上面的定义已经足够了,但是在后面我们还要检测球体在平面的左侧还是右侧,这需要计算球心到平面的距离。就还需要对平面进行一般化,即求出其一般方程。
右平面也可以通过同样地方式获得:
右平面方程的系数:
剩余的平面:
下平面
上平面
近平面
远平面
原文:http://www.cnblogs.com/wildbloom/p/7253981.html
内容总结
以上是互联网集市为您收集整理的【翻译】View Frustum Culling --3 Clip Space Approach – Extracting the Planes全部内容,希望文章能够帮你解决【翻译】View Frustum Culling --3 Clip Space Approach – Extracting the Planes所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。