【OpenGL学习】关于GLSL Shader

Project需要,最近在看GLSL shader的东西。这里简单梳理下吧(同时也在学习VBO和FBO,后面再整理)。

1.很好的入门资料,必看!

http://blog.csdn.net/racehorse/article/details/6593719 当然这是翻译版,原版在这里:http://www.lighthouse3d.com/opengl/glsl/ 看完之后弄懂GLSL是什么基本没有问题了。

2.使用GLSL做图像处理

GLSL的一个很大作用是用来图像处理,利用显卡的优势可以完成复杂的图像处理操作,当然下面的例子呈现的都是简单的Demo。 这方面的资料可以参考首先是《OpenGL超级宝典》这本书,在Chapter17里面讲的很详细,并且有示例(代码可以自行运行),例子中的操作有模糊、锐化、膨胀、腐蚀、拉普拉斯边缘提取。 另一个资料就是这篇老外写的:http://r3dux.org/2011/06/glsl-image-processing/,其实大体差不多。

3.难点

这中间的难点主要有:

  1. 理解Vertex Shader和Fragment Shader各自的优势,前者处理离散的顶点,后者处理的是整个纹理平面,在我的project中主要是Fragment Shader的运用,所以上面的资料也是偏向这个方向。
  2.  Shader程序的编写,这是精华所在,实现什么功能,就靠Shader中的kernel函数来完成,所以这也是我之后的中心所在。
  3. Shader程序和OpenGL程序通信,这是个细节问题,但是要是没有搞清楚的话会难以下手,Shader中有三种变量和OpenGL通信,以及用来不同Shader中通信,什么时候该用什么变量是个经验问题,我想这个只有多用才能理解清楚吧。这个参见:http://blog.csdn.net/racehorse/article/details/6634830,这方面我想我可能还需要再看看。
 
原文地址:https://www.cnblogs.com/xweiwei/p/2732535.html