Spine-BlendModes-NormalPass.cginc 888 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. #ifndef BLENDMODES_NORMAL_PASS_INCLUDED
  2. #define BLENDMODES_NORMAL_PASS_INCLUDED
  3. #include "UnityCG.cginc"
  4. #include "../CGIncludes/Spine-Common.cginc"
  5. uniform sampler2D _MainTex;
  6. uniform float4 _Color;
  7. struct VertexInput {
  8. float4 vertex : POSITION;
  9. float2 uv : TEXCOORD0;
  10. float4 vertexColor : COLOR;
  11. };
  12. struct VertexOutput {
  13. float4 pos : SV_POSITION;
  14. float2 uv : TEXCOORD0;
  15. float4 vertexColor : COLOR;
  16. };
  17. VertexOutput vert(VertexInput v) {
  18. VertexOutput o;
  19. o.pos = UnityObjectToClipPos(v.vertex);
  20. o.uv = v.uv;
  21. o.vertexColor = PMAGammaToTargetSpace(v.vertexColor) * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor.
  22. return o;
  23. }
  24. float4 frag(VertexOutput i) : SV_Target{
  25. float4 texColor = tex2D(_MainTex, i.uv);
  26. #if defined(_STRAIGHT_ALPHA_INPUT)
  27. texColor.rgb *= texColor.a;
  28. #endif
  29. return (texColor * i.vertexColor);
  30. }
  31. #endif