lost_soul

A 3D walking simulator game
Log | Files | Refs | README | LICENSE

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 }