Repository navigation
Conversation
Residency is a cut of a 3D chunk octree with ray-guided refinement; diagnostics report drawn nodes, footprints and ray reports. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Helio e6371f37 (Far-Beyond-Pulsar/Helio#353, a draft; listed in the pin exceptions until it lands on Helio main): the 3D chunk octree with ray-guided residency, per-voxel materials for edits and dug walls, the generation kernel's materials matching Planet::material, and Helio main merged. PickHit gained the drawn material; the edit-ray test sets it to 0 (an edit ray takes the cell). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ed-residency # Conflicts: # crates/renderer/helio
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A level save now keeps the voxel planet renderer's chunks of the terrain's edits with its journal, so a loaded level copies what the edits made instead of generating it from the terrain and every edit. - HelioRenderer owns a VoxelChunkSaves (request/answer, condvar), given to the planet backend and to the editor through HelioEditorMailbox; the level editor keeps it in SceneDomain.voxel_chunk_saves. - save_blocking, after compacting the journals, asks for the chunks when a terrain with edits keeps none (keep_voxel_chunks, waiting up to 5 s); the backend has its pass pack them (PlanetFrame.export), answers for the journal its shown planet was built from, and the save deflates them off the render thread and keeps them only while the journal is unchanged. - A rebuilt world parses the journal's kept chunks on the world builder thread and passes them in PlanetFrame.kept; the pass loads them into the new world. Helio 1dcc418f (Far-Beyond-Pulsar/Helio#353): kept chunks travel with the journal and the frame, not the edit snapshot. Tests: voxel_kept_chunks (90 chunks, 105 KiB, answered in 7 frames; a new renderer loads all 90) and a_level_save_keeps_the_renderers_voxel_chunks (the editor's save while the viewport draws; the level loads with them). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pins Helio to the voxel planet work in Far-Beyond-Pulsar/Helio#353 (draft) and updates Pulsar for it.
What the Helio pin brings
The pin moves from
819dff8fto1dcc418f, which contains Heliomain(90b34047, the pin on Pulsarmain).PickHitreports the drawn material.Planet::materialdoes. Picks, dig yields and drawn colours agree, where 40.5% of natural mountain pixels used to differ.VoxelKeptChunks, saved askept), and the pass loads and exports them through its frame.Pulsar changes
voxel_backend.rs: the edit-ray test builds aPickHit, which gainedmaterial. It's set to 0, since an edit ray takes the cell.342598aed). A loaded level copies what its edits made, instead of generating it from the terrain and every edit.HelioRendererowns aVoxelChunkSavesrequest/answer handle. The planet backend answers it, and the editor gets it throughHelioEditorMailboxand keeps it inSceneDomain.voxel_chunk_saves.save_blockingrunskeep_voxel_chunksafter compacting the journals. It asks only when a terrain has edits but no kept chunks, and waits up to 5 s.PlanetFrame.export. It answers for the journal the shown planet was built from, and asks again if the world changed meanwhile.PlanetFrame.kept. The pass loads them into the new world..github/submodule-pin-exceptions.txtlists the Helio pin, because Helio#353 isn't on Heliomainyet. Once it merges, re-pin to Heliomainand delete the line.0158ee23cmakes the voxel system docs describe the chunk octree.mainis merged in. The only conflict was the Helio gitlink, resolved to the new pin.Merge order
main.crates/renderer/helioto thatmaincommit and drop the exception line.Tests
cargo test -p engine_backend voxel: 28 tests pass against the new pin.voxel_kept_chunks(engine_backend, headless editor renderer). A save waiting on another thread is answered in 7 frames with 90 chunks (105 KiB). A new renderer given the saved journal loads all 90.a_level_save_keeps_the_renderers_voxel_chunks(ui_level_editor). It runs the editor's real save while the viewport draws; the written level loads with the same journal and its kept chunks. All 9ui::savetests pass.scripts/submodule-pins.sh checkpasses, with the Helio pin listed as an exception.helio-default-graphsfail the same way on Heliomain.🤖 Generated with Claude Code