- OpenGLスレ Part21
11 :デフォルトの名無しさん[sage]:2014/09/02(火) 09:45:25.69 ID:yjXIz5ow - OpenGLは列オーダーと言う事ですが、
シェーダに渡すmat4行列は列オーダーを一次配列にした状態で渡すのでしょうか? たとえば、OpenGLのx軸の回転行列は、 1 0 0 0 0 cosθ -sinθ 0 0 sin θ cosθ 0 0 0 0 1 なので、 [1, 0, 0, 0, 0, cosθ, -sinθ, 0, 0, sinθ, cosθ, 0, 0, 0, 0, 1] と詰めて渡すのでしょうか?
| - OpenGLスレ Part21
13 :デフォルトの名無しさん[sage]:2014/09/02(火) 11:55:20.45 ID:yjXIz5ow - >>12
1 0 0 0 0 cosθ -sinθ 0 0 sin θ cosθ 0 0 0 0 1 が既に列オーダーの並びなのに、それをまた転置させて配列に入れるんですか?
| - OpenGLスレ Part21
18 :デフォルトの名無しさん[sage]:2014/09/02(火) 12:41:03.00 ID:yjXIz5ow - 単なる紙の上の計算だと、
頂点(1, 2, 3)をx方向に2移動だと 1 0 0 2 1 3 0 1 0 0 x 2 = 2 0 0 1 0 3 3 0 0 0 1 1 1 で、頂点シェーダ内でも MMatrix x Position の順で計算しているから、 この通り配列に入れるということかと思っていたのですが、 OpenGLでは行列配列を渡す時、本来渡したい行列の並びを転置して渡すということなのでしょうか。
| - OpenGLスレ Part21
20 :デフォルトの名無しさん[sage]:2014/09/02(火) 12:58:35.47 ID:yjXIz5ow - 行列を一次配列に変換するということは
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 の順だと思ってたのですが、OpenGLは 1 5 9 13 2 6 10 14 3 7 11 15 4 8 12 16 の順で取っていくんですね。
|
|