123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207 |
- Shader "Universal Render Pipeline/2D/Sprite-Unlit-Default"
- {
- Properties
- {
- _MainTex ("Sprite Texture", 2D) = "white" {}
-
- // Legacy properties. They're here so that materials using this shader can gracefully fallback to the legacy sprite shader.
- [HideInInspector] _Color ("Tint", Color) = (1,1,1,1)
- [HideInInspector] PixelSnap ("Pixel snap", Float) = 0
- [HideInInspector] _RendererColor ("RendererColor", Color) = (1,1,1,1)
- [HideInInspector] _AlphaTex ("External Alpha", 2D) = "white" {}
- [HideInInspector] _EnableExternalAlpha ("Enable External Alpha", Float) = 0
- }
-
- SubShader
- {
- Tags {"Queue" = "Transparent" "RenderType" = "Transparent" "RenderPipeline" = "UniversalPipeline" }
-
- Blend SrcAlpha OneMinusSrcAlpha
- Cull Off
- ZWrite Off
-
- Pass
- {
- Tags { "LightMode" = "Universal2D" }
-
- HLSLPROGRAM
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
- #if defined(DEBUG_DISPLAY)
- #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/InputData2D.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/SurfaceData2D.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging2D.hlsl"
- #endif
-
- #pragma vertex UnlitVertex
- #pragma fragment UnlitFragment
-
- #pragma multi_compile _ DEBUG_DISPLAY SKINNED_SPRITE
-
- struct Attributes
- {
- float3 positionOS : POSITION;
- float4 color : COLOR;
- float2 uv : TEXCOORD0;
- UNITY_SKINNED_VERTEX_INPUTS
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
-
- struct Varyings
- {
- float4 positionCS : SV_POSITION;
- half4 color : COLOR;
- float2 uv : TEXCOORD0;
- #if defined(DEBUG_DISPLAY)
- float3 positionWS : TEXCOORD2;
- #endif
- UNITY_VERTEX_OUTPUT_STEREO
- };
-
- TEXTURE2D(_MainTex);
- SAMPLER(sampler_MainTex);
- float4 _MainTex_TexelSize;
- UNITY_TEXTURE_STREAMING_DEBUG_VARS_FOR_TEX(_MainTex);
-
- // NOTE: Do not ifdef the properties here as SRP batcher can not handle different layouts.
- CBUFFER_START(UnityPerMaterial)
- half4 _MainTex_ST;
- half4 _Color;
- CBUFFER_END
-
- Varyings UnlitVertex(Attributes v)
- {
- Varyings o = (Varyings)0;
- UNITY_SETUP_INSTANCE_ID(v);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
- UNITY_SKINNED_VERTEX_COMPUTE(v);
-
- v.positionOS = UnityFlipSprite(v.positionOS, unity_SpriteProps.xy);
- o.positionCS = TransformObjectToHClip(v.positionOS);
- #if defined(DEBUG_DISPLAY)
- o.positionWS = TransformObjectToWorld(v.positionOS);
- #endif
- o.uv = TRANSFORM_TEX(v.uv, _MainTex);
- o.color = v.color * _Color * unity_SpriteColor;
- return o;
- }
-
- half4 UnlitFragment(Varyings i) : SV_Target
- {
- float4 mainTex = i.color * SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv);
-
- #if defined(DEBUG_DISPLAY)
- SurfaceData2D surfaceData;
- InputData2D inputData;
- half4 debugColor = 0;
-
- InitializeSurfaceData(mainTex.rgb, mainTex.a, surfaceData);
- InitializeInputData(i.uv, inputData);
- SETUP_DEBUG_TEXTURE_DATA_2D(inputData, i.positionWS, i.positionCS, _MainTex);
-
- if(CanDebugOverrideOutputColor(surfaceData, inputData, debugColor))
- {
- return debugColor;
- }
- #endif
-
- return mainTex;
- }
- ENDHLSL
- }
-
- Pass
- {
- Tags { "LightMode" = "UniversalForward" "Queue"="Transparent" "RenderType"="Transparent"}
-
- HLSLPROGRAM
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/Core2D.hlsl"
- #include "Packages/com.unity.render-pipelines.core/ShaderLibrary/DebugMipmapStreamingMacros.hlsl"
- #if defined(DEBUG_DISPLAY)
- #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/InputData2D.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/Shaders/2D/Include/SurfaceData2D.hlsl"
- #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Debug/Debugging2D.hlsl"
- #endif
-
- #pragma vertex UnlitVertex
- #pragma fragment UnlitFragment
-
- #pragma multi_compile_fragment _ DEBUG_DISPLAY
-
- struct Attributes
- {
- float3 positionOS : POSITION;
- float4 color : COLOR;
- float2 uv : TEXCOORD0;
- UNITY_SKINNED_VERTEX_INPUTS
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
-
- struct Varyings
- {
- float4 positionCS : SV_POSITION;
- float4 color : COLOR;
- float2 uv : TEXCOORD0;
- #if defined(DEBUG_DISPLAY)
- float3 positionWS : TEXCOORD2;
- #endif
- UNITY_VERTEX_OUTPUT_STEREO
- };
-
- TEXTURE2D(_MainTex);
- SAMPLER(sampler_MainTex);
- float4 _MainTex_TexelSize;
- UNITY_TEXTURE_STREAMING_DEBUG_VARS_FOR_TEX(_MainTex);
-
- // NOTE: Do not ifdef the properties here as SRP batcher can not handle different layouts.
- CBUFFER_START( UnityPerMaterial )
- half4 _MainTex_ST;
- half4 _Color;
- CBUFFER_END
-
- Varyings UnlitVertex(Attributes attributes)
- {
- Varyings o = (Varyings)0;
- UNITY_SETUP_INSTANCE_ID(attributes);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
- UNITY_SKINNED_VERTEX_COMPUTE(v);
-
- attributes.positionOS = UnityFlipSprite(attributes.positionOS, unity_SpriteProps.xy);
- o.positionCS = TransformObjectToHClip(attributes.positionOS);
- #if defined(DEBUG_DISPLAY)
- o.positionWS = TransformObjectToWorld(attributes.positionOS);
- #endif
- o.uv = TRANSFORM_TEX(attributes.uv, _MainTex);
- o.color = attributes.color * _Color * unity_SpriteColor;
- return o;
- }
-
- float4 UnlitFragment(Varyings i) : SV_Target
- {
- float4 mainTex = i.color * SAMPLE_TEXTURE2D(_MainTex, sampler_MainTex, i.uv);
-
- #if defined(DEBUG_DISPLAY)
- SurfaceData2D surfaceData;
- InputData2D inputData;
- half4 debugColor = 0;
-
- InitializeSurfaceData(mainTex.rgb, mainTex.a, surfaceData);
- InitializeInputData(i.uv, inputData);
- SETUP_DEBUG_TEXTURE_DATA_2D(inputData, i.positionWS, i.positionCS, _MainTex);
-
- if(CanDebugOverrideOutputColor(surfaceData, inputData, debugColor))
- {
- return debugColor;
- }
- #endif
-
- return mainTex;
- }
- ENDHLSL
- }
- }
-
- Fallback "Sprites/Default"
- }
|