PrepassLight.vert 834 B

123456789101112131415161718192021222324252627282930313233
  1. #include "Uniforms.vert"
  2. #include "Transform.vert"
  3. #include "ScreenPos.vert"
  4. #ifdef DIRLIGHT
  5. varying vec2 vScreenPos;
  6. #else
  7. varying vec4 vScreenPos;
  8. #endif
  9. varying vec3 vFarRay;
  10. #ifdef ORTHO
  11. varying vec3 vNearRay;
  12. #endif
  13. void main()
  14. {
  15. mat4 modelMatrix = iModelMatrix;
  16. vec3 worldPos = GetWorldPos(modelMatrix);
  17. gl_Position = GetClipPos(worldPos);
  18. #ifdef DIRLIGHT
  19. vScreenPos = GetScreenPosPreDiv(gl_Position);
  20. vFarRay = GetFarRay(gl_Position);
  21. #ifdef ORTHO
  22. vNearRay = GetNearRay(gl_Position);
  23. #endif
  24. #else
  25. vScreenPos = GetScreenPos(gl_Position);
  26. vFarRay = GetFarRay(gl_Position) * gl_Position.w;
  27. #ifdef ORTHO
  28. vNearRay = GetNearRay(gl_Position) * gl_Position.w;
  29. #endif
  30. #endif
  31. }