Merge pull request #98257 from Rudolph-B/94210-B
Fix to occlusion culling where all math is based on Euclidean distance.
This commit is contained in:
commit
78a4e634f0
2 changed files with 6 additions and 12 deletions
|
|
@ -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];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue