Konvertieren von 3D -> 2D-Koordinate
Arbeite ich an einem ray-tracer und kommen mit etwas, dass ich denke, dass könnte durchaus Roman, aber ich habe Mühe mit der Zuordnung des Vector3 zu den entsprechenden 2D-Bildschirm zu koordinieren. Ich habe gesucht und fand ein paar verschiedene takes auf das Thema, aber Sie am Ende immer, dass Sie mir die falschen Ergebnisse.
Gegeben:
Einer perspektivischen Kamera (bestehend aus Vektoren für position, oben, rechts und Links)
Ein Vektor repräsentiert den 3D-Punkt im Raum, ich möchte die Karte wieder auf den Bildschirm
Haben:
Ich habe eine Funktion, die ein (x,y) - Koordinate und eine Kamera-Objekt und gibt es mir wieder einen Vektor (x,y,z)
Wollen:
Eine Funktion für die reverse - d.h. in einer 3D-Welt zu koordinieren und zu die Kamera, und geben Sie mir wieder die (x,y) - Koordinate im Gegenzug...
Ich habe versucht, verschiedene Methoden, dies zu tun, und alle von Ihnen falsche Daten zurück.
Danke!
- Hat Ihr
Camera
Objekt geben Ihnen eine Perspektive, eine matrix oder ein FOV und aspect ratio?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Was du suchst nennt sich eine Projektions-matrix. Sie vermehren sich einige 3D-Punkt durch diese matrix zu projizieren Sie auf einige 2D-Ansicht der Oberfläche, in unserem Fall ist der computer-Bildschirm.
Ich weiß, du bist nicht mit OpenGL, aber dieser link Konturen genau, wie OpenGL Konstrukte, so eine matrix:
http://www.songho.ca/opengl/gl_projectionmatrix.html
Antwortete ich ein paar vorherigen Fragen auf, können Sie Sie nützlich finden. Wenn nicht meine Antworten dann die Kommentare von anderen Nutzern auch!