一.OpenGL 函数的命名规则
1.void glVertex3fv(Glfloat *vertex);
2.前缀
gl,glu,glut ---- 该函数属于哪个函数库
3.后缀
. 2, 3, 4 -----参数的维度
. b, s, l, f, d, ub, us, ui------参数的数据类型
. v ---- 以数组方式传递参数
二.OpenGL的数据类型
数据类型名称
GLbyte,GLint,GLfloat...
拓展:C或C++中自己就有int byte float,为什么OpenGL还要 自己定义一套呢?
int,float 和 GLint,GLfloat 它们是一样的。
但是用 float ,编译器不同,内存大小可能设为32 or 64 位的,用GLfloat 就不会出现这种问题
三.OpenGL基本语法
1.每个顶点有x,y,z三个坐标值,有时还会有第四个坐标值w。
2.glVertex3f(3.0f,4.0f,5.0f);
3.GLfloat v[3] = {3.0f,4.0f,5.0f};
glVertex3fv(v);
4.颜色值有4个分量: Red,Green,Blue and Alpha (RGBA)
四.OpenGL的常量符合(Symbolic constants)
Symbolic constants:
五.OpenGL中如何绘制基本图元(Primitive)
glBegin
六.OpenGL中所支持的基本图元类型
OpenGL3.1 取消了右边三种图元类型。(其实这些完全可以用三角形代替)
七.画一个红色的三角形
glBegin
八.为每个顶点指定不同的颜色
glBegin
九.OpenGL的函数去哪儿查?
MSDN 或 Khronos
KHRONOS.ORGsavedwebhistory.org十.OpenGL的参考书
- Nehe的OpenGL教程(有点儿老)
- OpenGL Programming Guide (opengl编程指南) --- OpenGL 红宝书
- OpenGL SuperBible --- OpenGL 蓝宝书
- http://www.learnopengl.com
- http://ogldev.atspace.co.uk
- OpenGL Shading Language (OpenGL着色语言) --- OpenGL 橙宝书
- GPU编程与CG语言之阳春白雪下里巴人
十一.OpenGL学习的难点
1.不仅仅是记忆类库函数的功能
2.还需要
(1)转变思想,理解“OpenGL是状态机”的含义
(2)理解整条图形流水线的线程
(3)理解大量的图形概念、过程、原理
几何变换、投影、纹理映射、各种片元检测......