DefaultEffect.fx 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. #include "Macros.fxh"
  2. #include "Structures.fxh"
  3. DECLARE_TEXTURE(Texture, 0);
  4. BEGIN_CONSTANTS
  5. float4 DiffuseColor = float4(1, 1, 1, 1);
  6. MATRIX_CONSTANTS
  7. float4x4 WorldViewProjection _vs(c0) _cb(c0);
  8. END_CONSTANTS
  9. VertexShaderOutputPosition VertexShaderFunctionPosition(VertexShaderInputPosition input)
  10. {
  11. VertexShaderOutputPosition output;
  12. output.Position = mul(input.Position, WorldViewProjection);
  13. return output;
  14. }
  15. float4 PixelShaderFunctionPosition(VertexShaderOutputPosition input) : SV_Target0
  16. {
  17. return DiffuseColor;
  18. }
  19. VertexShaderOutputPositionTexture VertexShaderFunctionPositionTexture(VertexShaderInputPositionTexture input)
  20. {
  21. VertexShaderOutputPositionTexture output;
  22. output.Position = mul(input.Position, WorldViewProjection);
  23. output.TextureCoordinate = input.TextureCoordinate;
  24. return output;
  25. }
  26. float4 PixelShaderFunctionPositionTexture(VertexShaderOutputPositionTexture input) : SV_Target0
  27. {
  28. return SAMPLE_TEXTURE(Texture, input.TextureCoordinate) * DiffuseColor;
  29. }
  30. VertexShaderOutputPositionColor VertexShaderFunctionPositionColor(VertexShaderInputPositionColor input)
  31. {
  32. VertexShaderOutputPositionColor output;
  33. output.Position = mul(input.Position, WorldViewProjection);
  34. output.Color = input.Color;
  35. return output;
  36. }
  37. float4 PixelShaderFunctionPositionColor(VertexShaderOutputPositionColor input) : SV_Target0
  38. {
  39. return input.Color * DiffuseColor;
  40. }
  41. VertexShaderOutputPositionColorTexture VertexShaderFunctionPositionColorTexture(VertexShaderInputPositionColorTexture input)
  42. {
  43. VertexShaderOutputPositionColorTexture output;
  44. output.Position = mul(input.Position, WorldViewProjection);
  45. output.Color = input.Color;
  46. output.TextureCoordinate = input.TextureCoordinate;
  47. return output;
  48. }
  49. float4 PixelShaderFunctionPositionColorTexture(VertexShaderOutputPositionColorTexture input) : SV_Target0
  50. {
  51. float4 textureColor = SAMPLE_TEXTURE(Texture, input.TextureCoordinate);
  52. return textureColor * input.Color * DiffuseColor;
  53. }
  54. TECHNIQUE(Position, VertexShaderFunctionPosition, PixelShaderFunctionPosition);
  55. TECHNIQUE(PositionTexture, VertexShaderFunctionPositionTexture, PixelShaderFunctionPositionTexture);
  56. TECHNIQUE(PositionColor, VertexShaderFunctionPositionColor, PixelShaderFunctionPositionColor);
  57. TECHNIQUE(PositionColorTexture, VertexShaderFunctionPositionColorTexture, PixelShaderFunctionPositionColorTexture);