a performance rank below very poor
tracked
Seedsy
most of the avatars i see are very poor, but for only one or two small things like light source etc
i usually have everyone very poor auto hidden, but i miss out on seeing a lot of ppls stuff. i think there should be a 'crippling/ horrible' perf stat for things that are just genuinely awful, like having over 500 particles, over 300 bones, over 200k polys etc stuff like that. also we really need to hunker down on teaching avatar creators (esp new ones) how to optimize and why its important, i meet a lot of creators that simply dont care that what they make is horrendous and thats so gross tbh
Log In
°sky
necromancing here: id rather see server-side avatar profiling, and deciding performance rank that way. the current method doesnt make sense performance wise as you can have a say 10k poly avatar, but using a shader with terrible performance that massively increases frame time, but a 150k poly avatar with very little impact to frame time.
this would also allow animator impact to be measured as well
․fox․osiris․
yes please, make another rank level with a different poly limit. cause right now, the second you go over 70,000 polys, the avi is immediately very poor.
there should be another rank, or an adjustment to the ranks, so that 70k isnt the number that immediately makes an avi hop from excellent to very poor.
cause right now "very poor" at first glace could mean anything from "one poly over 70k, or an abomination 1 million poly avatar". i feel like there should be a zone for the avis that are over 70k but under like 300k
seilin
I have the same opinion.
It is bad for things such as lights and sounds that are judged to be "heavy" just by their presence, or for "almost poor" and "extremely annoying avatars" who are slightly outside the category of "poor" to belong to the same group.
(I sarcastically call it "Legendary Poor")
There should be an additional rank and a segregated group of "friends included, if you don't show avatar you will be blocked." I think.
Aléx
true, very poor being the lowest level doesn't make sense. the fact that most avatars are "very poor" indicates the performance ranks aren't very balanced
AnimefanPostUP
I thought about this aswell but i came to the conclusion that we need something better than just a new Rank, but a general Revamp how the Ranks work.
What im Telling here is just a Concept im not saying we should do it this way and that this would be the best way, it just would be the most fair way, since we would technicaly have this option to just say we only show Medium Performance AVS, one reason why this doesnt work is, because we dont want to have everyone, a second is, that the Ranking doesnt really tell if something Performs bad. Its good it Filtering out the bad avatars at the cost of also filtering out others aswell.
Lets get through MOST of the Ratings first:
Polygons : Amount of Polygons doesnt do much at first, having 50k or 150k works fine most of the time, while it multiplies with the amount of Shapekeys and eventually the Shaders.
Bounds Size: Will make the Avatar not Cull even if it probably should
Texture Memory: Doesnt really worsen your Performance until your VRAM is full and RAM is used, if RAM is full aswell it can end up killing your game basically, even tho i never witnessed this phenomenom.
Skinned Meshes: Having many Shapekeys for them makes them actually Worse, having a Mesh split into 2 like Head and Body makes sense to Reduce Shapekeys on the Body.
Meshes: Including the Skinned Meshes it needs to be said that those mainly just draw Performance when Shown, while disabled Assets do draw Memory and VRam even tho they are counted, they arent really an issue
Material Slots: More Materials mean more Drawcalls, having 5 times the Same Material against 5 Times a different one. to disable Parts of the outfit you either need to cull out the Mesh using Masking tricks or it needs to be a separate Mesh/Skinned Mesh
Dynamic Bones: Cant say too much about those, however it can be said, more Colliders and Components the more Performance it usually draws.
Animators: Unitywise Multiple Animators can make Sense, in VRChat theres no real use for additional Animators tho (even if i wish it would be still and option)
Bones: Those arent bad themselfs, however since most existing bones are probably also Animated a higher Animator usage is to be exspected, which means that not the Bones themselfs but the Animator makes the existence of the Bones Performing bad.
Lights: Depending on the Setting they draw just a little, but they are usually quite Heavy on Performance, already one light can lag people out quite a bit.
Particle Systems: Spawning 3000 Low Res Particles is fine, while having just 100 Transparent Particles can cause heavy Overdraw and Lag.
Audiosources: Not sure how those Perform in higher count, i couldnt see a Relevant Impacts when i used 300 of them, even tho its and indicator for a higher Memory Usage due to Audiofiles.
Constraints: Add a general Performance Draw even when activates even tho its just a little, while when active they draw quite a bit.
...
-----------------------------------------------------------
Things that are maybe Relevant but not part of the Stats:
-Animator Clip Property Count
-Animator Layers
-Mesh Memory Usage
Generally its the Amount of Everything that can lead to a bad Performance while single things can also be bad aswell.
i know its Complicated, but i would rather think that it can make sense to have a 2 Part System:
First there could be Maximum Stats For an Avatar of a Rank,
That means it can have a Max of ? Polygons for example.
The Ranks would be Mainly to make sure people can run those Avatars well on thier Computer, assuming people have somewhat a ration between GPU and CPU, you can assume someone with 16GB VRAM should also have a okay Processor, based on that Limits can be assumed and later adjusted
The Second Part would be an overall Summary,
so we make a Chart of each type of Stat:
Each Skinned Mesh: Polycount x Shapekeys = Ranking Value
Each Mesh: Polycount
Memory: Amount of General Memory + Amount of VRAM
Material Slot: Amount of Slots in general /? + Amount of Different Materials
Dyamic Bones: well amount of Colliders x Components i guess
Particles: Eiter Max Particles, Maximal Possible Particles, or Active
...
Another thing that would be smart is a System Differs Between Disabled Objects and Enabled Objects, each Objects gets a Ranking on its own based on its Components and Mesh etc. Once Activated, the Value is added to the Ranking, if it Surpasses the Limit / Ranking the Object will not be enabled.
By that, your Avatar is allowed to contain More Content but isnt getting bad Ranking just because the Components exist.
I Would Call it : Situational Ranking
it would require a good bit of Evaluation and Developement, but would also be an more advanced and fair system aswell.
-------------------
General Issues:
Those not only apply for my system i wrote but are a general Problem:
Shaders are hard to Rate in general,
the Animator in still very complex and it will be hard to Evaluate the Performance of an Animator, which doesnt mean its not doable...
A Lot of Exploits can be made to Avoid the Safety Messured to Surpass the Performance Ranking.
For example in the current system, having one Mesh with Shapekeys instead of 2 can be better sometimes while it hurts the Ranking.
And Using Shapekeys it can be avoided having Multiple Meshes but instead just scaling them small which is bad Pratice that does Avoid the Ranking Problems tho.
Whirlwes
I agree with this. Blocking out the very user poor rank loses out on most avatars you see in normal day to day instances. Having a rank under very poor would be nice to block out avatars that are just terrible with performance. Adding a custom performance rank to adjust how you'd like your viewing experience to be would be even better rather than to be limited to only specific ranks.
AkiBiTa
Best way to fix this is adding a custom performance rank where the user is able to select the limit of each component.
AleynaSand
Agreed! Really sucks to add a simple light source or something and be shoved unceremoniously into the "very poor" category when the rest of your avatar is fairly well optimized - especially compared to the standard eboy/egirls with thousands of individual chain links and 50 skinned meshes...
xxx_red_xxx
You can already filter out very poor avatars, I don't see a need for yet another rank to have to deal with. Everyone seems to universally accept very poor as auto-hide anyways. Maybe rebalancing the ranks could help better reflect just how terrible a specific avatar is.
Whaddageek
xxx_red_xxx: The issue is just using some components at all (eg; a Light) will nuke an avatar rating arbitrarily from Excellent to Poor, if not Very Poor, when it's really not causing much of a difference in in-game performance.
Aléx
xxx_red_xxx: very poor is definitely not a "auto-hide". Most avatars I see are very poor
Bookieson
xxx_red_xxx: The issue is more that Very Poors have a HUGE range on optimization. As an example, some may have over 800k tris and 30+ lights, while others may be a Poor with only 2 extra material slots which makes it a Very Poor. Providing an "Insanely Poor" option or something would be very useful in this situation, since it would help differentiate between "reasonable" Very Poor models and everything else
Fallen Ninja
Bookieson: That might be a poor example (pun not intended), because being very poor on material slots is usually quite a bit worse on actual performance than being very poor on polys or lights (lights, in practice, are usually toggled off, I haven't seen more than one or two avis that use them for anything other than a toy/flashlight or toggled feature). But I do definitely get the sentiment there -- I've myself sometimes wanted an option to only hide e.g. the three worst avatars in the room.
․fox․osiris․
Bookieson ^exactly what you said, 100%
Scout - VRChat Head of Quality Assurance
tracked
Load More
→