たとえば、次のような頂点シェーダーを使用するとします。
#version 400 core
uniform mat4 projM;
uniform mat4 viewM;
uniform mat4 modelM;
in vec4 in_Position;
out vec4 pass_position_model;
void main(void) {
gl_Position = projM * viewM * modelM * in_Position;
pass_position_model = modelM * in_Position;
}
頂点ごとに行列の乗算を行うprojM * viewM * modelM
のか、それとも一度計算して一様変数が変更されるまで再計算しないほどスマートなのか? 「十分にスマート」でない場合、CPU で均一に依存するすべての値を計算し、それらを均一変数として GPU に送信する以外に最適化する方法はありますか?
また、後で問題なく OpenGL ES 2.0 に移植できるソリューションにも興味があります。