[Proc Gen] NoiseSource.sample and NoiseSample class #208
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
#207 [Proc Gen] NoiseSource - Core class with point queries
john/McRogueFace
Reference
john/McRogueFace#208
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), #207 (NoiseSource core)
Overview
Add batch sampling method to NoiseSource and implement the NoiseSample subclass.
Specification
NoiseSource.sample
size(int, int)world_origin(float, float)world_size(float, float)size.modestr"flat","fbm", or"turbulence". Default:"fbm".octavesintNote: Uses
(origin, size)format consistent with McRogueFace conventions, not((x1,y1), (x2,y2)).NoiseSample Class
NoiseSample extends HeightMap with noise-specific context.
Properties
sourceNoiseSourceworld_origin(float, float)world_size(float, float)modestr"flat","fbm", or"turbulence".octavesintNavigation Methods
Sample the adjacent region in the specified direction. Returns a new NoiseSample with the same size, mode, and octaves, but shifted world_origin.
Example
Implementation Notes
wx = world_origin[0] + (x / size[0]) * world_size[0]wy = world_origin[1] + (y / size[1]) * world_size[1]resample()andzoom()- users can achieve these with directsample()callsAcceptance Criteria
sample()creates NoiseSample with correct valuesworld_sizecontrols feature scale (larger = zoomed out)See #206 for comparison for
HeightMapsubclassing: the actual custom type has been deferred for the BSP system. We will probably do the same here. It's not hard to keep track of sampling parameters and manage our own re-sampling to fetch adjacent regions of noise.