diff options
author | Clay John <claynjohn@gmail.com> | 2024-10-24 21:06:56 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-10-24 21:06:56 -0700 |
commit | 78a4e634f08b8d2e6825695dad45abc11792fa6f (patch) | |
tree | f6841d8b41ea2da0eb229650020ef601bf312fce /modules | |
parent | e952651f891ec8447aed59ad4e9f33291099cb8e (diff) | |
parent | ed3f990952c11c742fc4cc412caa7368efef3fa1 (diff) | |
download | redot-engine-78a4e634f08b8d2e6825695dad45abc11792fa6f.tar.gz |
Merge pull request #98257 from Rudolph-B/94210-B
Fix to occlusion culling where all math is based on Euclidean distance.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/raycast/raycast_occlusion_cull.cpp | 12 |
1 files changed, 1 insertions, 11 deletions
diff --git a/modules/raycast/raycast_occlusion_cull.cpp b/modules/raycast/raycast_occlusion_cull.cpp index 94d8b267d1..54dc040583 100644 --- a/modules/raycast/raycast_occlusion_cull.cpp +++ b/modules/raycast/raycast_occlusion_cull.cpp @@ -181,17 +181,7 @@ void RaycastOcclusionCull::RaycastHZBuffer::sort_rays(const Vector3 &p_camera_di } int k = tile_i * TILE_SIZE + tile_j; int tile_index = i * tile_grid_size.x + j; - float d = camera_rays[tile_index].ray.tfar[k]; - - if (!p_orthogonal) { - const float &dir_x = camera_rays[tile_index].ray.dir_x[k]; - const float &dir_y = camera_rays[tile_index].ray.dir_y[k]; - const float &dir_z = camera_rays[tile_index].ray.dir_z[k]; - float cos_theta = p_camera_dir.x * dir_x + p_camera_dir.y * dir_y + p_camera_dir.z * dir_z; - d *= cos_theta; - } - - mips[0][y * buffer_size.x + x] = d; + mips[0][y * buffer_size.x + x] = camera_rays[tile_index].ray.tfar[k]; } } } |