打开 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 的范围。该功能的存在是有原因的,因此请在适当的时候使用它。
我的问题是基于这个答案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 的范围。该功能的存在是有原因的,因此请在适当的时候使用它。