[Proc Gen] HeightMap - Direct source sampling (add_noise, add_bsp) #209
Labels
No labels
Alpha Release Requirement
Bugfix
Demo Target
Documentation
Major Feature
Minor Feature
priority:tier1-active
priority:tier2-foundation
priority:tier3-future
priority:tier4-deferred
Refactoring & Cleanup
system:animation
system:documentation
system:grid
system:input
system:performance
system:procgen
system:python-binding
system:rendering
system:ui-hierarchy
Tiny Feature
workflow:blocked
workflow:needs-benchmark
workflow:needs-documentation
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Depends on
#193 [Proc Gen] HeightMap - Core class with scalar operations
john/McRogueFace
#202 [Proc Gen] BSP - Core class with splitting
john/McRogueFace
#207 [Proc Gen] NoiseSource - Core class with point queries
john/McRogueFace
Reference
john/McRogueFace#209
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent Issue: #192
Depends On: #193 (HeightMap core), #202 (BSP core), #207 (NoiseSource core)
Overview
Add methods to HeightMap for directly sampling from NoiseSource and BSP without creating intermediate objects. This is the efficient path for large maps.
Specification
Noise Sampling
Sample noise and add to current values.
Sample noise and multiply with current values.
sourceNoiseSourceworld_origin(float, float)world_size(float, float)modestr"flat","fbm", or"turbulence". Default:"fbm".octavesintscalefloatBSP Sampling
Add BSP node regions to heightmap.
Multiply by BSP regions (masking).
bspBSPselectstr"leaves","all", or"internal". Default:"leaves".nodeslist[BSPNode]shrinkintvaluefloatExample
Implementation Notes
(origin, size)formatmultiply_bspeffectively masks the heightmap to room interiorsPerformance Comparison
For a 1000×1000 heightmap:
noise.sample()thenhmap.add()hmap.add_noise()bsp.to_heightmap()thenhmap.multiply()hmap.multiply_bsp()Acceptance Criteria
add_noiseandmultiply_noisework correctlyadd_bspandmultiply_bspwork correctly