Saturday, December 20, 2008

OpenGL坐标变换详解

更多精彩请到 http://www.139ya.com

三维观察原理类似于拍一张照片的过程。(类似于red book )
系列框图的左右对照来看,
照相的第一步是将照相机调整位置置于三角架上;
第二步是将物体调整位置放在相机的视野当中。实际上,相机和三维物体是相对位置,相机移动位置也可以理解为物体反向移动位置,因此这两步可以理解为一步,即调整三维物体和视点的位置,将世界坐标系下的物体变换到观察坐标系下。在计算机图形学中,定义模型矩阵(Modeling Matrix)实现了三维图形的几何变换,即平移、旋转和缩放。
第三步相机进行调焦以便看清楚物体,并按下快门将三维物体投影在二维胶片上;在计算机图形学中,定义相应的投影矩阵(ProjectionMatrix),进行投影变换,把三维物体从观察坐标系转换到投影坐标系中。
第四步是胶片的冲洗和裁剪。相应计算机图形学中,定义视口矩阵(ViewingMatrix),进行视口变换和裁剪,决定二维图象的大小。将物体从二维投影坐标系下转换到设备坐标系下。
这样,一个三维空间里的物体被投影到二维平面上了,也就能在二维的计算机屏幕上正确显示了。这样的过程
叫做三维观察流水线。

根据三维观察的过程,可以总结出三维变换流水线,
三维物体坐标的变换过程:
首先是模型坐标转换到世界坐标,
然后转换到观察坐标,
再到投影坐标,
再到设备坐标。

No comments: