设为首页 加入收藏

TOP

OpenGL开发 几何变换:管线
2014-11-24 11:39:40 来源: 作者: 【 】 浏览:0
Tags:OpenGL 开发 几何 变换 管线

3种类型的变换:视图变换、模型变换和投影变换。


OpenGL变换术语总结:


视图(Viewing):指定观察者或照相机的位置;


模型(Modeling):在场景中移动物体;


模型视图(Modelview):描述视图和模型变换的对偶性;


投影(Projection):改变可视区域的大小或重新设置它的形状;


视口(Viewport):这是一种伪变换,只是对窗口上的最终输出进行缩放;


两种类型的投影:正投影和透视投影。


GLUT函数库:


glutWireCube()//函数可以绘制一个立方体。


glutSolidSphere()//函数可以绘制一个实心球。


模型视图矩阵:


移动:


glTranslatef();


旋转:


glRotatef(GLfloat angel,GLfloat x,GLfloat y,GLfloat z);


缩放:


glScalef(GLfloat x,GLfloat y,GLfloat z);


把单位矩阵加载到模型视图矩阵:


glMatrixMode(GL_MODELVIEW);


glLoadIdentity();


获得堆栈的深度最大值:


glGet(GL_MAX_MODELVIEW_STACK_DEPTH);



glGet(GL_MAX_PROJECTION_STACK_DEPTH);


矩阵堆栈:


保存视图变换:


glPushMatrix();


恢复视图变换:


glPopMatrix();


透视投影:


glFrustum();//定义一个平截头体。


glMatrixMode(GL_PROJECTION);


glLoadIdentity();


glPerspective(GLdouble fovy,GLdouble aspect,GLdouble zNear,GLdouble zFar);//函数的参数是垂直方向的视野角度,宽度与高度的纵横比,以及近端和远端裁剪平面之间的距离。


加载矩阵:


GLfloat m[] = {1.0f,0.0f,0.0f,0.0f, // X列


0.0f,1.0f,0.0f,0.0f, // Y列


0.0f,0.0f,1.0f,0.0f, // Z列


0.0f,0.0f,0.0f,1.0f // 移动


};


glMatrixMode(GL_MODELVIEW);


glLoadMatrixf(m); // 使用列主序的矩阵顺序


void glLoadTransposeMatrixf(GLfloat *m); // 使用行主序的矩阵顺序


圆环面绘制函数:


gltDrawTorus();


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇OpenGL开发 空间绘图:几何图元和.. 下一篇uCOS_II 移植到友善之臂mini2440

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·Linux_百度百科 (2025-12-26 12:51:52)
·Shell 流程控制 | 菜 (2025-12-26 12:51:49)
·TCP/UDP协议_百度百科 (2025-12-26 12:20:11)
·什么是TCP和UDP协议 (2025-12-26 12:20:09)
·TCP和UDP详解 (非常 (2025-12-26 12:20:06)