Ok ok ich gebe zu, ich bin gelangweilt und spiele mit einem Portalskript wie dem auf Steam.
Ich habe folgendes herausgefunden:
- relative Positionierung der gespiegelten Kameras
- In Textur für das Portal rendern (die Textur ist die Ansicht von der gegenüberliegenden Kamera)
- Poly Culling (da sich die Kamera hinter dem anderen Portal befindet, wähle ich alle Polys hinter der Vorderseite des Portals aus
Ich kann nicht herausfinden, wie die Projektion skaliert werden soll, daher ignoriere ich alles außerhalb der Rückseite des Portals. Hier ist ein Bild zu erklären.
Die Rückseite von Portal 2, die von Kamera 2 aus betrachtet wird, wird auf der Vorderseite von Portal 1 angezeigt. Mein Problem ist die Skala. Ich möchte alles um die gepunktete Linie ignorieren und die Ansicht von Kamera 2 vergrößern, damit sie perfekt zur Vorderseite von Portal 1 passt. Ein großes Problem bei dieser Skalierung ist, dass sich die Perspektive ändert, wenn Sie sich bewegen. Ich bin nicht gut in Matrixmathematik, um das herauszufinden. Hat jemand eine Idee?
Ich suche nach einer Matrix, die ich als Projektionsmatrix für cam2 festlegen kann, damit dies funktioniert.
quelle
Antworten:
Betrachten Sie dies als ein reines 2D-Problem. Sie haben die beiden Renderings als 2D-Bilder und müssen sich nur überlagern, ohne Skalierung, Bewegung oder lustige Projektionswinkel. Wenn Sie nur den einfachsten Kopiervorgang ausführen, den Sie sich vorstellen können, passt er perfekt.
Ich denke, Sie möchten dies möglicherweise nahtloser tun, indem Sie das Rendering von Kamera 2 als Textur für das Rendern von Kamera 1 verwenden. Damit dies ordnungsgemäß funktioniert, muss das Rendering der Nocke 2 die Textur einer Ebene sein, die beim Rendern 1 senkrecht zum Kamerawinkel steht.
Ich hoffe, dies beantwortet Ihre Frage. Es wird sicher ein wenig schwierig sein, alles richtig zu bestellen.
quelle
Dieses System ist nicht erforderlich. Einfach die Hardware-Instanz des Raums (und seines Inhalts), dann übersetzen und bei Bedarf drehen, um eine Übereinstimmung zu erzielen und die GPU das Keulen durchführen zu lassen. Dies hat den großen Vorteil, dass die Welt nahtlos wird - das heißt, Sie müssen die KI nicht speziell damit oder so arbeiten lassen, da Sie die Welt effektiv erweitern, anstatt sie nur zweimal zu rendern.
quelle