joh*_*ers 1 opengl glsl opengl-es-2.0
我最近读到你可以
"有多个OpenGL着色器实例"
但没有提供其他细节.
我想澄清一下这究竟是什么意思.
首先,我知道你可以运行多个glProgram,并且可以在它们之间切换.这是指所有这些吗?我假设每帧在几个创建的着色器程序之间切换基本上意味着我"同时"使用几个程序.
或者它是否以某种方式引用具有相同着色器程序的多个"实例" ?那对我来说毫无意义.
在这里可以享受一些基本的澄清!
创建程序对象时,您将几个着色器链接在一起.通常至少有一个顶点和一个片段着色器.现在说你要渲染,说一些物体周围有些发光.该发光将由不同的片段着色器创建,但顶点着色器将与常规外观相同.现在为了节省资源,您可以在多个程序中使用相同的顶点着色器,但链接的是不同的片段着色器.当然,您也可以使用相同的片段着色器和不同的顶点着色器.
简而言之,您可以将单个着色器链接到任意数量的程序.只要链接的着色器阶段彼此兼容,这就有助于模块化.