DefaultShader.h 9.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104
  1. #pragma once
  2. #include "Text.h"
  3. namespace Framework
  4. {
  5. // Gibt einen simplen Vertex Shader zurück
  6. // ret: Eine Reference auf ein Text objekt, in dem der Shader gespeichert werden soll
  7. void getVertexShader( Text &ret )
  8. {
  9. ret = "//////////////////////////////////////////////////////////////////////////////// \n\
  10. // Filename: texture.vs \n\
  11. //////////////////////////////////////////////////////////////////////////////// \n\
  12. \n\
  13. \n\
  14. ///////////// \n\
  15. // GLOBALS // \n\
  16. ///////////// \n\
  17. cbuffer MatrixBuffer \n\
  18. { \n\
  19. matrix worldMatrix; \n\
  20. matrix viewMatrix; \n\
  21. matrix projectionMatrix; \n\
  22. }; \n\
  23. \n\
  24. \n\
  25. ////////////// \n\
  26. // TYPEDEFS // \n\
  27. ////////////// \n\
  28. struct VertexInputType \n\
  29. { \n\
  30. float4 position : POSITION; \n\
  31. float2 tex : TEXCOORD0; \n\
  32. }; \n\
  33. \n\
  34. struct PixelInputType \n\
  35. { \n\
  36. float4 position : SV_POSITION; \n\
  37. float2 tex : TEXCOORD0; \n\
  38. }; \n\
  39. \n\
  40. \n\
  41. //////////////////////////////////////////////////////////////////////////////// \n\
  42. // Vertex Shader \n\
  43. //////////////////////////////////////////////////////////////////////////////// \n\
  44. PixelInputType TextureVertexShader( VertexInputType input ) \n\
  45. { \n\
  46. //return input; \n\
  47. PixelInputType output; \n\
  48. \n\
  49. // Change the position vector to be 4 units for proper matrix calculations. \n\
  50. input.position.w = 1.0f; \n\
  51. \n\
  52. // Store the texture coordinates for the pixel shader. \n\
  53. output.tex = input.tex; \n\
  54. \n\
  55. // Calculate the position of the vertex against the world, view, and projection matrices. \n\
  56. output.position = input.position; \n\
  57. output.position = mul( input.position, worldMatrix ); \n\
  58. output.position = mul( output.position, viewMatrix ); \n\
  59. output.position = mul( output.position, projectionMatrix ); \n\
  60. \n\
  61. return output; \n\
  62. }";
  63. }
  64. // Gibt einen simplen Pixel Shader zurück
  65. // ret: Eine Reference auf ein Text objekt, in dem der Shader gespeichert werden soll
  66. void getPixelShader( Text &ret )
  67. {
  68. ret = "//////////////////////////////////////////////////////////////////////////////// \n\
  69. // Filename: texture.ps \n\
  70. //////////////////////////////////////////////////////////////////////////////// \n\
  71. \n\
  72. \n\
  73. ///////////// \n\
  74. // GLOBALS // \n\
  75. ///////////// \n\
  76. Texture2D shaderTexture; \n\
  77. SamplerState SampleType; \n\
  78. \n\
  79. \n\
  80. ////////////// \n\
  81. // TYPEDEFS // \n\
  82. ////////////// \n\
  83. struct PixelInputType \n\
  84. { \n\
  85. float4 position : SV_POSITION; \n\
  86. float2 tex : TEXCOORD0; \n\
  87. }; \n\
  88. \n\
  89. \n\
  90. //////////////////////////////////////////////////////////////////////////////// \n\
  91. // Pixel Shader \n\
  92. //////////////////////////////////////////////////////////////////////////////// \n\
  93. float4 TexturePixelShader( PixelInputType input ) : SV_TARGET \n\
  94. { \n\
  95. //return float4( 0.5, 0.5, 0.5, 0.5 ); \n\
  96. // Sample the pixel color from the texture using the sampler at this texture coordinate location. \n\
  97. float4 textureColor = shaderTexture.Sample( SampleType, input.tex ); \n\
  98. return textureColor; \n\
  99. }";
  100. }
  101. }