私はこの質問と同様のコードを持っています: opengl と glm の説明
単一のユニフォームとして渡す結合されたマトリックスがあります
//C++
mat4 combinedMatrix = projection * view * model;
//GLSL doesn't work
out_position = combinedMatrix * vec4(vertex, 1.0);
うまくいきません。しかし、シェーダーですべての乗算を行うと、個々のマトリックスを渡して取得します
//GLSL works
out_position = projection * view * model * vec4(vertex, 1.0);
できます。C++ コードの行列に問題はありません。
以下も動作します
//C++
mat4 combinedMatrix = projection * view * model;
vec4 p = combinedMatrix * v;
//pass in vertex p as a vec4
//GLSL works
out_position = vertex