Ich habe beim Rendern von Schatten folgendes Problem: Wenn sich die Lichtquelle hinter dem Objekt befindet und zwischen Objekt und Betrachter eine Wand ist, dann durchdringt der Schatten die Wand. Ich habe schon probiert, face culling abzuschalten, aber das hat nicht geholfen. Wie verhindert man sowas?
Eigentlich ist es ja so, dass nicht der Schatten sondern das Licht geworfen wird. Ich vermute du färbst den Schatten nacher dunkel. Man kann aber auch den Schatten vor der Beleuchtung berechnen und dort wo Schatten ist einfach kein Licht zeichnen.
Ein falscher Schatten entsteht ja dadurch dass der Schatten von dem Objekt an einer falschen Stelle sichtbar ist. In dem Fall hinter, also selber im Schatten von der Wand. Wenn die Wand auch Schatten wirft, dann ist es hinter der Wand sowieso dunkel und man sieht keinen Unterschied zwischen dem Schatten der Wand und des Objektes.
Ich glaube ich muss das präzisieren. Ich habe mehrere Lichtquellen. Für den Schatten jedes Objekts wird nur die dem Objekt nächste Lichtquelle berücksichtigt. Die Aufstellung ist jetzt folgende:
Der Schatten des Objekts erscheint nun sowohl auf der dem Betrachter zugewandten Seite von Wand 2 als auch auf Wand 3. Wand 1 kann aber wegen Licht 2 keinen Schatten Richtung Betrachter werfen. Ich muss den Schatten des Objekts also irgendwie anders wegkriegen. Aber wie?
Registriert: Fr Mai 14, 2004 18:56 Beiträge: 804 Wohnort: GER/OBB/TÖL-WOR/Greiling
Ja, der Schatten wird wahrscheinlich einfach auf die Bodenplatte gezeichnet, ohne dass die Wand berücksichtigt wird. Da müsste man mit raycasting / photonmapping arbeiten, damit so etwas von vornherein exakt berücksichtigt wird.
Du könntest z.B. den Umriss deines schattenwerfenden objekts berechnen und dann von jeder Lichtquelle aus Strahlen durch zu definierend eng beieinanderliegende punkte auf diesem umriss werfen. dort wo du triffst, ist schatten, der dann mehr oder weniger exakt projiziert wird. (das ist der raycasting-ansatz )
Ansonsten musst du eben beim schattenzeichnen auf deiner bodenplatte überprüfen, ob der schatten nicht schon woanders hingeworfen wird.
Ich nehme mal an dass ist so gemeint:
Der Schatten des Objektes soll hinter der Wand ausgeblendet werden, aber die Wand soll selber keinen Schatten werfen.
Es geht um Stencil Schattenvolumen.
Man kann trotzdem den Schatten der Wand berechnen, aber nicht zum abdunkeln benutzen sondern nur um damit den Stencil Buffer zu markieren und an diesen Stellen den Schatten des Objektes auszublenden.
Zitat:
Du könntest z.B. den Umriss deines schattenwerfenden objekts berechnen und dann von jeder Lichtquelle aus Strahlen durch zu definierend eng beieinanderliegende punkte auf diesem umriss werfen. dort wo du triffst, ist schatten, der dann mehr oder weniger exakt projiziert wird. (das ist der raycasting-ansatz )
Das soll vermutlich auch noch in hinreichend komplexer Umgebung in Echtzeit laufen.
Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste
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.