OpenGL超级宝典笔记(二)

来源:互联网 发布:unity3d 指南针罗盘 编辑:程序博客网 时间:2024/06/12 01:30


第三章

学习绘制各种图形,从简单的点和直线到复杂的多边形,还有用二维的图元组成三维物体的表面。

1、创建画布:调用glOrtho函数建立可视化区域,即笛卡尔坐标空间。我们可以把这个可视化区域看成是三维画布,可以用OpenGL命令和函数在它上面进行绘图。

2、3D空间中的点即顶点:为了在3D画布中绘制一个点,可以使用OpenGL函数glVertex。

3、绘制图形:绘制图元的其中一种方式就是使用glBegin命令告诉OpenGL开始对一组顶点进行解释,把它作为一个特定的图元。然后,可以调用glEnd命令结束组成这个图元的顶点列表。

4、设置点的大小:绘制一个点时,在默认情况下点的大小是1个像素,使用glPointSize函数修改点的大小。  Void glPointSize(GLfloat size);

5、形在3D空间中画直线:指定两个顶点,在它们之间绘制一条直线,这正是GL_LINES图元的任务。glBegin(GL_LINRD);...glEnf();绘制直线时同样可以设置直线的宽度,glLineWidth函数指定各种不同的直线宽度。

6、在3D空间中绘制三角形:最简单的多边形是三角形,它只有3条边,使用GL_TRIANGLES图元通过连接3个顶点绘制三角形。还有使用GL_TRIANGLE_STRIP图元绘制一串相连的三角形,使用GL_TRIANGLE_FAN创建一组围绕一个中心点的相连三角形。

7、其他图元:四边形,使用GL_QUADS图元绘制;使用GL_QUAD_STRIP图元指定一个连接的四边带;用GL_POLYGON绘制任意数量边的多边形。

 

第四章 几何变换管线 学习使用OpenGL创建3D场景的一些关键概念,学习如何操作模型视图和投影矩阵堆栈在场景中放置物体并决定它们在屏幕上的显示形式。

1、矩阵3D图形的数学基础:OpenGL实现所有变换都可以通过两个或者多个矩阵乘法来描述。

2、变换管线:各种变换需要对两个矩阵进行修改:模型视图矩阵和投影矩阵。模型视图矩阵是个4x4的矩阵,代表经过变换的坐标系统,用这个坐标系统放置物体并设置其方向。为图元所提供的顶点按照单例矩阵的形式使用,并与模型视图矩阵相乘,产生与视觉坐标系统相对应的经过变换的新坐标。移动,void glTranslatef(GLfloat x .  GLfloat y, GLfloat z); 旋转,glRotatef(GLfloat angle , GLfloat x, GLfloat y , GLfloat z);缩放,glScalef(GLfloat x, GLfloat y, GLfloat z);

3、矩阵堆栈:矩阵堆栈的工作方式就系普通的程序堆栈一样。我们可以把当前的矩阵压人到堆栈中,对它进行保存,然后再修改当前的矩阵。从堆栈中弹出矩阵相当于恢复原来的那个矩阵,既可以用于模型视图矩阵,又可以用于投影矩阵。

4、使用投影:正投影,逻辑宽度在前后、顶底、左右面都是相等的,正投影适用于2D图形,如文本、建筑绘图等;透视投影,执行透视除法,对距离观察者较远的物体进行缩短和收缩,两个逻辑大小相同的物体分别位于可视区域的前面和后面,前者看上去要比后者大一些。

 

原创粉丝点击