Je suis en train de porter un framework OpenGL en JavaScript en utilisant Emscriten.
L'état est stocké dans une structure uniforme:
struct UniformState {
...
mat4 modelviewprojection_matrix;
mat4 modelview_matrix;
mat3 normal_matrix;
mat4 texture_matrix;
...
};
que j'aimerais accéder à la fois dans les shaders de sommets et de fragments comme suit:
uniform UniformState GLUP;
lorsque je fais cela, j'obtiens une erreur au moment du lien:
Uniform `GLUP`is not linkable between attached shaders
Est-il interdit de lier le même uniforme dans le shader de sommets et le shader de fragments ?
(si c'est interdit, alors clairement je peux déclarer deux ensembles différents de variables uniformes pour chaque shader, mais je préférerais n'en avoir qu'un seul, car cela rend le code plus propre / plus simple, c'est pourquoi je demande au cas où il y aurait quelque chose de spécial à faire pour rendre cela possible).