Files
Outline-Toolkit/Runtime/Shaders/OutlineColor.shader
2025-07-20 21:01:09 +08:00

78 lines
1.3 KiB
Plaintext

// Copyright (C) 2019-2021 Alexander Bogarsukov. All rights reserved.
// See the LICENSE.md file in the project root for more information.
// Renders everything with while color.
// Modified version of 'Custom/DrawSimple' shader taken from https://willweissman.wordpress.com/tutorials/shaders/unity-shaderlab-object-outlines/.
Shader "Hidden/UnityFx/OutlineColor"
{
HLSLINCLUDE
#include "UnityCG.cginc"
UNITY_DECLARE_TEX2D(_MainTex);
float _Cutoff;
v2f_img vert(appdata_img v)
{
v2f_img o;
UNITY_SETUP_INSTANCE_ID(v);
UNITY_INITIALIZE_OUTPUT(v2f_img, o);
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
o.pos = UnityObjectToClipPos(v.vertex);
o.uv = v.texcoord;
return o;
}
half4 frag() : SV_Target
{
return 1;
}
half4 frag_clip(v2f_img i) : SV_Target
{
UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(i);
half4 c = UNITY_SAMPLE_TEX2D(_MainTex, i.uv);
clip(c.a - _Cutoff);
return 1;
}
ENDHLSL
SubShader
{
Cull Off
ZWrite Off
ZTest LEqual
Lighting Off
Pass
{
Name "Opaque"
HLSLPROGRAM
#pragma multi_compile_instancing
#pragma vertex vert
#pragma fragment frag
ENDHLSL
}
Pass
{
Name "Transparent"
HLSLPROGRAM
#pragma multi_compile_instancing
#pragma vertex vert
#pragma fragment frag_clip
ENDHLSL
}
}
}