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

Transparent Shader mit Schatten (Decal)

Recommended Posts

Hallo zusammen,

 

vielleicht kann jemand diesen Shader ebenfalls gebrauchen. Aktuell ist es wohl so, daß die Standardshader in Unity transparente Oberflächen nur ohne Schatten darstellen können, d.h. es wird kein Schatten auf eine transparente Fläche geworfen und das kann in einer Szene mit Schattenwurf ziemlich störend sein. Man kann zwar aktuell einen Cutout-Shader verwenden, aber dieser produziert eben nicht die gleichen Ergebnisse (scharfe Kanten) wie ein Transparent-Shader.

 

Falls jemand tiefer einsteigen möchte, hier der zugehörige Diskussionsthread im Unityforum:

https://forum.unity3...y-shaders.9909/

 

Der hier vorgestellte Shader ist im Prinzip der Builtin Diffuse-Transparentshader mit einem "Kniff":

 

Shader "FX/TransparentDiffuseWithShadows" {
Properties{
 _Color("Main Color", Color) = (1,1,1,1)
 _MainTex("Base (RGB) Trans (A)", 2D) = "white" {}
}
SubShader{
Tags{ "Queue" = "AlphaTest+50" "IgnoreProjector" = "True" "RenderType" = "TransparentCutout" }
LOD 200
CGPROGRAM
#pragma surface surf Lambert alpha:fade
sampler2D _MainTex;

fixed4 _Color;
struct Input {
  float2 uv_MainTex;
};
void surf(Input IN, inout SurfaceOutput o) {
 fixed4 c = tex2D(_MainTex, IN.uv_MainTex) * _Color;
 o.Albedo = c.rgb;
 o.Alpha = c.a;
}
ENDCG
}
 Fallback "Legacy Shaders/Transparent/VertexLit"
}
 

 

Ich habe obigen Shader in meinem Projekt dazu verwendet, um Bewuchs an einer Steinmauer zu visualisieren:

Mossdecalonwall.png

  • Like 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  

×