我在顶点着色器中定义了一个UBO,如下所示:
layout (std140) uniform matricesBuffer
{
mat4 MVPMatrix;
mat4 modelMatrix;
};
我花了很多时间弄清楚为什么我需要的矩阵没有通过。然后我将相同的统一块添加到片段着色器中,它神奇地工作。所以我的问题是,我知道在管道中使用可分离的着色器时,有关于着色器程序/阶段之间的接口匹配的规范,但是从我读过的这些只描述输入和输出变量,但这个统一的块,或者UBO它当我将UBO链接到该绑定点时,应该只能从顶点着色器访问它。我对此感到困惑,任何信息都将不胜感激。
编辑:我一直在尝试一些事情,只是:
layout (std140) uniform anyName
{
mat4 worldMatrix;
};
片段着色器中的使其工作。如果我将“anyName”更改为某些名称,它可以工作也可以不工作。例如,如果它以字母R开头它不起作用,那么它工作的大多数其他字母。很困惑。