ShadowProjectionCommon.bslinc 671 B

1234567891011121314151617181920212223242526272829303132333435363738394041
  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. };
  11. struct VertexInput
  12. {
  13. float3 position : POSITION;
  14. };
  15. #if NEEDS_TRANSFORM
  16. [internal]
  17. cbuffer VertParams
  18. {
  19. float4 gPositionAndScale;
  20. };
  21. #endif
  22. VStoFS vsmain(VertexInput input)
  23. {
  24. VStoFS output;
  25. #if NEEDS_TRANSFORM
  26. float3 worldPos = input.position.xyz * gPositionAndScale.w + gPositionAndScale.xyz;
  27. output.position = mul(gMatViewProj, float4(worldPos, 1));
  28. #else
  29. output.position = float4(input.position, 1);
  30. #endif
  31. return output;
  32. }
  33. };
  34. };