diff options
author | pryazha <pryadeiniv@mail.ru> | 2025-08-02 13:21:42 +0500 |
---|---|---|
committer | pryazha <pryadeiniv@mail.ru> | 2025-08-02 13:21:42 +0500 |
commit | 2e64d3c5d6eb1eb04168d39d5eb5f2d89af1a8b0 (patch) | |
tree | 85c8a586a1343469cdcdab5dccad023053571ecd /pbr/ibl_irradiance/cubemap.frag | |
parent | 33d5f67044d104d69cb2d11e78e6a79bc20d4c4e (diff) |
Diffstat (limited to 'pbr/ibl_irradiance/cubemap.frag')
-rw-r--r-- | pbr/ibl_irradiance/cubemap.frag | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/pbr/ibl_irradiance/cubemap.frag b/pbr/ibl_irradiance/cubemap.frag new file mode 100644 index 0000000..349347a --- /dev/null +++ b/pbr/ibl_irradiance/cubemap.frag @@ -0,0 +1,25 @@ +#version 330 core + +in vert_t { + vec3 position; +} vert; + +out vec4 frag_color; + +uniform sampler2D map; + +const vec2 inv_atan = vec2(0.1591, 0.3183); +vec2 sample_spherical_map(vec3 v) +{ + vec2 uv = vec2(atan(v.z, v.x), asin(v.y)); + uv *= inv_atan; + uv += 0.5; + return uv; +} + +void main(void) +{ + vec2 uv = sample_spherical_map(normalize(vert.position)); + vec3 color = texture(map, uv).rgb; + frag_color = vec4(color, 1.0); +} |