Better Player/Avatar Culling for Large Instances
complete
Noe
The way I see it, players you can't see or hear shouldn't have any noticeable impact on performance, but currently that doesn't seem to be the case. Framerates consistently plummet in instances with a large amount of users, regardless of whether or not you're in the same area, room or building as everyone else.
My guess as to why this happens (aside from complicated world gimmicks) is that things like IK, voice and various whitelisted avatar components are still taking effect for every user. I don't know how feasible it'd be to set up some kind of automatic or manual culling system, but something as simple as locally blocking players who aren't in your line of sight or the world's defined voice falloff range could be a godsend for creators who like to make big, expansive worlds with multiple hangout areas.
To clarify, "culling volumes" are already a thing, but they only really help cut down on draw calls.
Log In
Fax
complete
Thank you for your request!
Avatar culling has been massively improved since 2018 with the addition of networked IK, avatar hiding, and more.
We'll continue making performance improvements. Please let us know if there's something specific you'd like us to look into, or if you have any other feedback!
kawashirov
Fax: It's improved, but still a thing. If you join any large (like 60+ ppl on some community events) instance on lowend PC, even if you turn off every avatar, stay away isolated from everyone and try to not look at anyone, you will still notice high CPU usage and frame drops.
I suspect it's related to networking subsystem, as it seems to be still recieves and decodes data even if it not used by client at the current state.
May be you guys should dig in this way? Like for example a lot of first person shooters just not sending data about unseen players, it's both protection against hackers and performance optimization.
You were able to develop own Udon instead of playmaker. Maybe you are able to drop Photon and make own networking for vrc-specific problems?
Faxmashine
Agreed, this is something that needs to be improved! 🙏
In a full instance, if
all
other players are culled... one would expect performance to be much better than it is now. This is very noticeable for PC, and disastrous for Quest.There's not much we can do as world creators to make large instances run well. Occlusion, frustum and far plane culling aren't very effective for players.
xxx_red_xxx
An ability to turn this off entirely for your world is needed then.
This would entirely break avatar PVP.
Being able to only shoot at something within close line-of-sight is gonna suck.
And before you go on with 'hurrr avatar pvp isnt an officially supported feature durrrr just use worlds for it' remember that it has its place in the game. I personally love the ability to pit your creations against those of other players instead of being limited to the stupid shit the world creator left in the map for you. If avatar pvp ever breaks, I would almost certainly quit vrchat forever. And I know quite a few of my friends who probably would as well.
So for god's sakes devs, if you add this for once do something right and give world creators the option to turn it off in their world.
Al Capone
This would not be a good thing for people who use components on their avatar that are based on synchronisation. For example, if people are disabled when distant, then you wouldn't be able to see the writing of people in other areas without watching them do it. Similarly, the animator trick to easily disable and re-enable objects would be broken for people out of view. Similarly, this would affect effects spawned through particle collision (which is another way to spawn items).
My guess is, without proper integrated systems for letting people do things that are synched to everyone, this would probably cause more problems than it solves without a thorough investigation first of what the most expensive components of distant avatars are.
One rarely used feature of dynamic bones is distant disable. Maybe there should be more effort to push people to use that?
H
Hugo Zink
Al Capone: I'm pretty sure animators
already
desync when out of sight or out of range, unfortunately. Your animations seem to get culled, your IK and networking just doesn't.Distant disable is already forced on dynamic bones.
xxx_red_xxx
Hugo Zink: I've had mixed results.
I create PVP avatars for a concept known as 'avatar PVP' (using 'send collision messages' to allow us to kill each other).
Sometimes when shot at from somewhere I can't see it does register (I can hear the gunshots), other times I can't. Whether this is a glitch causing me to NOT see it or animator desync out of range not working ALLOWING ME TO SEE IT I have no idea.
GlacierJX
ooo this would defenitely great!