feat(client): watertight cliff rendering - edge smoothing + continuous relief darkening #264
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!264
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/cliff-stepped-ground"
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
Reworks how cliffs render so terrain elevation reads cleanly, fixing the artifacts the earlier
per-quad "steep-bank" attempt (①b, #262) introduced. Three problems fixed:
cliff quad's flat lip didn't meet its plain/corner neighbours; the deferred composite discarded those
uncovered slivers to the black backbuffer. Fixed by recovering the watertight shared-vertex ground
mesh (#249): no holes → no black, ever.
the shader from the relief field's true-cliff channel (
r.a, which is 0 for walkable ≤step tiles), so asheer face reads as a dark upright band on ANY orientation — no discrete wall geometry, no diagonal
"picket-fence".
rounds a cliff's grid-aligned jagged outline into a ramp, fed to BOTH the mesh (geometric teeth) and the
relief field (shading teeth), so both come out smooth. Limited to cliff edges (walkable terraces stay
crisp);
Sigmatuned to 1.4 on the visual gate.Net effect supersedes the ①b banks on this branch (CliffBankTessellation removed). Client-render only
— no wire/protocol/server change, so
ProtocolVersionis untouched.Screenshots / recording
Captured by piloting the client via the debug harness (
docs/debug-harness.md), fresh DB, admintest, on the authoredasterramountain. Per spot:login test→key Enter/type /tp <x> <y>/key Enter→screenshot. No black cracks, cliffs legible as dark bands, no diamond teeth:mountain_cliff_6599_2848
z100_cliff_foot_6419_2804
dirt_grass_border_5115_4786
How it was tested
dotnet build(whole solution): 0 warnings.dotnet test: all green (10 projects; per-quad bank geometry + its tests removed,TerrainDisplayHeightgolden tests restored).
dotnet csharpier check: clean.Shader recompiled via MGCB;
ground_blend.xnbcommitted.Invariants Check (from the design review, #262)
GroundBlendRenderer+Client.Core; no Screen touched.TerrainDisplayHeight(smoothing) is pureClient.Core, unit-tested; only vertex upload + the.fxlive inClient.land/<art>; no PlaceholderArt.Checklist
just lintpasses (CSharpier + analyzers, zero warnings)just testis green