我正在使用Emscriten将OpenGL框架移植到JavaScript上。状态存储在一个统一的结构体中:
struct UniformState {
...
mat4 modelviewprojection_matrix;
mat4 modelview_matrix;
mat3 normal_matrix;
mat4 texture_matrix;
...
};
我希望在顶点着色器和片元着色器中都能访问以下内容:
uniform UniformState GLUP;
当我这样做时,在链接时会出现错误:
Uniform `GLUP`is not linkable between attached shaders
在顶点着色器和片元着色器中绑定相同的uniform是否被禁止?
(如果被禁止,那么显然我可以为每个着色器声明两个不同的uniform变量集,但我更希望只有一个,因为这样可以使代码更清晰/简单,这就是为什么我要问是否有特殊的方法可以实现它。)