RainbowH.fx 876 B

123456789101112131415161718192021222324252627282930313233343536
  1. sampler s0;
  2. float4 red = float4(1,0,0,1);
  3. float4 orange = float4(1,.5,0,1);
  4. float4 yellow = float4(1,1,0,1);
  5. float4 green = float4(0,1,0,1);
  6. float4 blue = float4(0,0,1,1);
  7. float4 indigo = float4(.3,0,.8,1);
  8. float4 violet = float4(1,.8,1,1);
  9. float step = 1.0/7;
  10. float4 PixelShaderFunction(float2 coords: TEXCOORD0) : COLOR0
  11. {
  12. float4 color = tex2D(s0, coords);
  13. if (!any(color)) return color;
  14. if (coords.x < (step * 1)) color = red;
  15. else if (coords.x < (step * 2)) color = orange;
  16. else if (coords.x < (step * 3)) color = yellow;
  17. else if (coords.x < (step * 4)) color = green;
  18. else if (coords.x < (step * 5)) color = blue;
  19. else if (coords.x < (step * 6)) color = indigo;
  20. else color = violet;
  21. return color;
  22. }
  23. technique Technique1
  24. {
  25. pass Pass1
  26. {
  27. PixelShader = compile ps_3_0 PixelShaderFunction();
  28. }
  29. }