OpenGL学习日记-2014.11.26--简单裁剪
来源:互联网 发布:java配置上传文件路径 编辑:程序博客网 时间:2024/09/21 08:17
<span style="font-size: 14px; font-family: 微软雅黑; line-height: 21px;">Opengl中,除了视景体的立方体裁剪平面之外,另外还可以额外指定多达6个裁剪平面,对视景体做进一步限制。每一个平面都由平面公式定义:Ax+By+Cz+D = 0.裁剪平面的指定通过函数:glClipPlane(GLenum plane,const GLdouble* equation)确定。plane可能值为:GL_CLIP_PLANE0--GL_CLIP_PLANE6。。。equation为大小为4的数组:顺序分别对应参数A,B,C,D.最后所有满足(A,B,C,D)*M(-1)*(Xe,Ye,Ze,We)(T) ≥0的点位于平面定义的半空间内。</span><span style="font-family: Arial; font-size: 14px; line-height: 26px;"></span><div style="font-size: 14px; font-family: 微软雅黑; line-height: 21px;"><br style="background-color: inherit;" /></div><div style="font-size: 14px; font-family: 微软雅黑; line-height: 21px;">示例代码(来自OpenGL编程指南<span style="line-height: 1.5; background-color: inherit;">):在开启裁剪平面之前或之后进行的变换操作对于裁剪平面将产生完全不同的结果,具体看代码注释。</span></div>
void clipDisplay(){GLdouble eqn[4] = { 0.0, 1.0, 1.0, 0.0 };GLdouble eqn2[4] = { 1.0, 0.0, 0.0, 0.0 };//两个裁剪平面系数glColor3f(1.0, 1.0, 1.0);glPushMatrix();static float z = 0, k = 0.0;static float a = 0;//glTranslatef(0.0, z -= 0.001, 0);//裁剪前进行变化,对裁剪平面产生影响,裁剪平面跟随移动//clip 裁剪glClipPlane( GL_CLIP_PLANE0, eqn );glEnable(GL_CLIP_PLANE0);//clip 裁剪glClipPlane(GL_CLIP_PLANE1,eqn2);glEnable(GL_CLIP_PLANE1);glTranslatef(0.0, k += 0.001, 0);glRotatef(a += 0.1, 1.0, 1.0, 1.0);//裁剪后变换,不会对裁剪平面产生影响,裁剪平面不会移动//绘制球体GLUquadricObj* qobj = gluNewQuadric(); //二次曲面对象gluSphere(qobj, 1.0, 20, 16);glPopMatrix();}
来自:http://blog.csdn.net/coderling/article/details/41533179?ref=myread
0 0
- OpenGL学习日记-2014.11.26--简单裁剪
- OpenGL学习日记-2014.11.26--简单裁剪
- OpenGL学习日记-2014.11.23--OpenGL变换
- android学习日记10--裁剪裁剪 -
- OpenGL学习日记1
- OpenGL学习日记2
- OpenGL学习日记-2014.11.6--OpenGL缓冲区对象
- OpenGL学习09_裁剪平面ClipPlane
- OpenGL学习09_裁剪平面ClipPlane
- OpengL裁剪
- OpengL裁剪
- OpenGL裁剪
- 学习OpenGL简单总结
- OpenGL学习日记-2014.12.2--颜色
- OpenGL学习日记-2014.12.21--光照
- OpenGL学习日记-2014.1.21--混合
- OpenGL ES 学习日记(1)
- OpenGL学习日记0_OpenGL,环境搭建
- Java网络
- [LeetCode] Permutations
- 零基础学习嵌入式开发以及项目实战开发【火热招募ing】
- 《Java编程思想》第11章 持有对象
- 《Java编程思想》第18章 Java I/O系统
- OpenGL学习日记-2014.11.26--简单裁剪
- 《Java编程思想》第9章 接口
- 【JS】【客户端】在HTML里嵌入JavaScript
- powershell脚本配置jdk环境变量
- Spring的依赖注入
- 《Java7程序设计》第5章 核心类
- 树莓派 公网IP变动后 自动邮件通知 python
- 《Java7程序设计》第10章 枚举
- [HDU3359]Kind of a Blur && 高斯消元 陨石巨坑