打开 GL 着色器“重用”

Open GL Shaders "reused'

我的问题是基于这个答案GLSL reusable/shared functions, shared constants (OpenGL ES 2.0)?

如果我可以创建一个普通的着色器,限制在哪里?我可以在这个通用着色器中写入 Uniform 变量吗?我可以附加到特定着色器上的最大数量的普通着色器是多少?提高这个性能?

推荐吗?有人有这方面的经验吗?

编辑:在我的 OpenGL 实现中,我有一些扩展其他着色器的着色器。是否有可能在不损失性能的情况下摆脱重复代码?

一个例子

ShaderC 扩展了 ShaderB 扩展了 ShaderA。他们每个人都在加载一些统一的变量。 如果我创建一个 commonShaderB.glsl 和一个 commonShaderA.glsl 并将它们附加到 shaderC 的程序以避免重复的 glsl 代码,这是否是一个好习惯?

Can I write in this common shader Uniform variables ?

是的。

What is the max amount of common shaders that I can attach to on spezific one ?

可以附加到着色器程序的着色器数量没有限制。但是,指令、统一变量和属性的数量是有限制的。使用合理设计的着色器,您不太可能达到这些限制中的任何一个。

Increase this Performance ?

没有

If I can create a Comon Shader where is the limit ? Is it recommend ? Anyone experience with this ?

这些问题过于宽泛,或者 opinion-based 超出了 Whosebug 的范围。该功能的存在是有原因的,因此请在适当的时候使用它。