striped_line.effect 755 B

1234567891011121314151617181920212223242526272829303132333435363738
  1. uniform float4x4 ViewProj;
  2. uniform float4 color = {1.0, 1.0, 1.0, 1.0};
  3. uniform float2 size;
  4. uniform float2 count_inv;
  5. struct VertInOut {
  6. float4 pos : POSITION;
  7. float2 uv : TEXCOORD0;
  8. };
  9. VertInOut VSStripedLine(VertInOut vert_in)
  10. {
  11. VertInOut vert_out;
  12. vert_out.pos = mul(float4(vert_in.pos.xyz, 1.0), ViewProj);
  13. vert_out.uv = vert_in.uv;
  14. return vert_out;
  15. }
  16. float4 PSStripedLine(VertInOut vert_in) : TARGET
  17. {
  18. float2 multiplier = floor(fmod(vert_in.uv * size * count_inv, float2(2.0, 2.0)));
  19. if (size.x == 0.0) {
  20. multiplier.x = 1.0;
  21. } else {
  22. multiplier.y = 1.0;
  23. }
  24. return color * multiplier.xxxx * multiplier.yyyy;
  25. }
  26. technique StripedLine
  27. {
  28. pass
  29. {
  30. vertex_shader = VSStripedLine(vert_in);
  31. pixel_shader = PSStripedLine(vert_in);
  32. }
  33. }