[1680] VRChat crash when using avatars with extremely large blendshape position deltas on certain worlds
bd_
- Open world https://vrchat.com/home/world/wrld_163ea60b-50da-42f0-92a1-ba1137722178/info
- Wear (private) avatar https://vrchat.com/home/avatar/avtr_ac63acb2-191a-4b01-9514-75659e2faa16
- Crash
This avatar contains a gimmick which hides a portion of a mesh by using a blendshape with a very large displacement - in this case (float.MaxValue, float.MaxValue, float.MaxValue), but I've also tried with PositiveInfinity. This triggers a crash, but only on certain specific worlds.
This technique, if the crash could be resolved, would be very useful for hiding portions of a mesh without needing specific shader support. Indeed, Modular Avatar 1.13.1 is already using this technique (see https://github.com/bdunderscore/modular-avatar/blob/main/Editor/ReactiveObjects/MeshFiltering/NaNimationFilter.cs); due to only certain worlds (and meshes?) triggering the issue, I did not notice this crash before releasing it into the wild. Oops!
I'm considering alternative approaches to erase portions of a mesh dynamically, but they have significant performance impact (eg creating a bunch of constraints to allow me to create degenerate triangles reliably) or require specific shader support, and therefore don't work for fallback shaders or on Quest. If VRChat could support this (admittedly slightly deranged) use case, it'd be very helpful!
Log In