hwj35
2024-12-23 7d9df36c4493ce081a313e517d0f875326439094
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
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
// Upgrade NOTE: replaced '_Object2World' with 'unity_ObjectToWorld'
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
 
// Upgrade NOTE: replaced 'defined SHADOWS_OFF' with 'defined (SHADOWS_OFF)'
 
Shader "Scene/01 - Opaque, Shadows, NO LIGHTMAP"
{
    Properties
    {
        _MainTex ("Texture", 2D) = "white" { }
    }
    
    Subshader
    {
        
        Tags { "Queue" = "Geometry" "RenderType" = "Opaque" "IgnoreProjector" = "True" "LightMode" = "ForwardBase" }
        
        Pass
        {
            Cull Back
            Fog
            {
                Mode Off
            }
            
            CGPROGRAM
            
            #pragma target 3.0
            #pragma vertex vert
            #pragma fragment frag
            
            #pragma multi_compile_fwdbase
            
            #pragma fragmentoption ARB_precision_hint_fastest
            #pragma exclude_renderers flash
            
            #include "UnityCG.cginc"
            #include "SnxxzCG.cginc"
            
            #if !defined(SHADOWS_OFF)
                #include "AutoLight.cginc"
            #endif
            
            struct VertInput
            {
                half4 vertex: POSITION;
                half2 texcoord0: TEXCOORD0;
            };
            
            struct Varys
            {
                half4 pos: SV_POSITION;
                half2 uv1: TEXCOORD0;
                #if !defined(SHADOWS_OFF)
                    SHADOW_COORDS(3)
                #endif
            };
            
            uniform sampler2D _MainTex;
            uniform float4 _MainTex_ST;
            
            Varys vert(VertInput v)
            {
                Varys o;
                half3 worldVertex = mul(unity_ObjectToWorld, v.vertex).xyz;
                
                // pos and uv tex coord
                o.pos = UnityObjectToClipPos(v.vertex);
                o.uv1 = TRANSFORM_TEX(v.texcoord0, _MainTex);
                
                #if !defined(SHADOWS_OFF)
                    TRANSFER_SHADOW(o);
                #endif
                
                return o;
            }
            
            fixed4 frag(Varys i): SV_Target
            {
                
                fixed3 outcolor = tex2D(_MainTex, i.uv1);
                
                #if !defined(SHADOWS_OFF)
                    fixed3 lightmap = _Gbl_Amb + _Gbl_Lgt * SHADOW_ATTENUATION(i);
                    outcolor *= lightmap;
                #endif
                
                return fixed4(outcolor, 1);
            }
            
            ENDCG
            
        }
    }
    FallBack "Diffuse"
}