- OpenGLスレ Part20
954 :デフォルトの名無しさん[sage]:2014/09/01(月) 18:49:08.09 ID:AuKDuIgb - >>953
Xの転置をXtと表すと A x B と ( Bt x At )t が同じなのはわかる? 行ベクトルの転置は列ベクトルだとすると... つかわかってないのは君だけなのに、なんでそんな喧嘩腰なんだ
|
- OpenGLスレ Part20
970 :デフォルトの名無しさん[sage]:2014/09/01(月) 20:08:49.17 ID:AuKDuIgb - >>960
OpenGLとDirectXが違ってどっかで転置操作してるってのが質問なんじゃないの? v を列ベクトル、Vを行ベクトルとすると OpenGLは v' = M * v DirectXは V = V * M v' = M * v の 両辺を転置すると vt = ( M * v )t V = V * Mt で同じ式。 CPUはGPUに 頂点 v[4] と 行列 M[16]を渡します 頂点v[4]はベクトルだからvでもVでも同じ値、 MとMtは違うけど、配列が行/列優先によりM[16]も同じ値になります つまり >>946のglDrawArrayとDirectXのdraw()はGPUから見ると同じものを渡されてるので、後は頂点シェーダーで掛け算するだけです どこでも逆順に適用とかされません
|
- OpenGLスレ Part20
979 :デフォルトの名無しさん[sage]:2014/09/01(月) 20:36:05.96 ID:AuKDuIgb - >>975
ここはOpenGLスレだから、どっちが自然かって言われたら断然OpenGLなんだよねー 同じ場所でクルクル回るのに、どうして毎回移動しないといけないのー。みたいな glPushMatrix glPopMatrix超べんりー つかどうせD3DXMatrixMultiplyとかで自分で掛け算してんだから、どっちが逆とかないんじゃねの >>972 × なんで答えが列ベクトルになっちゃうんだよw
|
- OpenGLスレ Part20
983 :デフォルトの名無しさん[sage]:2014/09/01(月) 20:48:36.89 ID:AuKDuIgb - >>982
M = T M = M * R M = M * S でも M = S M = R * M M = T * M でも好きにすりゃいいだろうって話
|
- OpenGLスレ Part20
987 :デフォルトの名無しさん[sage]:2014/09/01(月) 20:57:29.46 ID:AuKDuIgb - >>984
D3DXMatrixMultiply(OUT, M1, M2); D3DXMatrixMultiply(OUT, OUT, M3); と D3DXMatrixMultiply(OUT, M2, M3); D3DXMatrixMultiply(OUT, M1, OUT); は同じじゃないのって言ったのだが
|
- OpenGLスレ Part20
991 :デフォルトの名無しさん[sage]:2014/09/01(月) 21:32:48.89 ID:AuKDuIgb - 君の出発点がどこかは誰にもわからない
|