OpenGL学习笔记:三维变换
来源:互联网 发布:seo实战培训seo8 编辑:程序博客网 时间:2024/04/29 21:17
这是最基本,最复杂,最重要的一章,各种乱七八糟变换,一个场景最经典的比喻是照相机比喻,引用如下:
(1) 将相机固定在三脚架上,并使之对准场景(视点变换)
以下是glOrtho的参数图:
最后是视口变换,其实说白了就是选择把场景画在哪儿,画多大,是画整个屏幕呢,还是只是屏幕中的一小块角落里面。不涉及到矩阵操作,直接使用glViewport函数就可以搞定了
(1) 将相机固定在三脚架上,并使之对准场景(视点变换)
(2) 让要拍摄的场景位于取景框中合适的位置(模型变换)
(3) 选择相机镜头或调整放大倍数(投影变换)
(4) 决定照片的大小,放大照片还是缩小照片, 把图形画下来,是要占据整个屏幕还是屏幕的一部分(视口变换)。
具体如图:
其中视点变换和模型变换是联系在一起的,设置模型视图矩阵, glMatrixMode( GL_MODELVIEW)。视点变换往往使用gluLookAt函数。
模型变换也设置glMatrixMode( GL_MODELVIEW),主要设计三个函数:平移glTranslate, 旋转glRotate, 缩放glScale
投影变换自然是操作投影矩阵,glMatrixMode( GL_PROJECTION)。分为两种:正投影和透视投影。
正投影往往在工程项目中应用,显示一个四四方方的切面。glOrtho来指定一个正交平行的矩形,屏幕上显示的就是此物体在此矩形的正面的投影。gluOrtho2D实际上是此函数的一个去掉Z轴坐标的简化版,而glOrtho包括的参数 nearVal,farVal表示此矩形的前,后两面,超出此矩形范围的图形将会被裁掉。
透视投影使用glFrustum或者gluPerspective函数,二选一,效果都是一样的。
以下是glFrustum的参数图:
以下是glPerspective的参数图:
以下是glOrtho的参数图:
最后是视口变换,其实说白了就是选择把场景画在哪儿,画多大,是画整个屏幕呢,还是只是屏幕中的一小块角落里面。不涉及到矩阵操作,直接使用glViewport函数就可以搞定了
- OpenGL学习笔记:三维变换
- openGL学习笔记3(三维场景变换简介)
- OpenGL------三维变换
- OpenGL---三维变换
- OpenGL 三维变换
- OpenGL三维变换
- [OpenGL]OpenGL中的三维变换
- OpenGL 三维的空间变换
- OpenGL学习笔记(五)---三维地图
- 图形学学习笔记]OpenGL视图矩阵变换
- OpenGL学习笔记-OpenGL的变换和矩阵
- 现代OpenGL+Qt学习笔记之五:OpenGL矩阵变换
- OpenGL入门学习——第五课 三维的空间变换
- OpenGL入门学习之五——三维的空间变换
- SCARA——OpenGL入门学习五六(三维变换、动画)
- 计算机图形学 学习笔记(八):三维图形变换:三维几何变换,投影变换(平行/ 透视 投影)
- OPENGL 变换_视图模型变换与部分透视变换_学习笔记
- OpenGl学习笔记3之模型变换、视图变换、投影变换、视口变换介绍
- Oracle同义词概述
- Qt学习——信号与槽机制
- OpenGL学习笔记:点 线 面
- SQL Agent Save Directory Path
- 关于编程,理应传授的10件事
- OpenGL学习笔记:三维变换
- OpenGL学习笔记:混合
- 多用户通过ssh使用一台机器的进程模型
- Oracle 物化视图
- Android学习笔记(1):不使用IDE采用命令行
- OpenGL学习笔记:纹理
- Ubuntu 11.04下编译Android源码全过程
- Javascript和CSS浏览器兼容总结
- OpenGL学习笔记:颜色