Main Menu

Schattentransparenz

Started by Marlon, November 08, 2011, 12:52:24 PM

Previous topic - Next topic

Marlon

Mittels setAmbientLight() kann dem ShadowHelper eine Helligkeitsstufe des Schattens zugewiesen werden.
Dabei beobachte ich das Phenomen dass besser beleuchtete Objekte in der Mitte des Bildschirms einen dunkleren Schatten werfen als Objekte im Hintergrund, die teilweise einen helleren Schatten werfen, als der Boden, auf dem sie stehen.

Nun sollte der Schatten, den ein Objekt wirft immer dunkler sein als der Untergrund, auf dem er projeziert wird.
Setze ich mittels setAmbientLight() das Licht herab, so dass dass der Schatten nicht zu hell ist, so ist er bei den besser beleichteten Objekten viel zu dunkel.

Gibt es eventuell eine Möglichkeit, dem geworfenen Schatten eine Transparenz einzuverleiben? Oder gibt es eine andere Möglichkeit (eventuell nur mit zusätzlichem ShadowHelper) das Problem zu lösen?
www.forgottenelements.com
Free Action JAVA MMORPG

EgonOlsen

Die Farbe des Schattens wird in einem extra Renderlauf festgelegt, in dem die Szene einfach ohne Lichtquellen oder mit dem im ShadowHelper festgelegten Ambientwert gezeichnet wird. Über diese Szene wird die normal beleuchtet Szene gerendert und der Schatten wird dabei ausgelassen, d.h. hier "leuchtet" die vorherige Szene durch. Wenn der zweiten Durchlauf in Teilen dunkler ist als der Schatten, dann sieht das sicherlich komisch aus. Alles was man da machen kann ist, die Schatten dunkler zu setzen.

Marlon

Ah, alles klar. Ich werde versuchen einen Mittelweg zu finden.
Bei meinem isometrischen Rollenspiel macht sich das Problem nicht wirklich dramatisch bemerkbar, allerdings frage ich mich wie man es lösen würde, wenn man ein Rollenspiel aus der dritten Perspektive oder gar einen FPS realisieren möchte...
www.forgottenelements.com
Free Action JAVA MMORPG