美文网首页
接收阴影时可调阴影颜色

接收阴影时可调阴影颜色

作者: 星易乾川 | 来源:发表于2018-07-11 10:28 被阅读0次
Shader "DiffuseEmission" {
    Properties{
        _MainTex("Base (RGB)", 2D) = "white" {}
        _Color("MainColor", Color) = (0.9,0.9,0.9,0)
        _ShadowColor("ShadowColor", Color) = (0.15,0.15,0.15,0)
        _Emission("Emission", Range(0, 1)) = 0
        _ShadowStrength("ShadowStrength",Range(0, 1)) = 0.5
    }
        SubShader{
            Tags { "RenderType" = "Opaque" "Queue"="Geometry"}
            LOD 150
            pass{
            Tags { "LightMode"="ForwardBase" }
        CGPROGRAM
        
        #pragma multi_compile_fwdbase
        #pragma vertex vert
        #pragma fragment frag
        #include "Lighting.cginc"
        #include "AutoLight.cginc"
        #include "UnityCG.cginc"
    
        
        sampler2D _MainTex;
        half4 _MainTex_ST;
        float _Emission;
        float4 _Color;
        half _ShadowStrength;
        float3 _ShadowColor;
            struct a2v {
                half4 vertex : POSITION;
                half4 texcoord : TEXCOORD0;
                float3 normal : NORMAL;
                    };
            
            struct v2f {
                half4 pos : SV_POSITION;
                half4 uv : TEXCOORD0;
                float3 worldNormal : TEXCOORD2;
                float3 worldPos : TEXCOORD1;
                SHADOW_COORDS(3)
            };
            v2f vert(a2v v) {
                v2f o;
                UNITY_INITIALIZE_OUTPUT(v2f, o);
                o.pos = UnityObjectToClipPos(v.vertex);
                o.uv.xy = v.texcoord.xy * _MainTex_ST.xy + _MainTex_ST.zw; 
                o.worldNormal = UnityObjectToWorldNormal(v.normal);
                o.worldPos = mul(unity_ObjectToWorld, v.vertex).xyz;
                TRANSFER_SHADOW(o);
                
                return o;
            }


            fixed4 frag(v2f i) : SV_Target {
                fixed3 worldNormal = normalize(i.worldNormal);
                fixed3 worldLightDir = normalize(_WorldSpaceLightPos0.xyz);
                fixed4 c = tex2D(_MainTex, i.uv.xy) * _Color + _Emission;
                fixed3 diffuse =  c * max(0, dot(worldNormal, worldLightDir)) + _ShadowColor *  (1- dot(worldNormal, worldLightDir));
                fixed atten = SHADOW_ATTENUATION(i);
             
                                                                
             // return   half4(diffuse * (1 - (1 - atten) *  _ShadowStrength ),1.0);
            return half4(diffuse * (1 - (1 - atten) *  _ShadowStrength ) /*+ _ShadowColor*/,1.0);
                }
        ENDCG
        }
        }
        Fallback "Diffuse"

相关文章

  • 接收阴影时可调阴影颜色

  • UILabel

    ShadowColor 设置阴影颜色 设置阴影颜色 [ label setShadowColor : [UICol...

  • canvas 阴影和图形变换

    一、阴影设置 1、阴影的颜色:值为标准的CSS颜色值,用于设定阴影颜色效果,默认是全透明的黑色 2、阴影模糊度:用...

  • 边框内阴影css

    box-shadow:水平阴影、垂直阴影、模糊距离、颜色、内阴影;

  • 14-CSS盒子阴影和文字阴影

    盒子阴影 如何给盒子添加阴影box-shadow: 水平偏移 垂直偏移 模糊度 阴影扩展 阴影颜色 内外阴影; 注...

  • 2017-02-27 CSS3学习笔记

    盒子阴影和文字阴影 如何给盒子添加阴影box-shadow: 水平位移 垂直位移 模糊度 阴影扩展 阴影颜色 内外...

  • CSS3--盒子阴影

    盒子阴影 格式box-shadow:水平偏移 垂直偏移 模糊度 阴影扩展 阴影颜色 内外阴影; 注意点盒子的阴影分...

  • iOS阴影设置详解

    UIView的阴影设置主要通过UIView的layer的相关属性来设置 阴影的颜色 阴影的透明度 阴影的圆角 阴影...

  • UIView加阴影

    UIView的阴影设置主要通过UIView的layer的相关属性来设置 阴影的颜色 阴影的透明度 阴影的圆角 阴影...

  • 临图是我的日常

    先上完成稿 铅笔打稿,定比例,指北针,然后上墨线,上阴影。上阴影时注意北的方向,阴影的方向。 最后上颜色,fand...

网友评论

      本文标题:接收阴影时可调阴影颜色

      本文链接:https://www.haomeiwen.com/subject/uuocpftx.html