OpenGL中的空间变换
2014-05-13 22:43
183 查看
OpenGL中的空间变换
在使用OpenGL的三维虚拟程序中,当我们指定了模型的顶点之后,在屏幕上显示它们之前,一共会发生3种类型的变换:视图变换、模型变换、投影变换。视图变换:指定观察者(摄像机)的位置;
模型变换:在场景中移动物体;
投影变换:改变可视区域的大小;
视口变换:这是一种伪变换,它对窗口上的最终输出进行缩放。
视觉坐标
它表示一种虚拟的固定坐标系统,通常作为一种参考系使用。它是根据观察者(摄像机)的角度而言的,与可能发生的变换无关。我们接下来所讨论的所有变换都是根据它们相对于视觉坐标的效果进行描述的。用OpenGL在3D空间中进行绘图时,使用的是笛卡尔坐标系统。在不进行任何变换的情况下,这个坐标系统与视觉坐标系相同。
视图变换
这是场景中所应用的第一个变换,它用于确定场景的观察点(拍摄点)。视图变换允许把观察点放在自己所希望的任何位置(观察点的位置任意),并允许在任何方向上观察场景(观察点的朝向任意)。确定视图变换就像在场景中放置照相机并让它指向某个方向。作为总体原则,在进行任何其他变换之前必须先指定视图变换。因为视图变换的效果相当于根据视觉坐标系统来移动当前所使用的坐标系统。然后,根据最新修改的坐标系统,进行其它所有的后续变换。
模型变换
它可以移动物体,对它们进行旋转、平移或者缩放。并且,缩放可以是非一致的(物体的各个方向根据不同的数值进行伸缩)。场景或物体的最终外观很大程度上取决于模型变换的应用顺序。因为每次变换都是在上次变换执行的基础上进行的。
投影变换
它是在模型视图变换之后应用于物体的顶点之上的。它实际上定义了可视区域,并建立了裁剪平面。其中,投影又有两种不同的类型:正投影(平行投影)和透视投影。正投影通常用于2D绘图,此时你所需要的是像素和绘图单位之间的准确对应。
透视投影则用于渲染那些包含了需要应用透视缩短的物体的场景。并且在大多数情况下,3D图形所使用的都是透视投影。
视口变换
最终,场景的二维投影将被映射到屏幕上的某个窗口。这种到物理窗口坐标的映射是最后一个完成的变换,称为视口变换。OpenGL中的空间变换。
相关文章推荐
- OpenGL入门学习——第五课 三维的空间变换
- OpenGL入门学习 教程 (五)三维的空间变换
- OpenGL空间(坐标系)变换
- OpenGL空间(坐标系)变换
- OpenGL 的空间变换(上):矩阵在空间几何中的应用
- OpenGL 的空间变换(下):空间变换
- OpenGL 三维的空间变换
- OpenGL入门学习之五——三维的空间变换
- hdoj.3320 openGL【空间变换】 2015/04/22
- opengl中视角连续变换问题
- OpenGL中逆变换和模拟变换gluUnProject
- 灰度变换与空间滤波-学习提纲
- OpenGL模型视图变换
- 思考:矩阵及变换,以及矩阵在DirectX和OpenGL中的运用问题:左乘/右乘,行优先/列优先,...
- 空间圆弧作图算法,基于OpenGL实现!
- 二维图形学的变换-平移、旋转、缩放 OpenGL
- 计算机图形学-基于OpenGL的绘制直线及图形变换练习
- K-空间 在图像变换及重建 K-空间与MR图像质量控制
- 《高效学习OpenGL》之 openGL变换
- OpenGL编程逐步深入(八)伸缩变换