Ray-traced shadows: fully transparent rigged mesh faces still cast shadows #1471
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#1471
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?
With ray-traced shadows from ordinary lights ("Shadows from all lights", ReSTIR DI with RenderVKProjectorShadows 2), a fully transparent face of a worn rigged mesh still blocks the light. It casts a hard dark patch on the wearer (seen on a coat, cast by hidden parts of a worn item). Shadow maps skip the same faces.
Cause: the ray-tracing scene drops blend faces with tint alpha <= 1/255 (RenderVKRTBlendCull,
clean_rt_instances.comppass A), but rigged faces go through pass B and the CPU rig plan (llcleanrtvk.cpp), where tint is never checked. Every rigged face, including a mesh body's hidden parts (an OpenPony body had 18 such faces), stays in the TLAS. A ray-tracing debug probe confirmed it: the patch's blocker was a rigged, own-avatar blend face with tint alpha 0.Fix: apply the same tint-alpha cull to rigged faces when the rig plan is built. Re-plan when a face's alpha crosses the cutoff (mesh body HUDs and scripts toggle it), and when the setting changes.