Advertisement
Guest User

Untitled

a guest
Jul 21st, 2019
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.28 KB | None | 0 0
  1. sampler2D samp0 : register(s0);
  2.  
  3. const float3 const0 : register(c0);
  4. const float4 const4 : register(c4);
  5.  
  6. struct PSInput
  7. {
  8.     float4 v0 : COLOR0; // vertex color + vertex alpha
  9.     float4 v1 : COLOR1; // blend color (used in xfc)
  10.     float2 t0 : TEXCOORD0; // texcoord
  11.     float4 t1 : TEXCOORD1; // fog being passed from VS to PS
  12. };
  13.  
  14. float4 xfc(in float4 s0, in float3 s1, in float4 s2, in float4 s3, in float s6)
  15. {
  16.     const float3 outRGB = (s0 * s1 + (1.0f - s0) * s2 + s3).rgb;
  17.     const float outA = s6;
  18.     return float4(outRGB, outA);
  19. }
  20.  
  21. float4 main(PSInput input) : COLOR0
  22. {
  23.     const float4 texColor = tex2D(samp0, input.t0); // tex t0
  24.     const float3 multipliedColor = texColor.rgb * const0; // mul t0.rgb, t0.rgb, c0.rgb
  25.     const float3 vertexCombinedColor = (input.v0.rgb * multipliedColor) * 4.0f; // mul_x4 r0.rgb, v0.rgb, t0.rgb
  26.     const float multipliedAlpha = (input.v0.a * texColor.a) * 2.0f; // mul_x2 r0.a, v0.a, t0.a
  27.     const float4 combinedResult = float4(vertexCombinedColor, multipliedAlpha);
  28.     const float4 fog = input.t1;
  29.     return xfc( (1 - fog.a) * const4, // prod = s4 * s5
  30.                fog.rgb, // fog.rgb
  31.                combinedResult + input.v1, // sum = r0 + v1
  32.                0.0f, // zero
  33.                multipliedAlpha); // r0.a
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement