Я использую следующий шейдер в единстве 4.6.2, но, к сожалению, он не работает в единстве5. У меня есть объект в AR-сцене (vuforia 4), и я хочу показать тени на плоскости, находящейся под объектом. Этот самолет должен быть прозрачным и показывать только тени, как на картинке.Прозрачный Shade Shader Unity5
это шейдер, который работает в единстве 4.6.2
Shader "TransparentShadowShader" {
Properties
{
_ShadowColor ("Shadow Color", Color) = (0,0,0,1)
}
Category {
Blend SrcAlpha OneMinusSrcAlpha
Lighting Off
Zwrite Off
LOD 200
SubShader
{
Tags { "RenderType"="Transparent" }
CGPROGRAM
#pragma surface surf Custom
struct Input {
float2 pos : POSITION;
};
uniform float4 _ShadowColor;
void surf(Input IN, inout SurfaceOutput o)
{
//Pass through shadow colour to lighting model
o.Albedo = _ShadowColor.rgb;
o.Alpha = _ShadowColor.a;
}
half4 LightingCustom(SurfaceOutput s, half3 lightDir, half3 viewDir, half atten)
{
half4 c;
//Inverse illumination - atten accounts for shadowing
c.rgb = s.Albedo.rgb * 1.0f-atten;
c.a = s.Alpha * 1.0f-atten;
return c;
}
ENDCG
}
}
Fallback "VertexLit", 2
}
это то, что я получаю в unity5, используя этот шейдер
Можете ли вы объяснить, каким образом затенение не работает? – bwroga
Я добавил изображение шейдера .. Похоже, он перевернулся или что-то в этом роде. – Jenny
@Jenny вы нашли решение? –