#version 410 core
// One portal opening: an oval hole cut into a wall. aUV is the unit-disc
// coordinate of the fan, and the clip position is carried through so the
// fragment can sample the through-view at its own place on screen.
layout(location = 0) in vec3 aPos;
layout(location = 1) in vec2 aUV;
uniform mat4 uVP;
out vec2 vUV;
out vec4 vClip;
void main() {
    vUV = aUV;
    vClip = uVP * vec4(aPos, 1.0);
    gl_Position = vClip;
}
