ScreenPos.vert 1.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. vec4 GetScreenPos(vec4 clipPos)
  2. {
  3. return vec4(
  4. clipPos.x * cGBufferOffsets.z + cGBufferOffsets.x * clipPos.w,
  5. clipPos.y * cGBufferOffsets.w + cGBufferOffsets.y * clipPos.w,
  6. 0.0,
  7. clipPos.w);
  8. }
  9. vec2 GetScreenPosPreDiv(vec4 clipPos)
  10. {
  11. return vec2(
  12. clipPos.x / clipPos.w * cGBufferOffsets.z + cGBufferOffsets.x,
  13. clipPos.y / clipPos.w * cGBufferOffsets.w + cGBufferOffsets.y);
  14. }
  15. vec2 GetQuadTexCoord(vec4 clipPos)
  16. {
  17. return vec2(
  18. clipPos.x / clipPos.w * 0.5 + 0.5,
  19. clipPos.y / clipPos.w * 0.5 + 0.5);
  20. }
  21. vec3 GetFarRay(vec4 clipPos)
  22. {
  23. vec3 viewRay = vec3(
  24. clipPos.x / clipPos.w * cFrustumSize.x,
  25. clipPos.y / clipPos.w * cFrustumSize.y,
  26. cFrustumSize.z);
  27. return cCameraRot * viewRay;
  28. }
  29. vec3 GetNearRay(vec4 clipPos)
  30. {
  31. vec3 viewRay = vec3(
  32. clipPos.x / clipPos.w * cFrustumSize.x,
  33. clipPos.y / clipPos.w * cFrustumSize.y,
  34. 0.0);
  35. return (cCameraRot * viewRay) * cDepthMode.x;
  36. }