OpenGL4.x学习之使用绘制三角形
OpenGL很多人都有所了解,也有很多人使用OpenGL开发过工业级的应用和游戏应用,不过它的最新版本OpenGL4.x了解的人就不是太多了。目前OpenGL的最新版本是4.4,并且NVIDIA和AMD厂商发布了支持OpenGL最新版本的驱动程序,我想基于OpenGL4.x讲解的书籍也会逐渐增多。
原创文章,反对未声明的引用。原博客地址:http://blog.csdn.net/gamesdev/article/details/19506553
程序源代码下载地址:这里
这回我将上一次的代码稍微作了一下修改,绘制出了一个三角形。其实代码也非常简单,在Client端将GL_POINTS改为GL_TRIANGLES就可以了,片断着色器也不需要做更多的修改,主要是顶点着色器。
下面是顶点着色器的内容:
#version 430 core void main( void ) { // 根据传入的ID使用不同gl_Position const vec4 vertices[3] = vec4[3]( vec4( 0.25, -0.25, 0.5, 1.0 ), vec4( -0.25, -0.25, 0.5, 1.0 ), vec4( 0.25, 0.25, 0.5, 1.0 ) ); gl_Position = vertices[gl_VertexID]; }
这里注意的是gl_VertexID是一个在OpenGL中是一个内置的变量,每个顶点运行它时它们的gl_VertexID都不一样。我们利用这样的特点,将此作一个索引,得到不同的gl_Position,用以传入下一阶段——栅格化(Rasterize),这样一个三角形就得以显示出来了。
下面是演示程序的截图:
原文:http://blog.csdn.net/gamesdev/article/details/19506553