上一节我们提到过模型变换时有旋转操作,那么在坐标系中,旋转的方向是怎样呢?比如旋转90度,到底向左是正还是右是正呢?我们可以用右手法则来进行正方向判断:
拓幻图形学工程师教学手册(第二讲)|一字一字敲出OpenGL学习教程
图中所示就是右手坐标系中旋转正方向。

3.3 3D绘制
下面到代码讲解。最基础的图形学,总要先画最基础的图形吧,那么现在来看以下代码:

拓幻图形学工程师教学手册(第二讲)|一字一字敲出OpenGL学习教程
看到glBegin括号里GL_LINE_STRIP了吗?顾名思义,画的是一条连线。glVertex3f是用来绘制顶点,坐标为括号里的值,这里我们画了v0,v1,v2,v3,v4 四个顶点,并将其按照顺序连接成以v0为首,v4为尾的一条线段。

我们改变括号里的参数,那么就可以画出不同的图形。对照表如下所示:

拓幻图形学工程师教学手册(第二讲)|一字一字敲出OpenGL学习教程

注意,在gl_Begin和gl_End中间是所绘制使用的顶点。比如现在画两个三角形,那么在画第一个三角形时,顶点使用v0, v1,v2,那么gl_Begin和gl_End代码中间需要添加的就是绘制的就是v0, v1,v2 的顶点代码,对应第二个三角形再加的就是第二个三角形顶点的绘制代码。

在这里我们再结合图形几何和拓扑的概念理解一下,图形的几何发生改变其实改变的是顶点坐标位置,也就是glVertex3f函数中参数的值。拓扑发生改变其实是gl_Begin和gl_End中间夹着的顶点代码的顺序,比如先画v0, 再画v1,最后画v2 ,还是先画v1, 再画v2,最后画v0 .

下面解释一下第一行:glColor函数。我们可以看到这里它的三个参数我是用r,g,b代替的。那么rgb是什么呢?r是red 红,g是green 绿,b是blue 蓝。小学学过,光的三原色,由他们可以组合出任意颜色。需要提到的是在OpenGL glColor中,颜色rgb的范围都是在0~1之间不会小于0,也不会大于1. 0代表程度无,1代表程度最深。颜色叠加图我这里就不多做介绍了,上过小学中学美术的都该知道。
拓幻图形学工程师教学手册(第二讲)|一字一字敲出OpenGL学习教程
OK。到目前为止,你已经能够用最简单的OpenGL代码绘制最简单的图形,甚至改变颜色啦。

又来提醒你,刚刚我们提到过模型变换还记得吗?我们通过平移,旋转,缩放来实现模型变换。那么我们如何使用OpenGL进行平移,旋转,缩放呢?
拓幻图形学工程师教学手册(第二讲)|一字一字敲出OpenGL学习教程
答案在这里:
拓幻图形学工程师教学手册(第二讲)|一字一字敲出OpenGL学习教程