ichRückwärtsprojektion Perspektive
worldview_inverse * (projection_inverse * vector)
mit Platz auf dem Bildschirm zu verwandeln Koordinaten in Weltraumkoordinaten. ich davon aus, dass
(x,y,1,1)
zu einem Punkt auf der weiten Ebene verwandeln würde, während
(x,y,-1,1)
auf der nahen Ebene zu einem Punkt verwandelt, und Verbinden der Linie I alle Objekte in der Ansicht abfragen Kegelstumpf, der die Linie schneidet. Nach der Transformation teile ich die resultierenden Punkte durch ihre jeweilige .w-Komponente. Dies funktioniert für die ferne Ebene, aber der Punkt auf der nahen Ebene wird irgendwie in den Ursprung des Weltraums transformiert.
Ich denke, das hat mit den w-Komponenten von 1 zu tun Ich füttere in die umgekehrte Projektion, denn normalerweise ist es 1 vor der Projektion, nicht nach, und ich mache die Rückprojektion. Was mache ich falsch?
Ich denke, Sie brauchen noch mehr Beispielcode. Vor allem der Teil, der Ihren Nahpunkt auf den Ursprung setzt. –
Könnten Sie auch die Projektionsmatrix angeben, die Sie verwenden? Ist es ausgeglichen? – Coincoin