forked from LeenkxTeam/LNXSDK
28 lines
524 B
GLSL
28 lines
524 B
GLSL
#version 450
|
||
|
||
#include "compiled.inc"
|
||
|
||
uniform mat4 invP;
|
||
|
||
in vec2 pos;
|
||
|
||
out vec2 texCoord;
|
||
out vec3 viewRay;
|
||
|
||
void main() {
|
||
// Scale vertex attribute to [0-1] range
|
||
const vec2 madd = vec2(0.5, 0.5);
|
||
texCoord = pos.xy * madd + madd;
|
||
#ifdef _InvY
|
||
texCoord.y = 1.0 - texCoord.y;
|
||
#endif
|
||
|
||
gl_Position = vec4(pos.xy, 0.0, 1.0);
|
||
|
||
// For reverse-Z, far plane sits at NDC z = 0
|
||
vec4 clip = vec4(pos.x, pos.y, 0.0, 1.0);
|
||
vec4 v = invP * clip;
|
||
// reconstruct a view‐space direction
|
||
viewRay = vec3(v.xy / v.z, 1.0);
|
||
}
|