Description
One
can render a skybox using a cubemap texture.
For
texture coordinates, one simply provides the cube vertex positions (in world
coordinates), assuming the cube is centred at the origin.
The
vertex positions then define vectors from origin.
Vertex shader:
out vec3 worldPosition;
void main() {
gl_Position = matrices.projMatrix * matrices.modelViewMatrix * vec4(inPosition, 1.0f);
worldPosition = inPosition;
}
Fragment shader:
in vec3 worldPosition;
uniform samplerCube CubeMapTex;
void main() {
vOutputColour = texture(CubeMapTex, worldPosition);
}