-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathskybox_blit_frag.glsl
More file actions
32 lines (27 loc) · 856 Bytes
/
skybox_blit_frag.glsl
File metadata and controls
32 lines (27 loc) · 856 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#version 300 es
precision highp float;
uniform vec3 u_camera;
in vec3 v_pos;
uniform sampler2D u_skybox_tex;
uniform highp sampler3D cloud_base_texture;
out vec4 fragColor;
#define PI 3.14159
vec2 dir_to_skybox_uv(vec3 dir) {
vec2 uv = vec2(atan(dir.x, -dir.z), acos(dir.y));
if (uv.x < 0.0) {
uv.x += PI * 2.0;
}
return (uv / vec2(PI * 2.0, PI));
}
vec3 skybox_uv_to_dir(vec2 uv) {
uv = (uv - 0.5) * vec2(-2.0, -1.0) * PI;
vec3 r_dir = normalize( vec3( sin(uv.x), tan(uv.y), cos(uv.x) ) * cos(uv.y) );
return r_dir;
}
void main() {
vec3 rayDir = normalize(v_pos - u_camera);
vec2 uv = dir_to_skybox_uv(rayDir);
fragColor = texture(u_skybox_tex, uv);
// fragColor = vec4(texture(cloud_base_texture, vec3(uv, 0.5)).z * 100000000000.0);
// fragColor = vec4(texture(cloud_base_texture, vec3(rayDir * 50.0)).rgb * 10000.0, 1.0);
}