2012-06-20 15 views
6

Ich habe eine grüne Fläche und einen roten Würfel darüber. Das Licht ist ein gerichtetes Licht.Warum ist der Schatten an der falschen Stelle? (Three.js)

shadow

Warum ist der Schatten an der falschen Stelle? Code: http://jsfiddle.net/pD8dn/


Edit:

Wenn ich ändern die light.shadowBias dann der Schatten auf der Ebene ist richtig, aber der Schatten ist auf dem Würfel falsch:

shadow

http://jsfiddle.net/pD8dn/4/

Vielen Dank im Voraus,

+2

Können Sie Ihren Code zur Verfügung stellen? –

+0

@ EmilVikström Hier ist es: http://jsfiddle.net/pD8dn/ – eqiproo

Antwort

6

Dies ist eines der häufigsten Artefakte für Shadow Maps, es heißt "Peter Panning".

Eine Abhilfe ist eine kleine Vorspannung für eine gründlichere Prüfung hinzuzufügen:

light.shadowBias = 0.001; 

Der genaue Wert der Vorspannung für jede Szene abgestimmt werden muss (und leider manchmal werden Sie nicht in der Lage sein, alle loszuwerden Artefakte überall, Tuning Shadow Maps ist mehr Kunst als Wissenschaft).

Dies ist, was für Ihr Beispiel funktioniert:

http://jsfiddle.net/pD8dn/2/

+0

danke, aber immer noch fehlerhaft. Ich habe die Frage bearbeitet – eqiproo

+3

Ja, das ist, was ich meinte, mit Shadowmaps müssen Sie mit Parametern (Auflösung, Lichtkegelstumpf Größe und Position, Bias) spielen und eine Balance zwischen verschiedenen Arten von Artefakten finden. Bitte beachten Sie, dass Verzerrungen sehr empfindlich auf kleine Variationen reagieren können, experimentieren Sie damit und sehen Sie die Auswirkungen. – alteredq

+0

Wenn ich größere und kleinere Objekte auch in meiner Szene habe, kann ich keine gute Lösung finden. Ist es ein Fehler in Three.js? Weil ich in den Demos anderer 3D-Bibliotheken keinen solchen Fehler gefunden habe. – eqiproo

Verwandte Themen