hch
2025-01-07 96af0bdacac686edf379e32ba00f9aa771669cab
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
Shader "Effect/Halo"
{
    Properties
    {
        _SwellSpd ("Swell Speed", Float ) = 1
        _SwellFlu ("Swell Flux", Float ) = 0.2
        _Color("Color",Color)=(1,1,1,1)
    }
    
    Subshader
    {
        LOD 300
    
        Tags {
            "Queue" = "Transparent+1"
            "RenderType" = "Transparent"
            "IgnoreProjector" = "True"
            "LightMode" = "Always"
            "ForceNoShadowCasting" = "True"
        }
        
        Pass
        {
            ZWrite Off
               Blend SrcAlpha One
              Cull Back
              Lighting Off
              Fog {Mode Off}
              
              CGPROGRAM
            #pragma target 3.0
            #pragma vertex vert
            #pragma fragment frag
            
            #pragma multi_compile QUALITY_LOW QUALITY_MED QUALITY_HGH
            #pragma fragmentoption ARB_precision_hint_fastest
            #pragma exclude_renderers flash 
            
            #include "UnityCG.cginc"
            #include "SnxxzCG.cginc"
            
            struct VertInput
            {
                float4 vertex : POSITION;
                float3 normal : NORMAL;
            };
            
            struct vertShader
            {
                float4 pos : SV_POSITION;
                float4 glo : TEXCOORD0;
                   fixed fog : TEXCOORD1;
            };
            
            // properties
            uniform float _SwellSpd;
            uniform float _SwellFlu;
            uniform float4 _Color;
            
            vertShader vert ( VertInput v )
            {
                vertShader o;
                o.pos = UnityObjectToClipPos (v.vertex);
                o.glo = _Color* pow ( max ( 0, dot ( v.normal, normalize ( ObjSpaceViewDir ( v.vertex ) ) ) ), 2 );
                o.glo *= 1 + sin ( _SwellSpd * _Time.z ) * _SwellFlu;
                return o;
            }
                        
            fixed4 frag ( vertShader i ) : SV_Target {
            
                fixed4 outcolor = i.glo;
                return outcolor;
            }
            
        ENDCG
        }
    }
    //FallBack "Diffuse"
}