Ticket 014 V5 — invalidate the SDF clipmap if the camera has moved past the rebake threshold from the current clipmap centre. Called at the top of every frame before the bake check, so a moving camera triggers exactly one re-bake per `threshold × extent` chunk of travel.
(&mut self)
| 6861 | /// check, so a moving camera triggers exactly one re-bake per |
| 6862 | /// `threshold × extent` chunk of travel. |
| 6863 | fn maybe_invalidate_sdf_clipmap(&mut self) { |
| 6864 | if !self.scene_sdf_clipmap_built { |
| 6865 | return; |
| 6866 | } |
| 6867 | let cam = self.current_camera_world_pos(); |
| 6868 | let dx = cam[0] - self.scene_sdf_clipmap_origin[0]; |
| 6869 | let dy = cam[1] - self.scene_sdf_clipmap_origin[1]; |
| 6870 | let dz = cam[2] - self.scene_sdf_clipmap_origin[2]; |
| 6871 | let dist_sq = dx * dx + dy * dy + dz * dz; |
| 6872 | let threshold = SCENE_SDF_CLIPMAP_EXTENT * SCENE_SDF_CLIPMAP_REBAKE_THRESHOLD; |
| 6873 | if dist_sq > threshold * threshold { |
| 6874 | self.scene_sdf_clipmap_built = false; |
| 6875 | } |
| 6876 | } |
| 6877 | |
| 6878 | fn bake_scene_sdf_clipmap( |
| 6879 | &mut self, |
no test coverage detected