Open GL Shaders“重用”

时间:2019-07-24 00:41:16

标签: opengl opengl-es shader

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

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

推荐吗?任何人都经历过吗?

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

示例

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

1 个答案:

答案 0 :(得分:1)

  

我可以在此通用着色器中编写统一变量吗?

是的

  

我可以在特定的着色器上最多附加多少个通用着色器?

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

  

提高此效果?

否。

  

如果我可以创建Comon Shader,极限在哪里?推荐吗?任何人都经历过吗?

这些问题过于笼统或基于意见,对于StackOverflow而言超出了范围。该功能存在是有原因的,因此请在适当的时候使用它。