近期热门
非常牛逼的2个外发光shader!~~~~~~~~~~

[U3D] 非常牛逼的2个外发光shader!~~~~~~~~~~

[复制链接]
谢谢分享
9年前  ·  1335楼
回复

使用道具 举报

楼主辛苦啦~谢谢分享
9年前  ·  1334楼
回复

使用道具 举报

好资源
9年前  ·  1333楼
回复

使用道具 举报

感觉非常牛逼的样子啊

9年前  ·  1332楼
回复

使用道具 举报

kan kan 看的地方额

9年前  ·  1331楼
回复

使用道具 举报

Shader "MyToon/Toon-Surface_Normal" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _Bump ("Bump", 2D) = "bump" {}
        _Ramp ("Ramp Texture", 2D) = "white" {}
        _Tooniness ("Tooniness", Range(0.1,20)) = 4
        _Outline ("Outline", Range(0,1)) = 0.4
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        LOD 200

        CGPROGRAM
        #pragma surface surf Toon

        sampler2D _MainTex;
        sampler2D _Bump;
        sampler2D _Ramp;
        float _Tooniness;
        float _Outline;

        struct Input {
            float2 uv_MainTex;
            float2 uv_Bump;
            float3 viewDir;
        };

        void surf (Input IN, inout SurfaceOutput o) {
            half4 c = tex2D (_MainTex, IN.uv_MainTex);
            o.Normal = UnpackNormal( tex2D(_Bump, IN.uv_Bump));

            half edge = saturate(dot (o.Normal, normalize(IN.viewDir)));
                        edge = edge < _Outline ? edge/4 : 1;
                       
            o.Albedo = (floor(c.rgb * _Tooniness)/_Tooniness) * edge;
            o.Alpha = c.a;
        }

        half4 LightingToon(SurfaceOutput s, fixed3 lightDir, half3 viewDir, fixed atten)
        {
                float difLight = dot (s.Normal, lightDir);
                float dif_hLambert = difLight * 0.5 + 0.5;
               
                float rimLight = dot (s.Normal, viewDir);  
                float rim_hLambert = rimLight * 0.5 + 0.5;
               
                float3 ramp = tex2D(_Ramp, float2(rim_hLambert, dif_hLambert)).rgb;   

                        float4 c;  
            c.rgb = s.Albedo * _LightColor0.rgb * ramp * atten * 2;
            c.a = s.Alpha;
            return c;
        }

        ENDCG
    }
    FallBack "Diffuse"
}
Shader "MyToon/Toon-Surface_Normal" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _Bump ("Bump", 2D) = "bump" {}
        _Ramp ("Ramp Texture", 2D) = "white" {}
        _Tooniness ("Tooniness", Range(0.1,20)) = 4
        _Outline ("Outline", Range(0,1)) = 0.4
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        LOD 200

        CGPROGRAM
        #pragma surface surf Toon

        sampler2D _MainTex;
        sampler2D _Bump;
        sampler2D _Ramp;
        float _Tooniness;
        float _Outline;

        struct Input {
            float2 uv_MainTex;
            float2 uv_Bump;
            float3 viewDir;
        };

        void surf (Input IN, inout SurfaceOutput o) {
            half4 c = tex2D (_MainTex, IN.uv_MainTex);
            o.Normal = UnpackNormal( tex2D(_Bump, IN.uv_Bump));

            half edge = saturate(dot (o.Normal, normalize(IN.viewDir)));
                        edge = edge < _Outline ? edge/4 : 1;
                       
            o.Albedo = (floor(c.rgb * _Tooniness)/_Tooniness) * edge;
            o.Alpha = c.a;
        }

        half4 LightingToon(SurfaceOutput s, fixed3 lightDir, half3 viewDir, fixed atten)
        {
                float difLight = dot (s.Normal, lightDir);
                float dif_hLambert = difLight * 0.5 + 0.5;
               
                float rimLight = dot (s.Normal, viewDir);  
                float rim_hLambert = rimLight * 0.5 + 0.5;
               
                float3 ramp = tex2D(_Ramp, float2(rim_hLambert, dif_hLambert)).rgb;   

                        float4 c;  
            c.rgb = s.Albedo * _LightColor0.rgb * ramp * atten * 2;
            c.a = s.Alpha;
            return c;
        }

        ENDCG
    }
    FallBack "Diffuse"
}

Shader "MyToon/Toon-Surface_Normal" {
    Properties {
        _MainTex ("Base (RGB)", 2D) = "white" {}
        _Bump ("Bump", 2D) = "bump" {}
        _Ramp ("Ramp Texture", 2D) = "white" {}
        _Tooniness ("Tooniness", Range(0.1,20)) = 4
        _Outline ("Outline", Range(0,1)) = 0.4
    }
    SubShader {
        Tags { "RenderType"="Opaque" }
        LOD 200

        CGPROGRAM
        #pragma surface surf Toon

        sampler2D _MainTex;
        sampler2D _Bump;
        sampler2D _Ramp;
        float _Tooniness;
        float _Outline;

        struct Input {
            float2 uv_MainTex;
            float2 uv_Bump;
            float3 viewDir;
        };

        void surf (Input IN, inout SurfaceOutput o) {
            half4 c = tex2D (_MainTex, IN.uv_MainTex);
            o.Normal = UnpackNormal( tex2D(_Bump, IN.uv_Bump));

            half edge = saturate(dot (o.Normal, normalize(IN.viewDir)));
                        edge = edge < _Outline ? edge/4 : 1;
                       
            o.Albedo = (floor(c.rgb * _Tooniness)/_Tooniness) * edge;
            o.Alpha = c.a;
        }

        half4 LightingToon(SurfaceOutput s, fixed3 lightDir, half3 viewDir, fixed atten)
        {
                float difLight = dot (s.Normal, lightDir);
                float dif_hLambert = difLight * 0.5 + 0.5;
               
                float rimLight = dot (s.Normal, viewDir);  
                float rim_hLambert = rimLight * 0.5 + 0.5;
               
                float3 ramp = tex2D(_Ramp, float2(rim_hLambert, dif_hLambert)).rgb;   

                        float4 c;  
            c.rgb = s.Albedo * _LightColor0.rgb * ramp * atten * 2;
            c.a = s.Alpha;
            return c;
        }

        ENDCG
    }
    FallBack "Diffuse"
}




9年前  ·  1330楼
回复

使用道具 举报

看看

9年前  ·  1329楼
回复

使用道具 举报

需要学习一下

9年前  ·  1328楼
回复

使用道具 举报

查看一下学习学习一下

9年前  ·  1327楼
回复

使用道具 举报

谢谢分享

9年前  ·  1326楼
回复

使用道具 举报

数据加载中....
没有更多评论了
您当前使用的浏览器IE内核版本过低会导致网站显示错误

请使用高速内核浏览器或其他浏览器