Snow mesh: build once and cache per world tile; LOD, morph and culling at draw time (no rebuild on camera move) #1496
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#1496
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?
Problem
The snow surface mesh (#783,
clean_weather_snowmesh.comp,LLCleanWeatherVK::recordMeshBuild) is rebuilt from scratch when the camera moves more than 0.25 m or turns more than 8 degrees (RenderVKWeatherSnowMeshRebuildMove,kMeshRebuildTurnCos), and on every grid snap. On an RTX 3060 at 960x511 that build is about 21 ms (#1494's capture). A walking camera pays it every 2-3 frames.The rebuild exists because the mesh bakes in camera-dependent data at build time:
(#1494's fix,
fix-weather-perfde854254b2, already stops the every-4th-frame interval build when nothing changed. That leaves only the camera triggers.)Proposal: build once, cache per world tile (CDLOD / geometry-clipmap style)
Done when
c_snow_mesh_buildp95 is close to its p50, and the per-frame cost is the tile cull plus edge tiles.