| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091 |
- #ifndef SPRITE_UNLIT_INCLUDED
- #define SPRITE_UNLIT_INCLUDED
- #include "ShaderShared.cginc"
- #if defined(_ALPHAPREMULTIPLY_ON)
- #undef _STRAIGHT_ALPHA_INPUT
- #else
- #define _STRAIGHT_ALPHA_INPUT
- #endif
- #include "../../CGIncludes/Spine-Skeleton-Tint-Common.cginc"
- ////////////////////////////////////////
- // Vertex structs
- //
- struct VertexInput
- {
- float4 vertex : POSITION;
- float4 texcoord : TEXCOORD0;
- fixed4 color : COLOR;
- #if defined(_TINT_BLACK_ON)
- float2 tintBlackRG : TEXCOORD1;
- float2 tintBlackB : TEXCOORD2;
- #endif
- UNITY_VERTEX_INPUT_INSTANCE_ID
- };
- struct VertexOutput
- {
- float4 pos : SV_POSITION;
- float2 texcoord : TEXCOORD0;
- fixed4 color : COLOR;
- #if defined(_FOG)
- UNITY_FOG_COORDS(1)
- #endif // _FOG
- #if defined(_TINT_BLACK_ON)
- float3 darkColor : TEXCOORD2;
- #endif
- UNITY_VERTEX_OUTPUT_STEREO
- };
- ////////////////////////////////////////
- // Vertex program
- //
- VertexOutput vert(VertexInput input)
- {
- VertexOutput output;
- UNITY_SETUP_INSTANCE_ID(input);
- UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
- output.pos = calculateLocalPos(input.vertex);
- output.texcoord = calculateTextureCoord(input.texcoord);
- output.color = calculateVertexColor(input.color);
- #if defined(_TINT_BLACK_ON)
- output.darkColor = GammaToTargetSpace(half3(input.tintBlackRG.r, input.tintBlackRG.g, input.tintBlackB.r))
- + (_Black.rgb * input.color.a);
- #endif
- #if defined(_FOG)
- UNITY_TRANSFER_FOG(output,output.pos);
- #endif // _FOG
- return output;
- }
- ////////////////////////////////////////
- // Fragment program
- //
- fixed4 frag(VertexOutput input) : SV_Target
- {
- fixed4 texureColor = calculateTexturePixel(input.texcoord.xy);
- RETURN_UNLIT_IF_ADDITIVE_SLOT_TINT(texureColor, input.color, input.darkColor, _Color.a, _Black.a) // shall be called before ALPHA_CLIP
- ALPHA_CLIP(texureColor, input.color)
- #if defined(_TINT_BLACK_ON)
- texureColor = fragTintedColor(texureColor, input.darkColor, input.color, _Color.a, _Black.a);
- #endif
- fixed4 pixel = calculatePixel(texureColor, input.color);
- COLORISE(pixel)
- APPLY_FOG(pixel, input)
- return pixel;
- }
- #endif // SPRITE_UNLIT_INCLUDED
|