Ich habe 3 * 4 Camera Matrix, die P = K[R | -RC]
ist, wo K
intrinsische ist Kameramatrix, R
ist Rotationsmatrix ist C
Kameraposition in Bezug auf Weltursprung und -RC
Übersetzung wird. Ich kann P
zu K
, R
und C
zerlegen. Wie ich in OpenGL mit dieser Kamera Informationen rendern möchte. Wie soll ich View Matrix und Projection Matrix unter Verwendung von K
, R
, C
; in OpenGL so, dass es die tatsächliche Kameraposition darstellt?Get Projection and View Matrix aus Kamera Matrix
Antwort
In OpenGL alle Matrizen sind 4x4 homogene Transformationen, wie unten beschrieben:
[Xx][Yx][Zx][Tx]
[Xy][Yy][Zy][Ty]
[Xz][Yz][Zz][Tz]
[Xw][Yw][Zw][Tw]
Kamera Matrix und Ansicht Matrix ist die gleiche Sache, und von einem „up“ Vektor, ein „Ort“ Vektor konstruiert und ein "Richtungs" -Vektor.
Von diesen Vektoren, können Sie die Ansicht Matrix berechnen:
vec3 Z = Eye - Location; //this is your "forward" vector
Z.Normalize();
vec3 Y = Up;
vec3 X = Y.Cross(Z); //crossing Y with Z gives you a perpendicular vector, which is needed to construct a coordinate basis matrix
Sie dann Konstruieren Sie die Matrix etwa so:
[Xx][Yx][Zx][-X.Dot(Eye)]
[Xy][Yy][Zy][-Y.Dot(Eye)]
[Xz][Yz][Zz][-Z.Dot(Eye)]
[Xw][Yw][Zw][1.0]
Dann haben Sie die Ansicht Matrix
Ihre Projektionsmatrix steht in keinem Zusammenhang mit diesen Daten und stellt die Sicht/Welt für die Bildschirmraumtransformation dar und hängt von Ihren Bildschirmabmessungen, dem Sichtfeldwinkel und naheabweit Clipping-Bereiche.
Von meinem Kopf kann ich mich nicht erinnern, wie man die Projektionsmatrix aus diesen Daten berechnet, also werde ich einfach empfehlen, wenn Sie Ihren GL arbeiten mit C++, dass Sie herunterladen und verwenden Sie die GLM mathematics Bibliothek , die diese gemeinsamen Funktionen bereits geschrieben haben.
- 1. Die libGDX Projection Matrix verstehen
- 2. GLM View Matrix verursacht Model Matrix keine Wirkung zu haben
- 3. Erhalten Kamera Matrix von Objekt Transformation Matrix
- 4. Kamera extrinsische Matrix Weltkoordinaten
- 5. Get Original-Matrix
- 6. Wikitude Kamera Projektion Matrix Einheit
- 7. Kamera extrinsische Matrix für gluLookAt
- 8. Projection Matrix in Apples iPhone OpenGLES 2.0 Vorlagenprojekt
- 9. XNA View Matrix - Ich suche Erklärungen
- 10. Matrix
- 11. Negative Brennweite in Kamera-Kalibrierung Matrix
- 12. Erstellen Teilmenge Matrix aus größeren Matrix in R
- 13. Füllen Matrix aus Liste
- 14. Strings aus Matrix
- 15. Torch - Lua/Get max Index von Matrix
- 16. OpenCV: Perspektive Matrix aus Übersetzung und Rotation
- 17. Erstellen einer diagonalen Matrix aus einer Hälfte der Matrix
- 18. numpy: wie eine Matrix von Vektoren, die aus Vektor-Matrix
- 19. numpy, füllen Sparse Matrix mit Zeilen aus einer anderen Matrix
- 20. eine Matrix aus einem kleineren „Schlüssel“ Matrix zu schaffen
- 21. Index aus Spaltenvektor der Matrix und dann multiplizieren entsprechende Matrix
- 22. Reform Matrix aus einer 2D-logischen Matrix (ohne Umformung)
- 23. Toeplitz-Matrix von Toeplitz-Matrix
- 24. Template Matrix-Matrix-Multiplikation C++
- 25. Matrix Multiplikation von Matrix-Sequenzen
- 26. Matrix Diagonale Elemente einer Matrix
- 27. Matrix-Multiplikation mit get _row get_column - python
- 28. alle möglichen Kombinationen Get Zeile in Matrix
- 29. Wie die int-Typ Matrix aus dem kurzen Matrix Matrix Produkt erhalten
- 30. Trans 1x4 Matrix in eine 4x1-Matrix