位置: 编程技术 - 正文
推荐整理分享OpenGL中使用GLSL着色器(opengl glu),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:opengl glflush,opengl glx,opengl glx,opengl如何使用,opengl glsl,opengl如何使用,opengl glclear,opengl glsl,内容如对您有帮助,希望把文章链接给更多的朋友!
OpenGL中使用GLSL着色器步骤
GLSL既适用于顶点着色器,也适用于片段着色器。
使用着色器对象的步骤:1、创建着色器对象: GLuint glCreateShader(GLenum type);//创建一个着色器对象,type必须是GL_VERTEX_SHADER或GL_FRAGMENT_SHADER。error返回、把着色器的源码与着色器对象相关联: glShaderSource(GLuint shader, GLsizei count, const GLChar** string, const GLint* length);3、编译着色器对象的源码: void glCompileShader(GLuint shader); glGetShaderiv(GL_CIMPILE_STATUS); //查询编译结果 glGetShaderInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, char* infoLog);4、创建一个空的着色器程序: Gluint glCreateProgram(); //if error, return 0;5、把着色器对象连接到着色器程序: glAttachShader(GLuint program, GLuint shader); //glDetachShader(program, shader);6、把连接到着色器程序中的对象链接成一个可执行程序: voi glLinkProgram(GLuint program); glGetProgramiv(GL_LINK_STATUS); //查询链接结果, GL_TRUE represent success glGetProgramInfoLog(GLuint shader, GLsizei bufSize, GLsizei *length, char* infoLog);7、启动顶点或片段着色器程序: void glUseProgram(GLuint program); //使用程序的对象句柄作为参数eg:删除着色器:
void glDeleteShader(GLuint shader); //若正在被使用,标记为删除,使用完后删除判断是否是否是有效的着色器程序名: GLboolean glIsProgram(GLuint program); //GL_TRUE验证一个着色器是否可在当前的OpenGL状态下执行: void glValidateProgram(GLuint program);//若验证通过,GL_VALIDATE_STATUS被设置为GL_TRUE, 调用glGetProgramiv()查询GL_VALIDATE_STATUS的。
cocos2d-x源码分析之Director::drawScene() 寄语:选择可能就意味着孤独,我们只有不懈的坚持方能看见曙光!最近比较郁闷,上一个项目还是黄了,自己加入了新的团队,在工作之余打算看看co
OpenGL学习-OpenGL光照 在OpenGL模型中,除非一个物体自己会发光,否则它将受到3中不同的光照射:环境光(ambient)、散射光(diffuse)和镜面光(specular)。现实世界中,当然不存在这
计算机中丢失OPENGL.dll 开发OpenGL项目时,在VS开发环境下可能会出现如图所示的错误。在c:windowssystem和SysWow文件夹下存在opengl.dll,此时,所写程序能够正常编译,但是,
标签: opengl glu
本文链接地址:https://www.jiuchutong.com/biancheng/373238.html 转载请保留说明!友情链接: 武汉网站建设