multitexture_shader.hlsl 748 B

1234567891011121314151617181920212223242526272829
  1. cbuffer constants : register(b0) {
  2. float4x4 mvp;
  3. }
  4. struct vs_in {
  5. float3 position : position;
  6. float2 texcoord : texcoord;
  7. float4 color : color;
  8. };
  9. struct vs_out {
  10. float4 position : SV_POSITION;
  11. float2 texcoord : texcoord;
  12. float4 color : color;
  13. };
  14. Texture2D tex : register(t0);
  15. SamplerState smp : register(s0);
  16. Texture2D tex2 : register(t1);
  17. SamplerState smp2 : register(s1);
  18. vs_out vs_main(vs_in input) {
  19. vs_out output;
  20. output.position = mul(mvp, float4(input.position, 1.0f));
  21. output.texcoord = input.texcoord;
  22. output.color = input.color;
  23. return output;
  24. }
  25. float4 ps_main(vs_out input) : SV_TARGET {
  26. float4 c = tex.Sample(smp, input.texcoord);
  27. float4 c2 = tex2.Sample(smp2, input.texcoord);
  28. return c * input.color * c2;
  29. }