【发布时间】:2017-11-30 08:48:52
【问题描述】:
在 GLSL 着色器中,如果我有以下布局规范:
layout (location = 0) uniform mat4 modelMatrix;
layout (location = 1) uniform mat4 viewMatrix;
layout (location = 5) uniform mat4 projMatrix;
layout (location = 30) uniform vec3 diffuseColor;
layout (location = 40) uniform vec3 specularColor;
void main()
{
...
}
位置之间有差距是否重要?这些差距是否会对数据的实际内存布局或性能产生任何影响?
【问题讨论】:
-
规范中的相关章节是4.4.1 Input Layout Qualifiers。但据我所知,它只是一个 ID,对内存没有直接影响。
-
有趣的问题,但我不确定是否有人可以给出答案:规范没有定义着色器内存的布局方式。但也许有人知道不同供应商是如何实现的。