トップページ > プログラム > 2014年09月02日 > yjXIz5ow

書き込み順位&時間帯一覧

13 位/203 ID中時間01234567891011121314151617181920212223Total
書き込み数0000000001012000000000004



使用した名前一覧書き込んだスレッド一覧
デフォルトの名無しさん
OpenGLスレ Part21

書き込みレス一覧

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

の順で取っていくんですね。


※このページは、『2ちゃんねる』の書き込みを基に自動生成したものです。オリジナルはリンク先の2ちゃんねるの書き込みです。
※このサイトでオリジナルの書き込みについては対応できません。
※何か問題のある場合はメールをしてください。対応します。