Octree removal 4: replace the remaining tree readers (rect-select, level-3 probes, particle pick) #478

Closed
opened 2026-10-06 09:30:24 +00:00 by sky_line · 2 comments
Owner

Part of #474. From the 2026-10-06 audit: the octrees are still built and maintained every frame, but almost nothing reads them. Rendering, culling, world picking, LOD, texture priority and lights all run on our own systems.

Replace:

  • Rect-select: use an AABB-vs-frustum query on the clean instance store instead of LLSpatialPartition::cull / LLOctreeSelect.
  • Level-3 automatic reflection probes (llappviewer.cpp ~6218-6290): place them from a 16 m grid over clean-instance AABBs, or the instance store's spatial bins (vk_parity_audit.md ~342), instead of walking PARTITION_VOLUME octree nodes.
  • Particle-owner pick: see the separate bug. Replace it with a GPU or clean-store pick.

After this: Volume, Bridge and every LLSpatialBridge can go, along with processPartitionQ / mPartitionQ / mMovedBridge, markPartitionMove, and the movePartition call in genBBoxes (llvovolume.cpp ~1913).

Part of #474. From the 2026-10-06 audit: the octrees are still built and maintained every frame, but almost nothing reads them. Rendering, culling, world picking, LOD, texture priority and lights all run on our own systems. **Replace:** - **Rect-select:** use an AABB-vs-frustum query on the clean instance store instead of `LLSpatialPartition::cull` / `LLOctreeSelect`. - **Level-3 automatic reflection probes** (llappviewer.cpp ~6218-6290): place them from a 16 m grid over clean-instance AABBs, or the instance store's spatial bins (vk_parity_audit.md ~342), instead of walking `PARTITION_VOLUME` octree nodes. - **Particle-owner pick:** see the separate bug. Replace it with a GPU or clean-store pick. **After this:** Volume, Bridge and every `LLSpatialBridge` can go, along with `processPartitionQ` / `mPartitionQ` / `mMovedBridge`, `markPartitionMove`, and the `movePartition` call in `genBBoxes` (llvovolume.cpp ~1913).
sky_line added this to the Slipstream project 2026-10-06 15:04:14 +00:00
Author
Owner

Update (2026-10-06): rect-select no longer reads the octree. Box select was rewritten for #475 and the box-select bugs (commits e479911025 and ebe1f666e3, in 1.1.0 Beta 8). It projects candidate prims from gObjectList with the live camera: bounding-box corners first, then vertices for prims that straddle the box. So only level-3 probe placement and the particle-owner pick (#481) remain as tree readers here.

Update (2026-10-06): **rect-select no longer reads the octree.** Box select was rewritten for #475 and the box-select bugs (commits e479911025 and ebe1f666e3, in 1.1.0 Beta 8). It projects candidate prims from `gObjectList` with the live camera: bounding-box corners first, then vertices for prims that straddle the box. So only **level-3 probe placement** and the **particle-owner pick (#481)** remain as tree readers here.
Author
Owner

Shipped in 1.1.0 Beta 9 (v1.1.0-beta.9).

Shipped in 1.1.0 Beta 9 (v1.1.0-beta.9).
sky_line 2026-10-07 07:27:51 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
sky_line/Slipstream#478
No description provided.