位置: 编程技术 - 正文
推荐整理分享OpenGL学习09_裁剪平面ClipPlane(opengl裁剪平面),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:opengl如何使用,opengl 绘制,opengl如何使用,opengl如何使用,opengl 绘制,opengl截屏,opengl直线裁剪算法,opengl 裁剪,内容如对您有帮助,希望把文章链接给更多的朋友!
除了视景体的6个裁剪平面(左、右、底、顶、近和远)之外,还可以另外再指定最多可达6个的其他裁剪平面,对视景体施加进一步的限制。
每个平面都是由它的方程式Ax By Cz D= 0的系数所指定的。裁剪平面会根据模型和视图矩阵自动执行适当的变换。最终的裁剪区域将是视景体与其他裁剪平面定义的所有半空间的交集。记住,OpenGL会自动对部分被裁剪的多边形的边进行正确的重构。
定义一个裁剪平面。equation参数指向平面方程Ax By Cz D = 0的4个系数。满足(A B C D)M-1 (xe ye ze we) T≥0的所有视觉坐标(xe ye ze we)点都位于这个平面定义的半空间中,其中M是在调用glClipPlane()时的当前模型视图矩阵。所有不是位于这个半空间内的点都将裁剪掉。plane参数是GL_CLIP_PLANEi,其中i是一个整数,表示需要定义哪个有效裁剪平面。i的位于0和最大其他裁剪平面数减1之间。我们需要启用每个被定义的裁剪平面:
也可以用下面这个函数禁用一个裁剪平面:所有的OpenGL实现都必须支持至少6个其他裁剪平面,有些实现可能允许超过6个的其他裁剪平面。可以用GL_MAX_CLIP_PLANES为参数调用glGetIntegerv()函数,查询自己使用的OpenGL实现所支持的其他裁剪平面的最大数量。调用glClipPlane()函数所执行的裁剪是在视觉坐标中完成的,而不是在裁剪坐标中进行的。如果投影矩阵为奇异矩阵(也就是把三维坐标压平到二维坐标的真正投影矩阵),这个区别就非常大。在视觉坐标中进行裁剪时,即使投影矩阵是奇异矩阵,裁剪仍然是在三维空间中进行的。
下面的例子通过两个裁剪平面对球体进行了裁剪。
本文由CC原创总结,如需转载请注明出处:
NVIDIA Jetson TK1学习与开发(八):图文详解OpenGL在Jetson TK1上的安装和使用 图文详解OpenGL在JetsonTK1上的安装和使用1、入门介绍与资源推介OpenGL(全写OpenGraphicsLibrary)是个定义了一个跨编程语言、跨平台的编程接口规的专业的图
OpenGL ES2.0 的三种变量类型(uniform,attribute和varying) 1.uniform变量uniform变量是外部application程序传递给(vertex和fragment)shader的变量。因此它是application通过函数glUniform**()函数赋的。在(vertex和fragment)sha
【OpenGL】理解GL_TRIANGLE_STRIP等绘制三角形序列的三种方式 GL_TRIANGLE_STRIP绘制三角形方式很多时候令人疑惑,在这里对其运作机理进行解释。一般情况下有三种绘制一系列三角形的方式,分别是GL_TRIANGLES、GL_TRIANG
标签: opengl裁剪平面
本文链接地址:https://www.jiuchutong.com/biancheng/369641.html 转载请保留说明!上一篇:OpenGL学习08_几何变换(opengl 绘制)
下一篇:OpenGL ES2.0 的三种变量类型(uniform,attribute和varying)(opengl es 3.2)
友情链接: 武汉网站建设