本课的代码是在OpenGL In C# 04 Nehe 第二课 绘制多边形的基础上加入了对三角形的平滑着色和对四边形的单一着色。
将原来的timer_Tick函数名改为了OpenGL_Draw,代码的修改都是在这个函数内进行的。
第一步先对三角形进行平滑着色:
OpenGL.glBegin(OpenGL.GL_TRIANGLES); // 绘制三角形
OpenGL.glColor3f(1.0f, 0.0f, 0.0f); // 设置当前色为红色
OpenGL.glVertex3f(0.0f, 1.0f, 0.0f); // 上顶点
OpenGL.glColor3f(0.0f, 1.0f, 0.0f); // 设置当前色为绿色
OpenGL.glVertex3f(-1.0f, -1.0f, 0.0f); // 左下
OpenGL.glColor3f(0.0f, 0.0f, 1.0f); // 设置当前色为蓝色
OpenGL.glVertex3f(1.0f, -1.0f, 0.0f); // 右下
OpenGL.glEnd(); // 三角形绘制结束
平滑着色的过程是分别对每个顶点设置颜色,然后完成三角形的绘制,这样就完成了对这个三角形的平滑着色。
对四边形的单一着色更简单,只需要在进行四边形绘制之前进行一次颜色的设置,整个四边形都会以这种颜色进行着色。
OpenGL.glColor3f(0.5f, 0.5f, 1.0f); // 一次性将当前色设置为蓝色
OpenGL.glBegin(OpenGL.GL_QUADS); // 绘制正方形
OpenGL.glVertex3f(-1.0f, 1.0f, 0.0f); // 左上
OpenGL.glVertex3f(1.0f, 1.0f, 0.0f); // 右上
OpenGL.glVertex3f(1.0f, -1.0f, 0.0f); // 左下
OpenGL.glVertex3f(-1.0f, -1.0f, 0.0f); // 右下
OpenGL.glEnd();
这样就完成了两种着色方式的演练。
工程下载地址:http://download.csdn.net/detail/tianyu2202/4382468
原创内容,欢迎转载,转载请注明出处:http://blog.csdn.net/tianyu2202/