cubemap.fs (613B)
1 #version 330 2 3 // Input vertex attributes (from vertex shader) 4 in vec3 fragPosition; 5 6 // Input uniform values 7 uniform sampler2D equirectangularMap; 8 9 // Output fragment color 10 out vec4 finalColor; 11 12 vec2 SampleSphericalMap(vec3 v) 13 { 14 vec2 uv = vec2(atan(v.z, v.x), asin(v.y)); 15 uv *= vec2(0.1591, 0.3183); 16 uv += 0.5; 17 return uv; 18 } 19 20 void main() 21 { 22 // Normalize local position 23 vec2 uv = SampleSphericalMap(normalize(fragPosition)); 24 25 // Fetch color from texture map 26 vec3 color = texture(equirectangularMap, uv).rgb; 27 28 // Calculate final fragment color 29 finalColor = vec4(color, 1.0); 30 }