OpenGL4.x学习之开发环境的选择
新的一年到了,在这里祝愿大家马到成功!
去年学习了一些GLSL的知识,主要是OpenGL(ES)2.0相关的,并且写了几篇文章:
将Qt、OpenGL、GLSL以及Qt的Graphics-View框架结合
但是OpenGL发展快,知识点很多,我自认为学了这一点知识并不够,于是花了一段时间读了几本OpenGL编程书籍,包括了《OpenGL ES2.0 Programming Guide》以及《OpenGL超级宝典(第六版)》。但是看的书总归还要实践才行,于是过了年后我尝试着写一些OpenGL的程序。首先我开始研究可编程渲染管线和OpenGL4.x。
从OpenGL3.2开始,固定渲染的功能逐渐地被废弃,可编程渲染成为了主角,为此我们也必须跟上来,学习OpenGL可编程渲染部分。不过虽然说固定渲染功能被废弃了,有些内容还真的必须是固定渲染流程,没法走可编程渲染。比如说栅格化(Rasterization)和帧缓存(一说帧缓冲区)的操作(Framebuffer operations),在现阶段无法做到可编程。直到OpenGL4.4,着色器的种类增加到了6个。它们分别是顶点着色器、分格化控制着色器(Tessellation control shader)、分格化估值着色器(暂译)(Tessellation evaluation shader)、几何着色器(Geometry shader)、片断着色器以及计算着色器(Compute Shader)。除了顶点着色器和片断着色器这两个我们所熟知的外,另外四个是在OpenGL3.2版本后依次被引入的。下面是一个小的表格说明了这一点:
着色器 |
OpenGL版本 |
顶点着色器(Vertex shader) |
>=2.0 |
片断着色器(Fragment shader) |
>=2.0 |
几何着色器(Geometry shader) |
>=3.2 |
分格化控制着色器(Tessellation control shader) |
>=4.0 |
分格化估值着色器(Tessellation evaluation shader) |
>=4.0 |
计算着色器(Compute Shader) |
>=4.3 |
乍一看学这些着色器的知识点肯定很多,实际上这些着色器是用的是统一的语法,它就是GLSL。OpenGL3.2以后GLSL的一些语法格式和OpenGL(ES)2.0的语法稍微有些不一样,这点需要注意。
大多数人应该会使用Visual Studio开发OpenGL应用程序。于是如何开发OpenGL4.x应用就成了一个问题,因为微软的OpenGL兼容驱动只解析OpenGL1.1规范的函数。幸运的是sourceforge上的项目glew可以帮助我们解析以后版本的OpenGL函数。而glut是老牌的OpenGL开发库,因此glut+glew成为了大多数人的选择,另外可能有些人选择MFC+ glew+wgl,这也是可以的。
不过跨平台开发库Qt给了我们另外的选择。Qt自从5.0以来,对OpenGL的支持越来越强,开发基于OpenGL的应用越来越容易,这其中KDAB功不可没。事实上KDAB也写了若干有关Qt+OpenGL开发的博客,大家可以访问下面网站看看:
对于自己,由于有Qt开发经验,因此使用Qt会是我的优先选择。以后的文章我会用Qt搭建一个简易的OpenGL4.x框架,在这个框架下探究OpenGL4.x开发技术。
原文:http://blog.csdn.net/gamesdev/article/details/18986265