Description
Vertex shader:
out vec3 reflected;
void main() {
gl_Position = matrices.projMatrix * matrices.modelViewMatrix * vec4(inPosition, 1.0f);
// Get the vertex normal and vertex position
in eye coordinates
vec3 n = normalize(matrices.normalMatrix * inNormal);
vec3 p = (matrices.modelViewMatrix * vec4(inPosition, 1.0f)).xyz;
reflected = (matrices.inverseViewMatrix * vec4(reflect(p, n), 1)).xyz;
}
Fragment shader:
in vec3 reflected;
uniform samplerCube cubeMapTex;
out vec4 vOutputColour;
void main() {
vOutputColour
= texture(cubeMapTex, normalize(reflected));
}