189 8069 5689

opengl学习笔记——着色器创建-创新互联

1、创建着色器对象GLuint glCreateShader(GLenum type)

创新互联成立10年来,这条路我们正越走越好,积累了技术与客户资源,形成了良好的口碑。为客户提供成都网站制作、网站设计、外贸网站建设、网站策划、网页设计、主机域名、网络营销、VI设计、网站改版、漏洞修补等服务。网站是否美观、功能强大、用户体验好、性价比高、打开快等等,这些对于网站建设都非常重要,创新互联通过对建站技术性的掌握、对创意设计的研究为客户提供一站式互联网解决方案,携手广大客户,共同发展进步。

创建一个空白的着色器对象并返回其句柄,type 为GL_VERTEX_SHADER或者GL_FRAGMENT_SHADER

2、定义着色器源代码字符串

void glShaderSource(GLuint shader,GLuint nstrings,const GLchar** source,GLint *lenghs)

例如glShaderSource(*shader, sizeof(sources)/sizeof(*sources), sources, nullptr);

如果lenghs为nullptr,就会假定各个字符串都是以null结束,如果lengths不为nullptr,它就会指向一个包含strings各个对应元素的字符串长度的数组

3、编译着色器对象void glCompileShader(GLuint shader)

4、创建一个程序对象 GLuint glCreateProgram(),返回一个空白的程序对象并返回其句柄,程序对象可以向其附加着色器对象

5、附加着色器对象

void glAttachShader(GLuint program,GLuint shader)

可以将着色器对象附加到多个程序对象上

6、链接程序 void glLinkProgram(GLuint program)

链接操作会分配一致变量的位置,解析独立编译的着色器对象之间的引用。如果包含GL_VERTEX_SHADER,就会创建一个将在可编程顶点处理器上运行的可执行程序,如果包含GL_FRAGMENT_SHADER,就会创建一个将在片元处理器上运行的可执行程序,为了保持清洁,一个很有用的编程技巧是一旦将着色器对象附加到程序对象并且连接成功后就删除它们,它们此时不会被删除,但是它们会标记为不再引用是删除。

7、安装程序对象,作为当前渲染状态的一部分void glUseProgram(GLuint program)

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


标题名称:opengl学习笔记——着色器创建-创新互联
转载来于:http://cdxtjz.cn/article/dpdhoj.html

其他资讯