gleichgroßer Layer parallel zum Viewport



  • Hallo,
    ich habe eine 3d-Frage, bei der es weniger um die konkrete Realisierung als um die allgemeine Herangehensweise geht. Konkret soll das mit OpenSG programmiert werden, lässt sich wohl aber auch ohne Probleme auf OpenGL übertragen.
    Gegeben ist ein Viewport mit einer Camera die eine Modelview und Projektionsmatrix hat.
    Ziel ist es nun einen Layer (Plane mit Textur, Ursprung in der Mitte) parallel zum Vieport einzufügen. Dieser Layer kann in der Tiefe (z) verschoben werden (wichtig für Verdeckung!), muss für den Betrachter aber (also im Viewport) immer genauso groß sein und idealerweise genau den Viewport ausfüllen.

    Mein Ansatz:

    • Transformationsmatrix A mit der entsprechenden Verschiebung über z Achse für den Layer erstellen.
    • A mit der Modelviewmatrix multiplizieren um Position herauszubekommen
    • lineare Skalierung der Layergröße (x,y) mit Tiefeninformation/konstanten Faktor

    Das sieht auf den ersten Blick gar nicht mal so schlecht aus, auf den zweiten liegt der Layer aber nicht mittig im Viewport sondern in y Richtung verschoben und verändert irgendwann doch plötzlich seine Größe. Vielleicht liegt es daran, dass die (etwas krumme) Projektionsmatrix der Kamera noch irgendwo reingerechnet werden muss?
    Hat hier einer eine Idee, wie man das Problem lösen kann bzw. wurde klar, was ich überhaupt tun möchte?
    Vielen Dank schon mal


Anmelden zum Antworten