Добавить тень.

Шейдеры и все-все-все.

Добавить тень.

Сообщение freebizzy 03 окт 2016, 22:21

Здравствуйте! Помогите пожалуйста добавить к этому шейдеру тень. Сам пытался ничего не получается.
Синтаксис:
Используется csharp
Shader "DragonBone/DragonBone Simple"
{
        Properties
        {
                _MainTex ("Texture", 2D) = "white" {}
                [Enum(UnityEngine.Rendering.CullMode)]_CullMode("Cull Mode",float)=0
        }
        SubShader
        {
                Tags { "RenderType"="Transparent" "Queue"="Transparent" "IgnoreProjector"="True" "PreviewType"="Plane" "CanUseSpriteAtlas"="True" }
       
                Lighting off
                Zwrite off
                Cull [_CullMode]
                Blend SrcAlpha OneMinusSrcAlpha

                Pass
                {
                        CGPROGRAM
                        #pragma vertex vert
                        #pragma fragment frag
                       
                        #include "UnityCG.cginc"

                        struct appdata
                        {
                                float4 vertex : POSITION;
                                float2 uv : TEXCOORD0;
                                fixed4 color:COLOR;
                        };

                        struct v2f
                        {
                                float2 uv : TEXCOORD0;
                                fixed4 color:COLOR;
                                float4 vertex : SV_POSITION;
                        };

                        sampler2D _MainTex;
                        float4 _MainTex_ST;

                        sampler2D _AlphaTex;
                        float _AlphaSplitEnabled;

                       
                        v2f vert (appdata v)
                        {
                                v2f o;
                                o.vertex = mul(UNITY_MATRIX_MVP, v.vertex);
                                o.uv = TRANSFORM_TEX(v.uv, _MainTex);
                                o.color = v.color;
                                return o;
                        }


                        fixed4 SampleSpriteTexture (float2 uv)
                        {
                                fixed4 color = tex2D (_MainTex, uv);

#if UNITY_TEXTURE_ALPHASPLIT_ALLOWED
                                if (_AlphaSplitEnabled)
                                        color.a = tex2D (_AlphaTex, uv).r;
#endif //UNITY_TEXTURE_ALPHASPLIT_ALLOWED

                                return color;
                        }
                       
                        fixed4 frag (v2f i) : SV_Target
                        {
                                fixed4 col = SampleSpriteTexture(i.uv)*i.color;
                                return col;
                        }
                        ENDCG
                }
        }
}

 


------------------------------------------------------------------------------------------------------------

Оказалось все просто. Нужно было добавить в конец:
Код: Выделить всё
Fallback "Transparent/Cutout/VertexLit"
freebizzy
UNец
 
Сообщения: 1
Зарегистрирован: 01 июн 2014, 11:18

Вернуться в Shader Lab

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1