TA的每日心情 | 开心 2019-11-11 10:36 |
---|
签到天数: 2 天 [LV.1]初来乍到
|
GLSL教程
译:FreeSouth
OpenGL GLSL程序概述
在本节将介绍创建基于OpenGL的GLSL程序,在这里假定你已经有了一个片元着色器与一个顶点着色器。你可以从橙皮书(即:OpenGL着色语言)提供的网站上下载一些,Shader Designer和Render Monkey里也包含一些着色器的例子。
在OpenGL的程序构建方式与C程序很相似,每一个着色器就相当于一个C模块,你必须分开先编译完成,然后再链接到程序,最后执行,这与C程序的执行过程是相似的。
现在可以使用ARB扩展和OpenGL2.0,如果你是新手,建议看一下glew库,glew对ARB扩展和OpenGL的新版本都有一些不错的应用。
如果你的机器不支持OpenGL2.0,那只有使用ARB扩展了,在这里两个扩展需要支持:
 --GL_ARB_fragment_shader
 --GL_ARB_vertex_shader
这里有一个小例子,使用GLEW去看一下扩展是不是可用:
________________________________________
#include <GL/glew.h>
#include <GL/glut.h>
void main(int argc, char **argv) {
glutInit(&argc, argv);
...
glewInit();
if (GLEW_ARB_vertex_shader && GLEW_ARB_fragment_shader)
printf("Ready for GLSL\n");
else {
printf("Not totally ready \n");
exit(1);
}
setShaders();
glutMainLoop();
}
________________________________________
下面的程序测试一下OpenGL2.0是不是可用:
________________________________________
#include <GL/glew.h>
#include <GL/glut.h>
void main(int argc, char **argv) {
glutInit(&argc, argv);
...
glewInit();
if (glewIsSupported("GL_VERSION_2_0"))
printf("Ready for OpenGL 2.0\n");
else {
printf("OpenGL 2.0 not supported\n");
exit(1);
}
setShaders();
glutMainLoop();
}
________________________________________
下图阐释了在OpenGL2.0中使用Shader的一些步骤,以后将分别介绍它们:
下节我们将逐步创建一些Shader程序。
原文地址:http://www.lighthouse3d.com/opengl/glsl/index.php?ogloverview
OpenGL GLSL程序概述.pdf
(167.85 KB, 下载次数: 912)
|
|