ich versuche schon seit einiger Zeit aus den ganzen Quellen im Internet schlau zu werden, aber komme auf keinen grünen Zweig weil scheinbar jeder andere Definitionen verwendet. Deshalb versuche ich mich an eine Quelle zu wenden um endlich einheitliche Informationen zu bekommen..
Also ein paar Fragen die die Verwirrung begründen:
Was ist der Unterschied zwischen "row-major" und "row-order"?
Fallen Vektoren auch in das Schema row-major / column major?
Im folgenden ein paar Absätze um genauer zu zeigen wo es hakt und was ich schon weiß:
OpenGL und DirectX haben beide bereits eingebaute Matrixtransformationen, in der DirectX Hilfe steht, dass D3DXMatrixMultiply
zwei Matrizen derart multipliziert, dass der Operator hintenangestellt ist...also "post multiply" mit "row major" Matrizen.
OpenGL macht anscheinend "pre multiply" und zwar mit "column major" Matrizen, wie hier beschrieben
http://www.gamedev.net/community/forums ... _id=541613
OpenGL FAQ:
1,Also sehen Matrizen und Vektoren im Speicher immer gleich aus, richtig? Das macht aber keinen Sinn, denn wenn ich eine Matrix Element für Element runterschreibe, kommt eine andere Reihenfolge heraus wenn ich das per Zeile mache wie per Spalte.Column-major versus row-major is purely a notational convention. Note that post-multiplying with column-major matrices produces the same result as pre-multiplying with row-major matrices.
Bsp:
( 1 2)
( 3 4)
Zeilenweise: 1234 Spaltenweise: 1324
2, Heißt das, damit ich in OpenGL dieselbe Transformation bekomme wie in DirectX, ich die Matrix aus DirectX hernehmen kann (welche ja row-major ist) und dann mit der Matrix aus OpenGL (welche column-major ist) pre multiplizieren muss?
Ich werde die Sachen noch selbst testen mit den beiden API's, aber bevor ich nicht eine genauere Idee habe, was ich testen soll und was überhaupt in die richtige Richtung geht, würde das nur weitere Verwirrung stiften+ewig dauern. Dankbar für jede Antwort die hilft :)