miepzerino
2025-03-30 884103d805270bd776b7a485d9431401c0c05594
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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
Shader "TextMeshPro/Distance Field (Surface)" {
 
Properties {
    _FaceTex            ("Fill Texture", 2D) = "white" {}
    _FaceUVSpeedX        ("Face UV Speed X", Range(-5, 5)) = 0.0
    _FaceUVSpeedY        ("Face UV Speed Y", Range(-5, 5)) = 0.0
    [HDR]_FaceColor        ("Fill Color", Color) = (1,1,1,1)
    _FaceDilate            ("Face Dilate", Range(-1,1)) = 0
 
    [HDR]_OutlineColor    ("Outline Color", Color) = (0,0,0,1)
    _OutlineTex            ("Outline Texture", 2D) = "white" {}
    _OutlineUVSpeedX    ("Outline UV Speed X", Range(-5, 5)) = 0.0
    _OutlineUVSpeedY    ("Outline UV Speed Y", Range(-5, 5)) = 0.0
    _OutlineWidth        ("Outline Thickness", Range(0, 1)) = 0
    _OutlineSoftness    ("Outline Softness", Range(0,1)) = 0
 
    _Bevel                ("Bevel", Range(0,1)) = 0.5
    _BevelOffset        ("Bevel Offset", Range(-0.5,0.5)) = 0
    _BevelWidth            ("Bevel Width", Range(-.5,0.5)) = 0
    _BevelClamp            ("Bevel Clamp", Range(0,1)) = 0
    _BevelRoundness        ("Bevel Roundness", Range(0,1)) = 0
 
    _BumpMap             ("Normalmap", 2D) = "bump" {}
    _BumpOutline        ("Bump Outline", Range(0,1)) = 0.5
    _BumpFace            ("Bump Face", Range(0,1)) = 0.5
 
    _ReflectFaceColor        ("Face Color", Color) = (0,0,0,1)
    _ReflectOutlineColor    ("Outline Color", Color) = (0,0,0,1)
    _Cube                     ("Reflection Cubemap", Cube) = "black" { /* TexGen CubeReflect */ }
    _EnvMatrixRotation      ("Texture Rotation", vector) = (0, 0, 0, 0)
    [HDR]_SpecColor            ("Specular Color", Color) = (0,0,0,1)
 
    _FaceShininess        ("Face Shininess", Range(0,1)) = 0
    _OutlineShininess    ("Outline Shininess", Range(0,1)) = 0
 
    [HDR]_GlowColor        ("Color", Color) = (0, 1, 0, 0.5)
    _GlowOffset            ("Offset", Range(-1,1)) = 0
    _GlowInner            ("Inner", Range(0,1)) = 0.05
    _GlowOuter            ("Outer", Range(0,1)) = 0.05
    _GlowPower            ("Falloff", Range(1, 0)) = 0.75
 
    _WeightNormal        ("Weight Normal", float) = 0
    _WeightBold            ("Weight Bold", float) = 0.5
 
    // Should not be directly exposed to the user
    _ShaderFlags        ("Flags", float) = 0
    _ScaleRatioA        ("Scale RatioA", float) = 1
    _ScaleRatioB        ("Scale RatioB", float) = 1
    _ScaleRatioC        ("Scale RatioC", float) = 1
 
    _MainTex            ("Font Atlas", 2D) = "white" {}
    _TextureWidth        ("Texture Width", float) = 512
    _TextureHeight        ("Texture Height", float) = 512
    _GradientScale        ("Gradient Scale", float) = 5.0
    _ScaleX                ("Scale X", float) = 1.0
    _ScaleY                ("Scale Y", float) = 1.0
    _PerspectiveFilter    ("Perspective Correction", Range(0, 1)) = 0.875
    _Sharpness            ("Sharpness", Range(-1,1)) = 0
 
    _VertexOffsetX        ("Vertex OffsetX", float) = 0
    _VertexOffsetY        ("Vertex OffsetY", float) = 0
 
    _CullMode            ("Cull Mode", Float) = 0
    //_MaskCoord        ("Mask Coords", vector) = (0,0,0,0)
    //_MaskSoftness        ("Mask Softness", float) = 0
}
 
SubShader {
 
    Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
 
    LOD 300
    Cull [_CullMode]
 
    CGPROGRAM
    #pragma surface PixShader BlinnPhong alpha:blend vertex:VertShader nolightmap nodirlightmap
    #pragma target 3.0
    #pragma shader_feature __ GLOW_ON
    #pragma glsl
 
    #include "TMPro_Properties.cginc"
    #include "TMPro.cginc"
 
    half _FaceShininess;
    half _OutlineShininess;
 
    struct Input
    {
        fixed4    color            : COLOR;
        float2    uv_MainTex;
        float2    uv2_FaceTex;
        float2  uv2_OutlineTex;
        float2    param;                        // Weight, Scale
        float3    viewDirEnv;
    };
 
 
    #define BEVEL_ON 1
    #include "TMPro_Surface.cginc"
 
    ENDCG
 
    // Pass to render object as a shadow caster
    Pass
    {
        Name "Caster"
        Tags { "LightMode" = "ShadowCaster" }
        Offset 1, 1
 
        Fog {Mode Off}
        ZWrite On
        ZTest LEqual
        Cull Off
 
        CGPROGRAM
        #pragma vertex vert
        #pragma fragment frag
        #pragma multi_compile_shadowcaster
        #include "UnityCG.cginc"
 
        struct v2f {
            V2F_SHADOW_CASTER;
            float2    uv            : TEXCOORD1;
            float2    uv2            : TEXCOORD3;
            float    alphaClip    : TEXCOORD2;
        };
 
        uniform float4 _MainTex_ST;
        uniform float4 _OutlineTex_ST;
        float _OutlineWidth;
        float _FaceDilate;
        float _ScaleRatioA;
 
        v2f vert( appdata_base v )
        {
            v2f o;
            TRANSFER_SHADOW_CASTER(o)
            o.uv = TRANSFORM_TEX(v.texcoord, _MainTex);
            o.uv2 = TRANSFORM_TEX(v.texcoord, _OutlineTex);
            o.alphaClip = (1.0 - _OutlineWidth * _ScaleRatioA - _FaceDilate * _ScaleRatioA) / 2;
            return o;
        }
 
        uniform sampler2D _MainTex;
 
        float4 frag(v2f i) : COLOR
        {
            fixed4 texcol = tex2D(_MainTex, i.uv).a;
            clip(texcol.a - i.alphaClip);
            SHADOW_CASTER_FRAGMENT(i)
        }
        ENDCG
    }
}
 
CustomEditor "TMPro.EditorUtilities.TMP_SDFShaderGUI"
}