着色器中的变量名称效率(OpenGL ES 2)

时间:2013-04-17 03:23:08

标签: opengl-es-2.0 shader

出于好奇,编写像这样的着色器变量会更有效:

     lowp vec4 tC = texture2D(uTexture, vTexCoord); // texture color

     lowp vec4 textureColor = texture2D(uTexture, vTexCoord); // texture color

请注意,我写了变量 tC ,因为它的字符少于变量 textureColor

我理解像C / ObjC这样的编程语言,没关系,但是shader怎么样,因为你可以查询属性/统一名称。

1 个答案:

答案 0 :(得分:1)

它不应该产生可衡量的差异。在初始化期间链接程序后,查询属性/制服的位置,并使用程序句柄保留结果。从那时起,您的应用程序和驱动程序都不会触及名称字符串,只会触及整数位置。

即使您每次需要更改attrib绑定或统一值时重新查询位置,与执行查找的其他成本相比,短名称和“中等”名称长度之间的差异可能不会产生太大差异和绑定/值的变化。