Advertisement
Ember

eshaeder

May 19th, 2014
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.71 KB | None | 0 0
  1. //-----------------------------------------------------------------------------
  2. // Filename: Shader.hlsl
  3. //-----------------------------------------------------------------------------
  4. //
  5. //-----------------------------------------------------------------------------
  6.  
  7. //--------------------------------------------------------------------------------------
  8. // Constant Buffer Variables
  9. //--------------------------------------------------------------------------------------
  10.  
  11. cbuffer WindowBuffer // Rarely, if ever, updates
  12. {
  13.     // ViewProjectionMatrix will go here
  14. };
  15.  
  16. cbuffer NodeBuffer // Buffer from attached scene node; shared with other instances
  17. {
  18.     //NodeMatrix will go here
  19. };
  20.  
  21. cbuffer InstanceBuffer // Buffer from instance; one per instance (might make into vertex buffer)
  22. {
  23.     // InstanceMatrix will go here
  24. };
  25.  
  26. cbuffer SomethingSomething
  27. {
  28.     // Something will go here
  29. };
  30.  
  31. cbuffer cbChangesEveryFrame : register(cb0)
  32. {
  33.     matrix WorldViewProjectionMatrix;
  34.     matrix WorldMatrix;
  35.     float4 vMeshColor;
  36. };
  37.  
  38. //--------------------------------------------------------------------------------------
  39. // Vertex Shader
  40. //--------------------------------------------------------------------------------------
  41. void ColourVS(
  42.     float1x3 iPosition : POSITION,
  43.     float1x3 iNormal   : NORMAL,
  44.     float1x2 iUv       : TEXCOORD,
  45.     // output
  46.     out float3 oNormal   : NORMAL,
  47.     out float2 oUv       : TEXCOORD0,
  48.     out float4 oColor    : TEXCOORD1,
  49.     out float4 oPos      : TEXCOORD2,
  50.     out float4 oPosition : SV_POSITION)
  51. {
  52.     oPosition = mul(float4(iPosition, 1.0f), WorldViewProjectionMatrix);
  53.     oUv = iUv;
  54.     oColor = vMeshColor;
  55.     oNormal = mul(iNormal, WorldMatrix);
  56.     oPos = oPosition;
  57.  
  58.     return;
  59. }
  60.  
  61. //--------------------------------------------------------------------------------------
  62. // Textures and Samplers
  63. //--------------------------------------------------------------------------------------
  64. Texture2D texDiffuse : register(t0);
  65. SamplerState samplerLinear : register(s0);
  66.  
  67. //--------------------------------------------------------------------------------------
  68. // Pixel Shader
  69. //--------------------------------------------------------------------------------------
  70. float4 ColourPS(
  71.     float3 normal   : NORMAL,
  72.     float2 uv       : TEXCOORD0,
  73.     float4 color    : TEXCOORD1,
  74.     float4 position : TEXCOORD2) : SV_Target
  75. {
  76.     float depth = pow(position.z / position.w, 1000);
  77.     float4 textureColor = texDiffuse.Sample(samplerLinear, uv);
  78.     float diffuseFactor = dot(float3(1, 0, 0), normal);
  79.     return float4(normal, 1.0f);
  80.     //return float4(textureColor.xyz * diffuseFactor, 1.0f);
  81.     //return float4(depth, depth, depth, 1.0f);
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement