default.effect 958 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. uniform float4x4 ViewProj;
  2. uniform texture2d image;
  3. sampler_state def_sampler {
  4. Filter = Linear;
  5. AddressU = Clamp;
  6. AddressV = Clamp;
  7. };
  8. struct VertInOut {
  9. float4 pos : POSITION;
  10. float2 uv : TEXCOORD0;
  11. };
  12. VertInOut VSDefault(VertInOut vert_in)
  13. {
  14. VertInOut vert_out;
  15. vert_out.pos = mul(float4(vert_in.pos.xyz, 1.0), ViewProj);
  16. vert_out.uv = vert_in.uv;
  17. return vert_out;
  18. }
  19. float4 PSDrawBare(VertInOut vert_in) : TARGET
  20. {
  21. return image.Sample(def_sampler, vert_in.uv);
  22. }
  23. float4 PSDrawAlphaDivide(VertInOut vert_in) : TARGET
  24. {
  25. float4 rgba = image.Sample(def_sampler, vert_in.uv);
  26. float alpha = rgba.a;
  27. float multiplier = (alpha > 0.0) ? (1.0 / alpha) : 0.0;
  28. return float4(rgba.rgb * multiplier, alpha);
  29. }
  30. technique Draw
  31. {
  32. pass
  33. {
  34. vertex_shader = VSDefault(vert_in);
  35. pixel_shader = PSDrawBare(vert_in);
  36. }
  37. }
  38. technique DrawAlphaDivide
  39. {
  40. pass
  41. {
  42. vertex_shader = VSDefault(vert_in);
  43. pixel_shader = PSDrawAlphaDivide(vert_in);
  44. }
  45. }