Heute im Quakenet, hat mich einer gefragt wie man effektive Schatten in Außenleveln rendern könnte. Da ich selbst keinen Plan davon hatte (hab bis jetzt nur Schattenwerfende Punktlichquellen gebaut) musste ich mir schneller was ausdenken als ich tippen konnte. Die Stencilshadows sind ja doch nicht das ware, weil man viel zu Fus machen muss.
Die Bedingung sollte in etwa Folgende sein:
Die Umgebung kann unendlich groß sein, das Licht kommt aus nur einer Richtung.
Die shadowmap muss aus der Sicht der Lichtquelle gezeichnet werden. Da es unmöglich ist die ganze Umgebung in eine Shadowmap zu rendern, wird nur der Frustum dort hineingerdert. (Der rest kann teilweise muss aber nicht wegelessen werden)
Da der Frustum unprojeziert ziehmlich unförmig ist und sich irgend wie gar nicht auf eine Textur projezieren lässt wird er voher umgeformt und erhällt die Form eines Würfels. Sogar die LOD problem der shadowmap verschwindet hier vollkommen, da in der nähe der viele Samples und in der Entfernung sehr wenige Samples berücksichtig werden. Nun muss von unserem Transfomiertem Würfel die Silluette gefunden werden, da alles außerhalb des Cubus/Frustum nicht sichtbar ist. Nun kann alles unter berücksichtung der entsprechnden Transformationen in den Tiefen buffer gerendert werden. Idealerweise sind die Daten Quadtree obtimiret, dessen Zellen immmer obern beginnen und unten Enden. (Da entfällt das zurückschreiben in den Z-Buffer gleicher effekt wie mit den BSP bäumen)
Im finalem Renderdurchgung muss die gleiche Transfomation enewannt werdne um die Texturkoordinaten für die shadowprojektion zu ermitteln.
Da in der shadowmap quasi ein LD berücksichtigt wird kann die um einiges kleiner werden, als wenn die Tiefen maps z.B. kachelweise gerändert werden. Man kann es als vor und Nachteil werten, das bei jeder Kammerabewegung eine neue Shadowmap generiert werden muss, vorteil ist, das es ein relativ geringer aufwand ist, Nachteil, das man diese map überhaupt nicht wiederverwerten kann...
Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast
Du darfst keine neuen Themen in diesem Forum erstellen. Du darfst keine Antworten zu Themen in diesem Forum erstellen. Du darfst deine Beiträge in diesem Forum nicht ändern. Du darfst deine Beiträge in diesem Forum nicht löschen. Du darfst keine Dateianhänge in diesem Forum erstellen.