1

我最近读到你可以

“有多个 OpenGL 着色器实例”

但没有提供其他细节。

我想澄清一下这到底是什么意思。

一方面,我知道您可以运行多个 glProgram,并且您可以在它们之间切换。这都是指的吗?我假设每帧在几个创建的着色器程序之间切换基本上意味着我正在“同时”使用多个程序。

或者它是否以某种方式指代同一着色器程序的多个“实例”?那对我来说毫无意义。

一些基本的澄清会在这里享受!

4

1 回答 1

6

当您创建一个程序对象时,您将几个着色器链接在一起。通常至少有一个顶点和一个片段着色器。现在说你想渲染,说一些物体周围的发光。该发光将由不同的片段着色器创建,但顶点着色器将与常规外观相同。现在为了节省资源,您可以在多个程序中使用相同的顶点着色器,但链接不同的片段着色器。当然,您也可以使用相同的片段着色器和不同的顶点着色器。

简而言之,您可以将单个着色器链接到任意数量的程序中。只要链接的着色器阶段相互兼容,这有助于模块化。

于 2013-04-16T10:57:36.873 回答