1.1 OpenGL中默认的坐标系为右手坐标系,默认视点位置为原点,原点正好投影在投影窗口的中心,也正好投影在视口的中心。
1.2 在OpenGL中无绝对单位,只有相对的大小,相对于视锥体的大小来设定物体的大小。
1.3 通过估算视锥体空间的大小,由视锥体空间的大小来确定想要显示的物体的大小。但是我们可以自定义单位,当我们定义了视锥体的单位后,物体的单位也就可以确定。
1.4 定义视口时,视口的大小是以像素为单位的,视口与视锥体三维空间的单位完全不同,视口大小只与视锥体窗口存在比例关系,无绝对大小关系。物体的大小与其在视口中所占面积大小无关。
1.5 OpenGL中关于视锥体的裁剪并没有相关接口,相关裁剪OpenGL以对用户隐藏。
1.6 OpenGL中,逆时针与顺时针旋转的确定与视点以及视线方向无关,而是与轴有关,绕某个轴旋转时,采用右手来确定,让大拇指指向轴的正方向,四指旋转的方向就是逆时针方向。
1.7 相关函数
- 获取当前模型变换的矩阵
float mat[16];
glGetFloatv(GL_MODELVIEW_MATRIX,mat);
- 将一个矩阵mat乘到当前矩阵上
glMultiMatrix(mat);
1.8 OpenGL功能
- 变换(几何变换、投影、视口变换);
- 光照与材质;
- 纹理映射;
- 图像功能:anti-aliasing(反混淆)、fog 、blending(混合);
- 特效:Depth Cue(深度暗示)、Motion Blur(运动模糊);
- 建模(basic primitives、NURBS);
学习OpenGL需要理解图像流水线的整体流程及各个环节,理解OpenGL是一个状态机,整个绘制操作会按照固定的流程进行,如同一条流水线,OpenGL函数只是用来设置这条流水线的一系列状态参数,而不是真正执行绘制操作的。
1.9 OpenGL的两种编程模式:
- 固定流水线模式,传统方式;
- Shader编程模式,现代方式;
1.10 OpenGL编程相关书籍推荐
- opengl编程指南:第八版引入了人Shader编程;
- OpenGL超级宝典:Shader编程;
附录:中国大学Mooc,图形编程技术,北京林业大学,杨刚.