Jump to content
Unity Insider Forum
Sign in to follow this  
Polywonk

Shadowmap

Recommended Posts

Bin mir nicht sicher, ob ich hier bei den Shadern richtig bin, aber ich werd schon nicht meinen Kopf riskieren.

shadowmap.gif

Ich würde gerne in meinen Tile-basierenden Level Editor unpassierbare Bereiche abdunkeln, damit Hindernisse und Plattformen hervorgehoben werden.
Jetzt fehlt uns ein Ansatz, wie man das am schönsten und Ressourcenschonendsten hinbekommen. Ich hatte die Idee einen Layer einzubauen, der aus einer großen Textur/Material/Shader besteht, auf welcher die Schatten der Tiles in groben Pixeln eingezeichnet werden.
shadowmap3.png
Ähnlich wie eine transparente Minimap, die sich über das ganze Level erstreckt. Das Ergebnis müsste dann mit einem Shader weichgezeichnet werden. (und evtl. mit den Hintergründen Multipliziert werden falls keine Transparenz unterstützt wird.(was ich nicht glaube))
shadowmap2.png

Jetzt ist meine Frage; ist das möglich oder überhaupt Ratsam? Gibt es besser Methoden um so eine Art "Fog of War" zu erstellen?

Share this post


Link to post
Share on other sites

Ist der ideale Anwendungsfall für einen Kameraeffekt-Shader. Dieser Effektshader verarbeitet dabei aber den gesamten Blickbereich (Frustum) der Kamera. 
Nun muss man aber diverse Dinge beachten / bedenken:
- bewegt sich deine Kamera, also folgt sie dem Spieler, d.h. verschiebt sich das Kamera-Frustum?
- soll auch der Hintergrund durch den Effektshader beeinflusst werden?

Sollte sich die Kamera mit dem Spieler mitbewegen, wird es komplexer, da sich hier der Bildschirmausschnitt mit verschiebt und dadurch der Ausschnitt der Shadowmap mit verschoben werden muss. Soll der Effektshader nur bestimmte Gegenstände beeinflussen, dann müssen diese Gegenstände in einen eigenen Layer und die "Effektkamera" darf dann nur diese Objekte rendern. Das "Weichzeichnen" nennt sich Antialiasing. Es gibt Effektshader die einen Antialiasing Effekt erzeugen können, indem Fall müsste man so einen umschreiben, daß er nur die Shadowmap weichzeichnet und nicht die Maintextur ... Die Farbwerte (Helligkeit) der Shadowmap würden dann im letzten Schritt mit den Farbwerten der Maintextur vermischt werden (die Maintextur ist bei einem Effektshader immer der Bildschirminhalt der Kamera)

  • Thanks 1

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×