| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113 |
- // Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
- Shader "RO/RimEdgeGlow"
- {
- Properties{
- _MainTex("Base (RGB)", 2D) = "white" {}
- _RimColor("Rim Color",COLOR) = (1,1,1,1)
- _Scale("Scale",range(1,8)) = 2
- _Outer("Outer",range(0,1)) = 0.2
- }
- SubShader
- {
- Tags { "RenderType" = "Opaque" "queue" = "Transparent"}
- LOD 300
- //=================卡通渲染PASS======================
- Pass {
- blend srcalpha one
- zwrite off
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- #include "UnityCG.cginc"
- float4 _RimColor;
- float _Scale;
- float _Outer;
- struct a2v {
- float4 vertex : POSITION;
- float3 normal : NORMAL;
- float4 texcoord : TEXCOORD0;
- };
- struct v2f {
- float4 pos : POSITION;
- float3 normal:TEXCOORD0;
- float4 vertex:TEXCOORD1;
- };
- v2f vert(a2v v) {
- v.vertex.xyz += v.normal*_Outer;
- v2f o;
- o.pos = UnityObjectToClipPos(v.vertex);
- o.vertex = v.vertex;
- o.normal = v.normal;
- return o;
- }
- fixed4 frag(v2f i) : COLOR {
- float3 N = UnityObjectToWorldNormal(i.normal);
- float3 V = normalize(WorldSpaceViewDir(i.vertex));
- float bright = pow(saturate(dot(N,V)),_Scale);
- _RimColor.a *= bright;
- return _RimColor;
- }
- ENDCG
- }
- //========================================
- Pass {
- Tags { "LightMode" = "ForwardBase" }
- //blend one one // 当前都不渲染
- //zwrite off
- CGPROGRAM
- #pragma vertex vert
- #pragma fragment frag
- #include "UnityCG.cginc"
- //只有点乘在frag做
- float4 _RimColor;
- float _Scale;
- sampler2D _MainTex;
- struct a2v {
- float4 vertex : POSITION;
- float3 normal : NORMAL;
- float4 texcoord : TEXCOORD0;
- };
- struct v2f {
- float4 pos : POSITION;
- float2 uv0 : TEXCOORD0;
- };
- v2f vert(a2v v) {
- v2f o;
- o.pos = UnityObjectToClipPos(v.vertex);
- o.uv0 = v.texcoord;
- return o;
- }
- fixed4 frag(v2f i) : COLOR {
- fixed4 clr = tex2D(_MainTex, i.uv0.xy);
- return clr;
- }
- ENDCG
- }
- }
- //FallBack "Diffuse"
- }
|