#version 300 es

precision mediump float;

in vec3 skybox_pos;
out vec4 color;

uniform sampler2D p3d_Texture0;

void main() {

  vec3 view_dir = normalize(skybox_pos);
  vec2 skybox_uv;

  // Convert spherical coordinates
  const float pi = 3.14159265359;
  skybox_uv.x = (atan(view_dir.y, view_dir.x) + (0.5 * pi)) / (2.0 * pi);
  skybox_uv.y = clamp(view_dir.z * 0.72 + 0.35, 0.0, 1.0);

  vec3 skybox_color = textureLod(p3d_Texture0, skybox_uv, 0.0).xyz;

  color = vec4(skybox_color, 1);
}
