2017-07-03 5 views
0

Ich habe dieses AR-Projekt, das ich die Bildschirmkoordinate zu Weltkoordinaten umwandeln muss. Ich folge this tutorial und ich habe es fast geschafft.Holen Sie sich die Breite und Höhe des Kameraraums in Grafikprogrammierung

Das einzige Problem, wenn ich versuche, vom homogenen Clip-Raum zum Augenraum zu transformieren, verwende ich die falsche Projektionsmatrix. Der Grund, warum die Projektionsmatrix falsch ist, weil ich nicht die richtige Breite und Höhe des Kameraraums bekommen kann. Ich benutzte diese Bibliothek namens Kudan. Wenn ich das Kamerahandy vorwärts und rückwärts bewege, erwarte ich, dass sich die Breite und Höhe der Kamera ändert, da die Größe des Kamerabereichs bei der Vorwärtsbewegung kleiner werden sollte und umgekehrt.

Für den letzten Ausweg versuche ich derzeit, die Größe des Kameraraums selbst herauszufinden, wie kann ich das umsetzen?

Dies ist meine Projektionsmatrix

Matrix4f projectionMatrix = new Matrix4f(-0.5f* currentCamWidth, 0.5f * currentCamWidth, -0.5f * currentCamHeight, 0.5f * currentCamHeight, -1f, node.getFullPosition().getZ()); 

Aktuelle Nockenbreite und aktuelle Nockenhöhe ist immer konstant. die Koordinaten opengl Koordinaten

+0

Kameraraum hat keine Breite/Höhe. Das nächste, was du bekommst, ist das FOV und das Seitenverhältnis. –

+0

wie bekommt man fov? –

+0

Können wir die Projektionsmatrix aus dem Seitenverhältnis erhalten? –

Antwort

0

, wenn ich die Kamera-Handy vorwärts und rückwärts, erwarte ich, dass die Kamera Breite und Höhe, da die Kamera Raumgröße

Warum ändern? Nur weil Sie sich um den Standpunkt bewegen, heißt das nicht, dass sich die Eigenschaften des "virtuellen Objektivs" ändern.

sollte kleiner werden, wenn es vorwärts geht und umgekehrt.

Warum? So funktionieren Kameras nicht.


Es ist wirklich schwer, hier eine hilfreiche Antwort zu geben, ohne den Code zu sehen, den Sie bisher geschrieben haben. Im Moment ist es bestenfalls Ratespiel.

+0

Ich bin nur auf der Suche nach Theorie, kennen Sie Kudan? –

+0

vorerst kenne ich die position des objekts im kameraspace, wenn ich meinen kameraspace so einstelle, dass das objekt in der ecke meines kameras erscheint. Die Koordinate des Objekts ist nicht identisch mit meiner Bildschirmgröße. –

+0

im Grunde, ich versuche, meine Bildschirmkoordinaten auf Kamera Raumkoordinaten zu konvertieren. aber ohne die Größe der Kamerakoordinate zu kennen, ist dies nicht möglich. –

Verwandte Themen