ShadowProjectionCommon.bslinc 807 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. #include "$ENGINE$/PerCameraData.bslinc"
  2. mixin ShadowProjectionCommon
  3. {
  4. mixin PerCameraData;
  5. code
  6. {
  7. struct VStoFS
  8. {
  9. float4 position : SV_POSITION;
  10. float4 clipSpacePos : TEXCOORD0;
  11. };
  12. struct VertexInput
  13. {
  14. float3 position : POSITION;
  15. };
  16. #if NEEDS_TRANSFORM
  17. [internal]
  18. cbuffer VertParams
  19. {
  20. float4 gPositionAndScale;
  21. };
  22. #endif
  23. VStoFS vsmain(VertexInput input)
  24. {
  25. VStoFS output;
  26. #if NEEDS_TRANSFORM
  27. float3 worldPos = input.position.xyz * gPositionAndScale.w + gPositionAndScale.xyz;
  28. output.clipSpacePos = mul(gMatViewProj, float4(worldPos, 1));
  29. output.position = output.clipSpacePos;
  30. #else
  31. output.clipSpacePos = float4(input.position, 1);
  32. output.position = float4(input.position, 1);
  33. #endif
  34. return output;
  35. }
  36. };
  37. };