feat: SDF per-pixel ground blend + expanded biomes on a 2x world #221
No reviewers
Labels
No labels
alpha:wave-0
alpha:wave-1
alpha:wave-2
alpha:wave-3
area:assets
area:combat
area:ecology
area:infra
area:render
area:scripting
area:ui
area:world
enhancement
epic
migration
post-alpha
roadmap
tech-debt
type:bug
type:chore
type:design
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
marco/IsoMmo!221
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/world-new-biomes"
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?
Summary
The old dual-grid tile transitions between biomes looked bad — checkerboarding, dark seams and stair-stepped borders where two biomes met. I wanted the biomes to melt into each other instead of showing tile edges.
This PR replaces the discrete dual-grid ground with a per-pixel Signed-Distance-Field blend running in a shader, expands the biome set from the cleaned
E:\Assetart, and doubles the world to 768×576 so the biomes and the titanic redwood forest have room to breathe.Rendering — SDF ground blend (
client/IsoMmo.Client.Core/TerrainBlendField.cs,GroundBlendRenderer.cs,Content/ground_blend.fx):Content:
E:\Asset: the four redwood floor types (mossy / bark / humus / mixed), dirt + snow roads (snow only over arctic ground), typed beaches;scripts/genland.pyturns the raw art into the repo's seamless tile format.Fix:
Screenshots / recording
Captured by piloting the client via the debug harness (
login test,/tp <x> <y>through chat,screenshot):Redwood forest — the titanic giants spread with gaps and clearings (not an overlapping wall):
A biome boundary that used to show a hard dark spike — now rounded:
The coastal volcano, now on solid, walkable land:
How it was tested
TerrainBlendFieldTests+EdtTests(interior purity, border blend, ∑weights = 1, cross-chunk slot consistency, overflow, determinism). Client.Core 130 green.dotnet test IsoMmo.slnx— whole solution green.dotnet csharpier check .clean.Checklist
just lintpasses (CSharpier + analyzers, zero warnings)just testis greenps_3_0/GLSL via MGCB — no OS-specific deps)Notes / follow-ups (before merge)
docs/architecture.mdstill to document the SDF ground blend.DrawDualTilepath is kept behind a flag (GroundBlend != null) as a fallback; can be removed.scripts/genscatter.py(redwood/arena prop re-scatter) still lives in a scratchpad; should move intoscripts/and be decoupled from the git-HEAD baseline.1756a3d68b2c77adac192c77adac19e402f7ac6aChiudo, superata, Shag succhiami il cazzo
Superseded. The SDF per-pixel ground blend is already on
main(via the later blend/fluids path), andmainnow carries 29 terrain biomes vs the 21 on this branch — main is ahead, nothing unique left to salvage. Closing rather than rebasing 125 files / +8.3k lines of overlap.Pull request closed