Avatar visibility per pass (main / shadow / projector / probe / mirror), GPU-decided probe avatar visibility, skip off-screen probes #517
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#517
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?
Found while testing #479's frozen culling camera: with the cull camera frozen and pointed away, a group of 5 avatars kept rendering. Turning shadows off didn't help; setting reflections to static-only did.
Causes
av_vis(LLCleanRendererVK, ~llcleanrenderervk.cpp:6040-6160) is set if the avatar is in the main frustum, OR its sun-shadow sweep touches it, OR it's inside a shadowed projector's cone, OR a mirror sees it, OR it's near a dynamic probe. Rigged mesh skips the GPU frustum test and relies on this bit, so an avatar kept only for a shadow/projector/probe/mirror pass is also fully skinned and drawn in the main view, even behind the camera. In a club with spotlights, every avatar in a cone renders in the main pass.RenderReflectionProbeDrawDistance(64 m) of any dynamic manual probe stays visible, and it fires at probe detail 1 (wf.probe_detail >= 1, ~line 8584) although realtime captures only run at detail 2+.Fix
kAvVisNoShadow/ per-pass bucket pattern.av_vis's box area) against that, instead of the CPU guessing with "any dynamic probe".Done when
avFull/avReducedand the main-pass rigged counts).Shipped in 1.1.0 Beta 9 (v1.1.0-beta.9).