Permalink
Cannot retrieve contributors at this time
Name already in use
A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?
DMD2542-Project02-AdamSkawinski/RPG/Assets/Materials/TextMesh Pro/Resources/Shaders/TMP_SDF-Surface-Mobile.shader
Go to fileThis commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
137 lines (110 sloc)
3.4 KB
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Simplified version of the SDF Surface shader : | |
// - No support for Bevel, Bump or envmap | |
// - Diffuse only lighting | |
// - Fully supports only 1 directional light. Other lights can affect it, but it will be per-vertex/SH. | |
Shader "TextMeshPro/Mobile/Distance Field (Surface)" { | |
Properties { | |
_FaceTex ("Fill Texture", 2D) = "white" {} | |
_FaceColor ("Fill Color", Color) = (1,1,1,1) | |
_FaceDilate ("Face Dilate", Range(-1,1)) = 0 | |
_OutlineColor ("Outline Color", Color) = (0,0,0,1) | |
_OutlineTex ("Outline Texture", 2D) = "white" {} | |
_OutlineWidth ("Outline Thickness", Range(0, 1)) = 0 | |
_OutlineSoftness ("Outline Softness", Range(0,1)) = 0 | |
_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 | |
//_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 Lambert alpha:blend vertex:VertShader noforwardadd nolightmap nodirlightmap | |
#pragma target 3.0 | |
#pragma shader_feature __ GLOW_ON | |
#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; | |
}; | |
#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 = 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" | |
} |