standalone: 64 m full-detail override, detailed round tunnels, optional mesh cache -- generation itself NOT faster
ClipRadius override 3 (64 m at 25 cm). Uncached full detail 20.3 s on 8 workers (512 tiles at ~51 ms serial each should be ~3-4 s: the in-stream inefficiency is unsolved); full clipmap 170.6 s. The 1 s / 5 s targets were met only from an on-disk mesh cache (.vfmesh, not committed) of already-generated tiles: a revisit speed-up, not generation speed. Round tunnels gained deterministic multi-scale wall relief and lost the larger mouth wedges (1.54% of lattice signs changed, mean 0.20 m). Hashes stable across runs and 1 vs 6 workers. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01MmSoF64BbRFmk9C3p1VsBJ
This commit is contained in:
1 parent
81b7d6d0ff
commit
5441c7da5c
181 files changed
+1674
-51
No files matched your search
+74
-11
@@ -1,7 +1,7 @@
|
||||
# VoxelForge standalone world
|
||||
|
||||
This C++20 program loads the owner snapshot from `data/owner_world.json`, runs the copied
|
||||
VoxelForge density pipeline and marching-cubes mesher, streams the clipmap with six worker threads
|
||||
VoxelForge density pipeline and marching-cubes mesher, streams the clipmap with eight worker threads
|
||||
by default, and displays it through Direct3D 11. Unreal is not linked or needed at run time.
|
||||
|
||||
## Build and launch
|
||||
@@ -22,10 +22,10 @@ JSON beside itself under `Standalone\data\`.
|
||||
### Daytime resource limit
|
||||
|
||||
Run tests and benchmarks at Idle or BelowNormal priority and use no more than 8 of this PC's 16
|
||||
logical CPUs. The default viewer uses six workers. Use `Build\LaunchBelowNormal.ps1` for any test or
|
||||
benchmark process; it starts the child at BelowNormal and verifies the priority. Builds use no more
|
||||
than four compiler processes (the current build is serial) and retain `/fp:precise`. The all-core
|
||||
16-worker runs documented below were the owner's one-night exception.
|
||||
logical CPUs. The default viewer uses eight workers. Use `Build\LaunchBelowNormal.ps1` for any test or
|
||||
benchmark process; it starts the child at BelowNormal, applies affinity `0xFF00`, and verifies both.
|
||||
Builds use no more than four compiler processes (the current build is serial) and retain
|
||||
`/fp:precise`. The all-core 16-worker runs documented below were the owner's one-night exception.
|
||||
|
||||
## Controls
|
||||
|
||||
@@ -33,8 +33,9 @@ than four compiler processes (the current build is serial) and retain `/fp:preci
|
||||
- WASD moves; Space/Ctrl or E/Q moves vertically; Shift moves faster; the wheel changes speed.
|
||||
- F toggles wireframe.
|
||||
- 1 through 7 toggle clipmap levels 0 through 6 individually; 0 toggles every level.
|
||||
- N/P changes the seed. T switches between the owner's base tunnels and the research-shaped round,
|
||||
winding tunnel option; `--round-tunnels` starts in that variant. Either action rebuilds the clipmap.
|
||||
- N/P changes the seed. T switches between the owner's base world and the added research-shaped
|
||||
round, winding tunnels; `--round-tunnels` starts in that variant. G switches between legacy smooth
|
||||
and detailed/smoothed tunnel walls. Either action rebuilds the clipmap.
|
||||
Crossing a chunk recenters streaming:
|
||||
tiles still desired stay resident, only new tiles are generated, and leaving tiles are dropped.
|
||||
- Esc exits.
|
||||
@@ -75,11 +76,15 @@ and seed. The export also records their geometry in JSON for reference.
|
||||
season would need to be exported and mapped before it could affect this viewer.
|
||||
- `WITH_EDITOR` research/debug branches, Unreal logging, startup trace, profiling counters, and
|
||||
reflection metadata do not run in the standalone. The base generator path is the default.
|
||||
- T selects a standalone-only tunnel-shape port. It disables the owner's first-strate tunnel
|
||||
connections and adds the research field's cubic winding centerline and round elliptical tunnel
|
||||
- T selects a standalone-only tunnel-shape port. It preserves the owner's rooms, tunnels, and
|
||||
passages, then adds the research field's cubic winding centerline and round elliptical tunnel
|
||||
profile (144-voxel pitch, 28-voxel radius, 26-voxel half-height, deterministic variable radius
|
||||
and vertical wave), anchored around the camera's current height. It reuses the base rooms and
|
||||
passages; it does not port the research field's room planner or full parameterized density field.
|
||||
and vertical wave) at the fixed world height -80 voxels. Detailed walls use deterministic relief
|
||||
at 8-, 16-, and 32-voxel wavelengths; the fixed-height field and copied `DetSin` keep the world
|
||||
independent of camera placement and CRT trigonometry. An 8-voxel smooth union at the owner-field
|
||||
boundary removes the small mouth wedges while retaining relief across several voxels. This is a
|
||||
standalone addition; it does not port the research field's room planner or full parameterized
|
||||
density field.
|
||||
|
||||
## Owner data and parity
|
||||
|
||||
@@ -244,3 +249,61 @@ BelowNormal workers:
|
||||
| Before palette pass | After palette pass |
|
||||
|---|---|
|
||||
|  |  |
|
||||
|
||||
## 2026-10 speed round
|
||||
|
||||
The owner export still says `ClipRadius=6`, which selects a 112 m full-detail cube. The standalone
|
||||
now overrides this to radius 3: a 64 m cube at the same 25 cm lattice spacing, with 960 LOD0/1 tiles
|
||||
instead of 4,753. The far clipmap remains enabled; the radius change reduces how much world is at
|
||||
full detail and does not change density values in the overlapping region. The viewer reports both
|
||||
the exported radius and the standalone override at launch.
|
||||
|
||||
| Path | Before | After |
|
||||
|---|---:|---:|
|
||||
| Full detail, uncached | 112.243 s, radius 6, 4,753 tiles, 8 workers | 20.266 s, radius 3, 960 tiles, 6 workers |
|
||||
| Full detail, seed-0 base cache hit | — | 0.270 s cache read + 0.028 s headless handoff; viewer full-detail ready at 0.059 s |
|
||||
| Full clipmap, uncached | 175.056 s, radius 6, 12,054 tiles, 16-worker historical night run | 170.642 s, radius 3, 6,498 tiles, 8 workers |
|
||||
| Full clipmap, seed-0 base cache hit | — | 0.266 s cache read + 0.161 s to initial clipmap ready |
|
||||
| Base plus detailed round tunnels, uncached | — | 20.724 s full detail; 173.114 s headless full clipmap, radius 3, 8 workers |
|
||||
| Base plus detailed round cache hit | — | 0.282 s cache read + 0.028 s headless detail; viewer ready at 0.058 s |
|
||||
| Detailed round full clipmap, cache hit | — | 0.282 s cache read + 0.092 s headless; viewer ready at 0.165 s |
|
||||
|
||||
All new timings use BelowNormal priority and affinity `0xFF00`; worker counts are shown above. The
|
||||
historical 16-worker baseline is outside the daytime resource limit and is not a controlled worker
|
||||
comparison. Raw generation still misses both time targets. For the owner-start tile set, the base
|
||||
viewer reports full-detail readiness at 0.059 s and full-clipmap readiness at 0.161 s after
|
||||
generation starts. The detailed round viewer reports 0.058 s and 0.165 s. Including their 0.266 s /
|
||||
0.284 s cache reads, both modes are below 0.45 s from cache-read start. The base cache is
|
||||
`data/VoxelForge_seed0_r3_base.vfmesh` (215.64 MiB); the combined base-plus-round cache is
|
||||
`data/VoxelForge_seed0_r3_round_detailed.vfmesh` (226.55 MiB). Their raw bakes took 170.642 s and
|
||||
173.114 s. These timings start from new processes, but the cache files were in the OS file cache; a
|
||||
cold-storage read was not measured. Cache metadata includes seed, radius, source data, and tunnel
|
||||
mode. The caches cover the owner-start tile set for seed 0; other seeds, legacy walls, and camera
|
||||
positions outside that set generate missing tiles normally.
|
||||
|
||||
The round-tunnel wall change keeps the base generator and 25 cm sampling grid. Legacy and detailed
|
||||
variants were compared over 16 fixed LOD0 tiles (686,000 lattice samples): 10,539 signs changed
|
||||
(1.5363%). Symmetric nearest-vertex distance was 0.1955 m mean and 2.0457 m maximum, with no
|
||||
unmatched vertices. This is a mesh-vertex estimate, not a triangle-surface Hausdorff measurement.
|
||||
The larger maximum is local to tunnel/room joins. Captures below show the full-detail chamber,
|
||||
tunnel, and inter-strate passage. The far pair waits for all 6,498 clipmap tiles to upload.
|
||||
|
||||
| Fixed view | Legacy walls | Detailed/smoothed walls |
|
||||
|---|---|---|
|
||||
| Chamber `(-11.75,-123.25,-19.85) m`, yaw 0° | [capture](Research/VoxelSpeedRound/final/chamber_legacy.png) | [capture](Research/VoxelSpeedRound/final/chamber_detailed.png) |
|
||||
| Tunnel `(-11.75,-123.25,-19.85) m`, yaw 90° | [capture](Research/VoxelSpeedRound/final/tunnel_legacy.png) | [capture](Research/VoxelSpeedRound/final/tunnel_detailed.png) |
|
||||
| Passage `(-39.19,6.27,-28.51) m`, yaw 63° | [capture](Research/VoxelSpeedRound/final/passage_legacy.png) | [capture](Research/VoxelSpeedRound/final/passage_detailed.png) |
|
||||
| Full clipmap `(-11.75,-123.25,-19.85) m`, yaw 90° | [capture](Research/VoxelSpeedRound/final/farclip_legacy.png) | [capture](Research/VoxelSpeedRound/final/farclip_detailed.png) |
|
||||
|
||||
The detailed wall field uses seeded value noise at 8, 16, and 32 voxels (2, 4, and 8 m), avoiding
|
||||
per-voxel speckle. The legacy capture has a smooth tube interior and visible triangular mouth
|
||||
wedges. The detailed capture carries rock relief into the tube and removes those larger wedges;
|
||||
small color variation at the seam remains. The base tunnel graph and generated strate passage are
|
||||
retained, so the round mode only adds air to the owner's walkable field.
|
||||
|
||||
`Research\VoxelSpeedRound\final\` contains the captures, benchmark output, and process logs for
|
||||
this round. See the [final report and launch ledger](Research/VoxelSpeedRound/final/REPORT.md) for
|
||||
PIDs and discarded runs. Each viewer/benchmark was started with `Build\LaunchBelowNormal.ps1`, which
|
||||
prints its PID, BelowNormal priority, and `0xFF00` affinity. A previous max-level benchmark changed
|
||||
the clipmap ring alignment and was discarded; a corrected post-filter run preserves the original
|
||||
ring set.
|
||||
Reference in new issue
Block a user