Introducing LOD (Level of Distance) significantly reduces the difficulty of decimation.
Furthermore, phrases like “This comes with an LOD model, so performance is taken into consideration!” can be used as advertising slogans for avatars and clothing.
A decimation that doesn’t fail at 0m would be quite difficult.
However, at 5m, some failures become acceptable.
20m is even easier.
At 50m, even considerable roughness wouldn’t be a problem.
Just pointing out that not every VP avatar is that perf rank out of ignorance, negligence, and/or selfishness. In fact, a large portion of your favorite current features only exist today because a user put together systems that would, on paper, be VP on an avatar. Contacts, VRC Constraints, even 3.0 was heavily influenced by hacky user creations. There are many examples of why outright hard limits would’ve been catastrophic for feature growth. So I’m glad that never happened.
Understand that I realize this isn’t about thoughtful creators breaking the bounds out of necessity, but many disregard exactly those people.
One thing I want to globally reply to is all the people saying that users can just use their avatar blocking settings.
I do not think that is a good enough reason to not use this feature. The point of this feature, as I have said multiple times, is to enforce a consistent experience for all users. If you are joining a group instance, the group owner has the authority to make that determination.
Now with that being said, I’m definitely understanding now that, of course, not everyone has the ease of access to optimize at least polygons. There are many tools available even if some of them are paid, so I’m going to always advocate for people to at least try that. But I do understand that there can be cases where trying to get a particular avatar to work is very difficult.
But I would like to point out something again:
This isn’t a reason for this feature to not exist or to not be used. This is more of a reason for the Avatar Creation Pipeline to be improved.
My hope personally is that existing tools can be improved or new methods could be found from the pressure of dense group instances having minimum avatar requirements.
So I would hope that we all as a community can focus our efforts on trying to improve the avatar creation experience so it is easier for everyone, rather than trying to prevent good features from being used or implemented.
Not to mention, we should be encouraging avatar base creators to have their stuff relatively optimized out of the gate.
I’d also agree that the Avatar ranking system could be improved. But that does not include increasing the poly count as Tupper has already said, plus I still think the existing system is good enough and it’s not necessary for it to be improved just for a feature like this to work.
I agree, with Unity standard LOD components, RAM/VRAM access might not be reduced by a significant amount.
However, I believe that the RAM/VRAM access problem can be avoided by VRC developing a new component that swaps High-Polygon and Low-Polygon Objects with GameObject-Active-State. Well, it should need attention to the overhead of switching over, though. Also, it will likely affect the camera as well.
Custom animators and Object-State usually cannot coexist, but since the AnimationClip path is immutable, this can be solved by inserting a proxy object and rewriting the object path of the clip.
About Main-RAM Size Over, there shouldn’t be much of a problem. Even if it overflows from 32GB of RAM, I don’t think the impact from “unused data” sent to the Disk cache will be significant enough to warrant concern.
If I’m understanding this correctly, even if you did this you would still need to store both versions of the mesh in vram/ram. At this point we may as well just have a system to allow you to upload multiple rank versions of your avatar for the same blueprint ID which is a canny post that I already submitted. But I’m not really sure if VRC is going to implement that because of imposters.
Toggle the active status of GameObjects is a hack I used when dealing with a large number of original meshes in my world, but data that isn’t accessed won’t stay loaded.
Game engines and operating systems are fairly smart, after all.
I mean at some distance the imposter avatar itself is a LOD, this is something I suggested a long time ago when fallbacks and imposters were newish, if I set my PC to only show avatars within 20 meters… outside of that range show me their imposter/fallback vs the grey diamond. (Or at least make it an option)
My idea is something like that we should use threads instead of child processes.
The problematic part, the high-polygon mesh, would be replaced with a low-polygon mesh, but the materials, armature, and other components would remain the same.
new component that swaps High-Polygon and Low-Polygon Objects with GameObject-Active-State
After thinking about it for a while, another idea came to mind: replacing a reference to the Mesh using a Script seems easier and more reliable than interfering with the hierarchical structure.
I’m having trouble replying. I’m sure I’m creating the reply using the button in the bottom right corner.
I’m a week late to the discussion here, but I have a point to add to that. If you added a Poor range between 70k to 80k, for example, that might encourage people to try and hit that range instead of saying “fuck it, it’s Very Poor anyway” and adding stuff til they run the average 150k+ 300MB monstrosity that scours the dancefloors. Not like most of the people who use these kinda avatars usually care anyway, but if at least a handful of people can be goaded into trying, I’d call that a net positive
I’d generally agree here, but it’s important to understand if they do end up increasing poly limits, 80k will become the new standard and now suddenly even that isn’t enough .
While I’d like to see a mild poly count increase this is likely not happening due to the reason above.
I’m all for the push to make creators make more optimized avatars, but this approach not consistent.
Why allow some to bypass, if the devs allow the group owner overrides on certain ranks? At the same time it would mean nothing if we can’t override to show our friends?
I see groups abusing this, making VIP ranks to allow you to show as very poor in their instances. Please let the end user control who they see, or allow NO bypasses at all. Make the approach consistent. Group owners ask for optimized avatars, It should apply to all with no rank to bypass.
Some events have a group of people watching or listening to one or a few performers. Josh osh adventure comes to mind.
For groups offering to let paying VIP show as very poor, I don’t think the benefit is necessarily there, the existing systems are still in place, and I know I won’t turn on someone’s avatar unless I actually know them. Like if I see a group playing around like that, I’ll be less inclined to participate, and I think most people would be as well.
Is this going live this week? I see this thread closes in two days and I think this is still a forthcoming change to VRChat
I understand there are performers at some events, I frequent comedy club events in VR. I do understand that some would want to see/show the performers; I get it.
I see this system being too overbearing if the group can pick which performance ranks show for certain group ranks, but I personally can’t override to see my own friends;
The devs want to pressure people to optimize, it should be uniform pressure for all to feel the need to optimize. I don’t see why the performers are excluded, especially if I can’t override to see my friends; the two conditions together does not seem like a fair implementation.
I’d take it a step further; if a group limits certain ranks, people should not be allowed to go in. Group moderators might often still go around asking people who are appearing as imposters to change avatars still to a better performing avatar. I know this was considered but rejected… but implementing this system; which is inherently make even more imposters show up. I want this to be much more an all or nothing approach;
Allow a group to block certain ranks of avatars; no entry if you are over; and no ranks to bypass. This way it’s a clean clear cut line; no special treatment; no forcing people to see imposters.
Group and instance gets better performance
People don’t get to see lots more imposters
Group leaders don’t need to ask people in imposters to change to something else
Everyone feels equal pressure to optimize; even performers.
That seems so much more clear and fair.
(To the devs, I am very aware this system will not override my local settings if I have a more restrictive setting, ie the group can’t force me to see very poor performers/vips if I have very poor avatars set not to load on my local system)