这篇文章主要是根据《OpenGL Shading Language Cookbook》一书翻译整理而得,介绍了环境的安装和一些基础知识。下面涉及到的库也可以到这里下载(Windows版)。
2014年9月26日更新:
擦!每次弄OpenGL光配置都弄得很头大。。。由于换了Mac电脑,下面补充了Mac下的注意事项(这时候突然觉得Windows这么方便。。。)
-----------------------------------------------------------------分割线-------------------------------------------------------------------
什么是GLSL
GLSL是OpenGL Shading Language的缩写,顾名思义就是OpenGL渲染语言,它允许我们通过一些接口直接利用现代的图形处理单元(GPUs)进行图形绘制等工作。GLSL语言必须协同OpenGL语言才可以工作。它们嵌入在更庞大的OpenGL语言里,这些迷你的代码通常被称为shader,它们运行在GPU而不是CPU上。从名字上可以看出来,GLSL大多跟3D图像的灯光、渲染等工作有关,但它们的能力绝不仅仅如此。它们还可以用于动画、曲面计算等更深的应用。
Shader语言被设计成可以直接运行在GPU上,并且通常是并行的。例如,对于每个像素,一个fragment shader,片段着色器,可能执行一次,并且是同时在不同的GPU单元上同时执行。显卡上处理器的数量决定了同时可以允许多少个同时执行。这样的特性使得shader具有很好的性能,并允许程序员进行并行运算。
现代显卡的计算能力是让人印象深刻的,下面的表格显示了NVIDIA GeForce 400系列显卡上处理器的数量:
设计者希望Shader程序可以替换传统OpenGL体系结构中的fixed-function pipeline,固定功能管道,部分。在之前,默认的灯光/阴影计算是这个管道的一个核心部分。但是,但我们想要它们实现更多更高级的功能时,我们就需要做非常的工作来实现,而实际上很多是它们无法做到的。GLSL的出现改变了这样的境地,它允许我们使用GLSL语言代替以前的“硬编码”,从而提供了更灵活、更高级的功能。
OpenGL 3.0进入了一个弃用的模型,也就是逐渐被OpenGL规格移除的功能。一些功能和特性可以说是被标志为被弃用了,这意味着它们在未来的OpenGL