几个关键词:
投影(projection)分为两种:透视(perspective)和正交(ortho)。设置透视有两种方法:分别是透视(perspective)和截头椎体(Frustum),这两种只用其一即可,功能完全一样,只是形参不同。参考链接:《透视函数glFrustum(), gluPerspective()函数用法和glOrtho()函数用法.》
理解物体坐标系、世界坐标系、相机坐标系、裁剪坐标系不难,关键是要知道对这些坐标系的操作分别对应哪些函数。
相关函数有这么几套:
(1)glTranslatef(),glScalef(), glRotatef(),在模型、视角坐标系内进行平移、缩放、旋转
(2)gluLookAt()对眼睛(相机)坐标系进行变换
(3)通用型:glMatrixMode(GL_PROJECTION····)选择矩阵,glLoadIdentity,把各种变换矩阵重置
裁剪(投影)坐标系有两个功能:一是投影变换(分为正交投影和透视投影),二是视景区裁剪。最终的效果就是,设置出一个棱台形的可视空间,或者长方体形的可视空间。
OpenGL的世界坐标系是固定不变的,X指向屏幕右边,Y指向屏幕上边,Z指向屏幕外面。初始状态下,物体坐标系和世界坐标系重合。