diff options
author | RĂ©mi Verschelde <remi@verschelde.fr> | 2021-10-13 11:40:27 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-10-13 11:40:27 +0200 |
commit | 2c46a1f327201004d631f3e25be64c56b12238fb (patch) | |
tree | c181225931ef522a9b577f20d5dbbc732dc5906d /modules | |
parent | 2eeb9a8d0e831b9e149078bf635e3340a065fe4b (diff) | |
parent | fbd95c3e537f268de38f7e37672d66216b290132 (diff) |
Merge pull request #53743 from williamd67/GPULightmapper-process-rays-to-sky
Diffstat (limited to 'modules')
-rw-r--r-- | modules/lightmapper_rd/lm_compute.glsl | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/modules/lightmapper_rd/lm_compute.glsl b/modules/lightmapper_rd/lm_compute.glsl index 25b334c5eb..45b8ddab65 100644 --- a/modules/lightmapper_rd/lm_compute.glsl +++ b/modules/lightmapper_rd/lm_compute.glsl @@ -420,20 +420,22 @@ void main() { light = textureLod(sampler2DArray(source_light, linear_sampler), uvw, 0.0).rgb; active_rays += 1.0; - } else if (trace_result == RAY_MISS && params.env_transform[0][3] == 0.0) { // Use env_transform[0][3] to indicate when we are computing the first bounce - // Did not hit a triangle, reach out for the sky - vec3 sky_dir = normalize(mat3(params.env_transform) * ray_dir); + } else if (trace_result == RAY_MISS) { + if (params.env_transform[0][3] == 0.0) { // Use env_transform[0][3] to indicate when we are computing the first bounce + // Did not hit a triangle, reach out for the sky + vec3 sky_dir = normalize(mat3(params.env_transform) * ray_dir); - vec2 st = vec2( - atan(sky_dir.x, sky_dir.z), - acos(sky_dir.y)); + vec2 st = vec2( + atan(sky_dir.x, sky_dir.z), + acos(sky_dir.y)); - if (st.x < 0.0) - st.x += PI * 2.0; + if (st.x < 0.0) + st.x += PI * 2.0; - st /= vec2(PI * 2.0, PI); + st /= vec2(PI * 2.0, PI); - light = textureLod(sampler2D(environment, linear_sampler), st, 0.0).rgb; + light = textureLod(sampler2D(environment, linear_sampler), st, 0.0).rgb; + } active_rays += 1.0; } |