OpenGLスレ Part20
レス数が950を超えています。1000を超えると書き込みができなくなります。
0970デフォルトの名無しさん
2014/09/01(月) 20:08:49.17ID:AuKDuIgbOpenGLと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から見ると同じものを渡されてるので、後は頂点シェーダーで掛け算するだけです
どこでも逆順に適用とかされません
レス数が950を超えています。1000を超えると書き込みができなくなります。