Smooth terrain: subdivision / tessellation surface through the height samples #211
Labels
No labels
amd
avatars
bug
builder
cannot-reproduce
crash
epic
feature
from-viewer
gl-removal
known-limitation
monitoring
parity
perf
platform
priority
critical
priority
high
priority
low
priority
medium
provenance
rendering
rt
status
in-progress
status
testing
status
up-next
triage
ui
upstream
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
sky_line/Slipstream#211
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?
The Lightbox "Smooth terrain" checkbox (
AlchemyRenderTerrainSmoothing) does nothing under Vulkan. Implement it as a GPU subdivision of the terrain patch.Reference: upstream Alchemy GL (820dbaa0ab)
ALTerrainSurfaceMaps::smoothHeightuses the same arithmetic, andLLSurface::resolveHeightRegion/resolveNormalGlobalswitch to it, so picks, foot planting and parcel lines follow the drawn surface.Our plan
Refs the Lightbox cleanup (
2375e1a183).Landed on branch
terraintess(commitba64bf4d4e, not yet merged/built).Surface: upstream's monotone bicubic (820dbaa0ab) ported to
llterrainsmooth.h, same arithmetic. It passes exactly through every sample and never overshoots. Normals are its analytic gradient.LLSurface::resolveHeightRegion/resolveNormalGlobalswitch to it while the setting is on (picks, foot planting, parcel lines). The stencil reads one grid into neighbour regions; with no neighbour it clamps, which gives a zero tangent like upstream.Geometry: static smooth meshes per patch LOD level, all in the existing mesh store / LOD group:
Every view uses the same surface with no new pass: main, depth pre-pass, shadow cascades, mirror, probes (which draw level 0), the per-slot RT BLAS and the pick boxes. Fine levels stay resident only near the camera: they're built nearest first under a per-frame vertex budget and freed with hysteresis. Edits are caught by a content hash and rebuilt with force.
LOD:
Settings:
RenderVKTerrainSmooth(default on, live). It has a checkbox in Graphics > Advanced under "Hex-tile terrain textures", and the Lightbox "Smooth terrain" checkbox is rebound to it. The deadAlchemyRenderTerrainSmoothingis removed. Off gives today's faceted terrain exactly.RenderVKTerrainSmoothDetail(0-3, default 2).Known:
Verified done: smooth terrain implemented under Vulkan: upstream's monotone bicubic surface, distance LOD with geomorph and skirts, CPU mirror for picks/foot planting, RT BLAS follows the morphed surface; RenderVKTerrainSmooth (Lightbox checkbox rebound). Commits:
ba64bf4d4e,f7c3d9016c. Shipped in v1.0.0-beta.1.