#avatar-optimization
1 messages · Page 8 of 1
but not every object uses VRAM, only meshes textures and shaders, for the most part
That would expensive to compute.
Which is why my feature request is better.
no it wouldn't lol
yes but enabling toggles would encourage more people to stuff more stuff in their single Avatar increasing vram
thats all done for the upload process.
its just another text field
count all disabled objects. found. find out the total polygons, materials,bones etc
obviously overly simplified explanation
For the rankings to mean anything they have to assume worst case.
Unless they have their own toggle system (see above) which could account for it and detect when a toggle has been activated, which would be pre-calculated.
I mean... we have avatar tags that don't do anything, and we have future proofing which uploads all assets the avatar uses as a unitypackage that got never used. And you expect them to change the upload process? ^^
at some point they have to.
or they could introduce spawnable props, which would remove quite a few toggleable objects of avatars, and would reduce file and vram size after it's established. Which of course would also use it's own ranking system
Good thing VRAM is a metric now then.
But yes, generally it would probably increase the amount.
sort of good then that hidden things might not actually be active in VRAM and can be swapped out with other things, sucks for people without enough RAM though.
I definitely want them to add props, but clothing wise my suggestion would be better.
Props would be real useful though
of course, that wouldn't help with clothing, but with most other things it would ;)
Also it would make it much much easier to maintain avatars...
Most of my avatars have a pen, and by now I mostly perfected it and even made a public prefab, but all my old avatars still use the older stuff, and I'm just to lazy to update roughly 40 avatars...
With a prop I would just have to do it once
Definitely.
Then with any non-skinned mesh prop you could use GPU instancing and make them real efficient.
And worlds wouldn't need to be stuffed, visually, with prefabs, they could just be popped down.
lets request props then! Because that would actually improve performance >.<
Highly doubt it hasn't already been requested tons of times.
needs to be limited too, obviously, amount per player, total amount in worlds, etc
it has, since years...
Yeah, I've somewhat recently tried ChilloutVR and performance really dips when people start spawning in props.
But they don't seem to have any limits.
when CVR launched, I did took a quick look at it and messed around with a few props, and it would definitely be a good thing. But CVR sucks at many levels to the point it's not usable for me. But they do had a few good ideas (I like the world loading for example, it feels so much more immersive then the loading screen in VRChat >.>)
Dragged my group into Neos after the community I was in had had its test CVR meet, they seemed to have more fun there.
Even though it is quite intense on your computer.
Neos is a good example for why the ranking system was a necessity for VRChat to implement as it is.
I did took a look at all alternatives, but they just can't replace VRChat for me.
most of the time to restricting, or almost empty.
Nah, CVR is the direct alternative, Neos is different and more like Gmod, it is fun for different reasons compared to how VRC is.
yeah, CVR is the closest, but it's also limiting, and isn't really better. Sure they have props, but somethings just straight up work better in VRChat, or aren't a thing in CVR.
But the main issue is that I use VRChat to socialize, and for that you need, well, people.
could always be a bug, make a report ?
VRChat only counts textures in materials that are on avatar in the scene it seems. Material swaps from animations are not counted in.
Ah yes, upload the avatar in all empty standard materials and animate a swap on frame 1 to the regular materials. 400MB vram textures showing as 0 in game.
Intended game mechanics
There's always going to be something needing fixed :p
I can only promise I will use any and all tactics to get around the performance ranks.

can easyquestswitch remove (not just disable) components? I need to remove physbones from my quest avatar
Why not just unpack the prefab and delete the physbones
that is already what i'm doing but I wanted to automate it
Hey there! I'm currently trying to set up fallback shaders on my custom ones.
Ideally i'd want to have it be like how my shader is for the quest version (MatCap Lit with a custom MatCap texture)
At the moment I'm able to set the fallback as matcap, but i'm struggling to have it pick up my MatCap texture.
If anyone has any expertise with the fallback shaders, I would really appreciate the help. Thank you!
You have to use the quest shaders only. If you're tying to make a fall back avatar?
Hey! I've already managed to make the fallback version for quest.
My main hurdle is that I'm trying to set the fallback shader for my pc version since it's using a custom shader
Left is PC right is Quest
what I would want is for my pc model to use the shader the quest version uses if it gets blocked
here's the quest shader
I don't think you can make it like that I believe it is a QUEST ONLY thing when it comes to fallbacks. I haven't seen a PC fall back 😅
I know Poiyomi will let you do this. It's all the way at the bottom.
I'll give it a look! thank you :)
You can specify fallback shaders to be used if your primary shaders are blocked by shield level on PC.
No worries. Have you checked the shader you're currently using for the fallback option? What shader are you using?
It's a custom shader that my friend wrote the code for
I was trying to set the fallback shaders using the tags in the shader file
ah, can't help you there :)
yea it's a little rough hahah thank you nonetheless!
If you're writing your own shaders you're probably prepared to run into a few bumps though ;)
Yea 🥲
I think by default VRC falls back to unlit if that's good enough for you 😅
Yea I was testing out the various tags from this
This page serves as a description of the Shader Blocking System, how it operates, and how shader authors can work with it so that their shader falls back gracefully when a user has Shaders blocked on an avatar using a given shader.VRChat 2021.4.2 Fallback System UpgradeShader fallback improvements w...
oh you're already in the docs and everything
MatCap is an option which I can manage to set
Yea i've been trying to find documentation to figure it out
The thing with setting it to MatCap is that it just gives it a default texture to use for the shading on top of my texture
when Ideally id use the mat cap texture i used here
because you can't get to the UI for the fallback right
Right yea
they mention that you can add parameters to your shader with specific names that it will copy
_Matcap is listed under the legacy system :\
yea I just saw that
it doesn't look like it's copied under the new system
they mention that you can like, use the old fallback system if you dont give it a tag though?
Thank you! I'm probably just going to have to settle for something that's decent enough but oh well
I appreciate you giving some of your time ⭐
There are some smart folks on the poiyomi discord too (.gg/poiyomi) that might be able to help too
oh thanks for the suggestion!
Maybe it's that the texture isn't in one of the shader parameters that are copied?
If it's not one of these, it won't be passed to the fallback shader.
Tbh I'm not 100% on this, and the list doesn't contain a matcap, so I have no idea how you'd get the fallback shader to use the correct texture.
VRC's matcap lit shader does use "_MatCap", must just be that it's not passed from the custom shader since it's not in the standard shader parameter list. :/
Unfortunate.
Maybe put a feature request on https://feedback.vrchat.com
Me sitting here just using rero and refusing to publish on quest 
how to combine skinned meshes in unity?, i have to go to an event in a bit and they require green avatars but due to VRC not giving anyone alternatives to an update that makes peoples life harder AGAIN, the public avatar i use is no longer green, so i need to combine meshes on one of my uploaded avatars
i deleted a bunch of things and im down to 6 skinned meshes but i need to be at 2
the vrc sdk just highlights and doesnt give a suggested fix
also i tried tutorial videos but they keep trying to rip me off by pointing me towards the asset store with 40$ to 80$ packages
Doing it in unity is going to require some kind of utility. Try looking up blender tutorials
yeah you're bound to use blender eventually
already got it i used D4rk avatar optimizer
VRC wants to fight me over Avi size fine XD
How do you know in advance what the texture memory of an avatar is going to be?
SDK is supposed to eventually count that, but right now Thry's avatar evaluator is the most commonly used one.
However, it counts textures and everything else, so not a direct 1:1 comparison.
You can however see how much each texture is taking up, so you could just add those numbers together.
Eventually the mesh (and everything else I asssume) is supposed to be counted towards VRChat's VRAM metric as well, whether they will then up the amount of VRAM each rank is allowed or not is unclear.
Also I'm curious, what happens to all the custom fallbacks that suddenly became very poor after they started counting the texture memory?
To my knowledge they stopped being fallbacks
I haven't seen one personally though and none of mine fell below good since they were so simple.
Thanks
https://youtu.be/8F9K1QEPF6A this video can help you get started too
Hi, I'm Teeh. The VRChat Feb 16 developer update announced new changes to performance ranking. Let's take a look.
Need help? Wanna show off?
https://discord.gg/sippbox
VRChat Performance Ranking Documentation
https://docs.vrchat.com/docs/avatar-performance-ranking-system
VRChat Feb 16 Developer Update
https://ask.vrchat.com/t/developer-update...
Goes over compression and import settings and stuff
Yeah, just watched it
Thanks for the link though
noticed when they added vram check sdk , transforms got a slight bump on pc side (32 is now 64) , nearly all my avs are in the range 26-50~ ish transforms 🔨 🐇 , collision went from 64 to 128 too
does anyone know if there is a way to view avatar file mb total before uploading? ever since the new update with texture memory requirement for performance, they didn't give us a way to monitor properly and min-max our avatars. I don't like having to upload fully in order to see just the wrong texture memory being shown and then going back and forth. There needs to be a better indication for this for creators to make performant avatars correctly. This is of course relating to optimizing so i hope this is the right channel to talk about it. In case you are not aware of what i am meaning, i meant to talk about the same as this post made by ruuubick, but needs to be for avatars.
https://twitter.com/Ruuubick_/status/1166014308918185984
For pc i could careless, but it would be nice to see the full mb file correctly displayed somewhere.
Its already for avatars ? but will require upload/offline
build test doesn't show statistic, i don't think, but what i am asking is if there is any way to view statistic without uploading
kinda like how ruuubick did it here for worlds Before even uploading
it will make things much smoother and without the hassling of going back and forth
Thats after (build & test) , it cant generate a output log of something you have in scene - here is an avatar output , it takes seconds to do offline
packaged avatars can also be found at %temp%/defaultcompany after clicking vrcsdk build & upload but before exiting play mode
cant remember if the world debug script also just look up bundle name after build and shows the same thing .txt does
its still inaccurate for me though
i didn't circle the the compressed size
16.0mb is obviously rounded up from 15.70mb so thats correct
how do you check vram size then
are those rounded numbers
https://github.com/Thryrallo/VRC-Avatar-Performance-Tools/releases/tag/1.0.1 plonk av in there and it throws out numbers, vrchat ignore fbx
thank you for the link, this better work cuz its annoying me as a creator
yeah this one works majorly thanks thulen
finally something to keep track of texture memory
Does forces in physbones like immobile, stiffness, etc mean more calculations? would changing them make my avatar less optimized?
physbones values doesn't play a role in minus or adding optimizing, it is the existing of physbones that plays a role in it. Meaning if you don't use physbones then your avatar becomes performant, If you do use it then it adds onto the loading mb just by a small amount.
In short, you don't even need to worry about the values like stiffness or gravity at all
Okay sweet great to know thank you!
I am new to this and have been watching tutorials, if I upload an Avatar in Android mode As a "FallBack" then another in Android mode not as Fallback,
then as well a PC Version under the same ID, will it use all 3 ? PC, HQ Android, Fallback Android?
Or just PC and Fallback shown for quest?
you would only have a PC and an Android build attached to an avatar not 2 different Android builds
ok ty
so you would want the fall back to be a separate ID from your main Avatar
awesome thank you
that way you could go up to poor on the quest Avatar separate from your fallback
wow literally 0 physbones for fallback
Fallback require Good rate, and Good rate still allow some number of physbone
i think it's adding extra whine due to seperated mesh for visemes
Which you would figure they would want?
What they want?
The Avatar Performance Ranking System allows you to see how much a user's avatar is affecting performance via analysis of the components on that user's avatar. You can also use it on yourself to see how performant your avatar is.This system is provided to inform users what is likely the most perform...
i had seperated the mesh into 2 face for visemes, and then non-viseme mesh
it then whines about it being 2 meshes
You would figure that as seperating Viseme sections it would be More low render cost
It allows only one skinned mesh
easy fix just confusing
at that low poly it doesnt matter
32000+ its recommend to seperate shapekeys to its own mesh
That's the PC recommendations. 😅
how i merge clothes with body so they will be one mesh
I'll make that easier to google for you.
"how to merge meshes blender"
This is assuming they're already on the same armature, if they're separate armatures, you'd have to do more stuff.
Supposedly this could merge clothes onto your avatar in Unity, but might not be what you're looking for.
https://github.com/CascadianWorks/Unity-Mesh-Transfer-Utility
adds VRAM usage, not sure about the other performance impacts, but if you only have them on a separate head mesh, each blendshape has less of an impact.
A blendshape stores offsets for every single vertex on the associated mesh, so the lower the poly count of your mesh, the less of an impact blendshapes have.
ah okay i see, was thinking of making a head mmd world compatible and it adds quite a bit in total to this head
yea as long as the head is separate from the body, you should be fine.
a lot of avatars have MMD blendshapes and not a separate head mesh. 😩
same goes for face tracking tbh.
and I'm guilty of that.
haven't figured out how to make the seam between head and body look seamless. (mainly a problem when you don't have clothes covering it)
but that havent did thing i wanted
i want reduce mesh count
so clothes will be part of body
oh yeah if you want to merge them completely, you'll need to use Blender, unless there's a tool I don't know of.
yes i was asking how to do it in blender
I'm animating the color property on my material, but I don't want it to affect the teeth and I want get the avatar down to just 1 material for Quest, is there a way to do that? Maybe with vertex colors?
You could use vertex colors to texture the character, collapse the UVs to one point, and scroll a hue gradient texture by animating the texture offset
That’s what I’m doing with this guy to get two customizable colors on a single material
https://www.tumblr.com/trev3d/712016931855761408/two-customizable-colors-with-a-single?source=share
two customizable colors with a single material
super basic fox avatar I'm submitting for the VRChat avatar jam
The clothes are always in a white region of the texture so that they never change color
That was my original plan, but I ended up using the base texture slot for a grayscale version of the albedo. Thanks anyway though, that looks really nice!
Hmmm, it doesn't actually look that bad with the teeth getting colored too.
This is just with a material actually set on the teeth, setting the color on the mesh seems to only have an effect if the material is a unity asset :/ Which is not what I need lol
Or not... now it always seems to affect the teeth, and it didn't before (edit: I just set it to a mobile shader without the color property for now)
Question for anyone here
Before I do it
If I decimate the assets on my avatar in blender, am I able to just reimport it over the old fbx, or will it break the avatar? I know I'm able to delete things from the avatar and add blendshapes and weightpaint and what-not and reimport it... but what about decimation?
nobody answered me so I did it anyhow and Yes, you can lol it wont break.
https://github.com/Thryrallo/VRC-Avatar-Performance-Tools/releases new version is out
The major pieces that usually break is when the armature has been modified or scaling of the model.
Question on the 7000 Vertices for Quest optimal, is that the Avatar itself be 7000, or the Avatar and all Toggle Attachments need to be under 7000?
It doesn't count by vertices. It count tris. All tris included in avatar and all the toggle
Ty, so for Fallback prolly just don't do toggleable, and sorry not sure why I said Vert, when I been looking at Tri in Blender this whole time....
Fallback requires "Good" perf rate and ceiling is 10k
Ty
https://docs.vrchat.com/docs/avatar-optimizing-tips
this video prob was in the section for dynamic bones but they are gone now so where is this video ?
🚧This guide is not meant to be the end-all, be-all of avatar optimization! Optimizing your avatar properly requires pretty wide knowledge of a ton of things. We don't expect everyone to know everything.However, we try our best to keep this document updated with the most common things people miss, a...
i need some ideas on what to optimise next on my avi
ive done everything when it comes to textures and separated the face mesh from the body to optimise the blendshapes a bit
anything more that could be of use?
if you really wanan be nitpicky
i guess you could look at your memory usage in terms of uhh
expressions and parameters
it really wont make much of a difference if you dont use many but
yea
🤷♀️
Optimization question here;
I have a sphere that acts as a dome for a model of mine and it's increasing the bounding box by a fuck ton.
I'm not sure if I should keep it one mesh, or split it up into two meshes.
that wouldn't make much of a difference to the overall bounding box size stat
Really?
yes the Avatar stats count everything on the avatar
So Uh, what are the chances this will happen? I really want to make my avi quest compatible but I am struggling to get him down to 20,000 polys to atleast get him to poor
well that message has been there since... idk, the quest was introduced to vrchat. As long as I can remember it's been there.
try try try to get it as close as you can. If Vp avatars are removed from quest it's not like it'll be removed from your harddrive.
Mobile processors stuff
Technically theres those who have modded it and gotten the full potential of the quest headset which without it is apparently limited on its preformance.
Then again, I’m pc vr and I dislike quest modders.
You can't squeeze blood from a stone.
Sadly people do so.
It’s annoying to deal with quest modders.
Especially when it comes to pvp.
Yea i heard some people got to unlock the fps to 90 becasue the screen refresh rate was limited to whatever normative
If they limited the processing power it'd be for something, like battery life or avoiding excessive temperature/current. So if someone unlocked it and their headset gets fried or turns the battery into a volatile pillow oculus won't have any responsibility for it
Hey, do you guys prefer it if the UV's are mirrored for maximum detailed space usage or have one a dedicated space for each side in case you'd want a body tattoo or something that is unique only to one side?
oh god that is a good question
I think people relying on editing images in a dedicated image editor (as opposed to painting in blender or something) will benefit more from the body tattoo case
I assume the UVs still need to be prepped though to take up a certain space.
Well yeah ideally UVs should be generally well thought out
And you could potentially use a second UV unwrap for tattoos as a decal with the popular toon shader if you're interested maximizing texture utilization
Oh they have the ability to do more
You mean having another layer of poly floating on top of the skin for the tattoo?
Trust me
Was referring to using a shader that can use two different UV maps but that would also work
When its pvp and they have guns from walls which you have to hold in your hand they have a client which allows them to control all the pickup items like delete them etc.
It’s annoying.
I'm not well versed on that. Gotta look up how to do 2 UV's for one polymesh later cause this is news to me.
That being said I do wished there was a way to use layered textures.
The video I just posted might be of help?
noob here trying to optimize my avatar. How do I preserve clothing toggles after joining all meshes into one and atlasing textures? I've been told NOT to use blendshapes because they're jsut as bad as having multiple skinned mesh renderers but I can't figure out how to toggle with materials if there's only one because of the atlas?
Not sure toon is even allowed on quest
Yeah you can only use the provided shaders on quest
Does the tattoo Avatar need to run on quest @woeful pecan
Unless someone pulls a cringe nae nae baby and uses a modded sdk which is forcing a shader on a platform which it shouldn’t be on.
Nope.
Its sad how people need a cruch
Okie dokie good to know so yeah just go look around the documentation of the toon shader
It also has RGB tiling detail masks which are quite handy as basically lets you stack four different tiling textures onto the same material overlaid on top of the regular textures
Single material, 3.3k △, using RGBA masked 256px normals in @poiyomi's shader. 🧵👇
285
Back to shader: Can use seamless tiled normal maps per RGB area - tiny (128/256px) normal maps, but tiled around 50-100 times in the shader, giving you a higher effective TD.
You can combine these with an base nrm map for creases and baked normal details etc: (Blend with Base)
wasting 20k tris to put your name in the head is crazy to me
its a shame to buy an avatar and have to clean it up yourself lol
weird narcissism from some gumroad people lmfao
if the point is to make it easier to spot it being stolen theres still way better ways to do that than shoving that shit in there
Like why not just put a quad with a picture of the name like a sensible person
no idea
the avatar is around 500k tris
gonan spend all weekend doing retopo and baking the entire thing down lol
everyone liked that
Wonder how much of that's just in the hair
the hair is not as bad as it looks
from the ss there's 200k on the head alone
head and body is 170k after i got rid of the 20k discord user in the head
jewelry and bones on the hand are like 50k
parts like this seem fairly excessive
Yeah you could definitely dissolve a bunch of edge loops
gonna start with the shirt and just bake it down to a lower poly version
and retexture it
this piece isnt even that egregious i guess but eh
16 skinned meshes or so too
going to have to switch it all over to the uv discards because apparently those are decently performant
Okay yeah you could probably start with some other parts of the avatar
1.6mil poly skull my beloved
you paid for that?
Honestly more models should show like the Avatar stats so you know what you're paying for
fr
There’s a good chunk of paid models like this. The, “lowest I could get it without deleting meshes would be 100k so it’ll never get lower than Vp, why bother?” mentality.
if a paid avatar has such an excessive poly density i'd consider it a scam, and i'm sure most of these models were taken from sketchfab
Or deviantART
yee that too
just with that 20k polygon text it shows this person just wanted a quick buck
And that bag could probably be done with less triangles and not be too noticeable a difference
yea, and that belt thing could have just been a cube with a 3 cut bevel
the assets they got from gumroad and just edit
but the gumroad assets are generally badly optimized in the first place
i cleaned it up to get a decent high poly and now im gonna retopo
how do you guys deal with subdivision levels in blender before exporting? do you apply them or nah? 
subdivision on what
you can apply it during export if you want to still edit stuff later
on my character, I want the smooth look but not the extra geo
bake a normal map
I know I can use normal maps, but it still doesn't look as good
doesnt look as good how?
still looks slightly sharp
send a picture
well, you're going from one extreme to the other
add extra edges where the silhouette is too sharp on the low poly
the normal map cant fake the silhouette
you shouldnt decimate
don't subdivide, to make corners less sharp do bevels selecting the sharp edge loops and ctrl+b
unless it's a static moving bag or something then maybe I would decimate
what stereo is saying is what i would do
I joined all the meshes together not sure if that's bad or not
depends
I mean I only separated the head for the blend shapes though
that should be fine
I don't know if I can go higher, because since it's a game mesh, everything get triangulated, (doubled) in count, so the creator companion tells me I'm just in the "good" poly count range
so technically 66k tris
that doesnt look like 66k quads. show blender statistics
it doesnt look like that either
but meshes get triangulated when thrown into unity for game mesh
lemme screen shot it 1 sec
i see iti n the bottom right
beveling some of the sharp edges shouldnt bring you that much higher
most models exceed 70k in this game
does that avatar have its body mesh under the clothes?
no I deleted most of it to optimize it
I also didn't know vrchat had a "good" bone limit of around 70 something
I have around 170 something XD
from the hair?
ye
1 last thing I can think of
I don't now if this normal map is directly affecting the geo, but might just be driving where I have my shadows
I think this works but not entirely sure
you arent going to have a shader editor like that in unity
whos that?
is his stuff for games or just for the renders
some of his models are for vrchat
if you subdivide your poly count is going to quadruple
yup
hey what are some easy ways to lower texture memory? I've tried to edit these options for the textures but it doesn't change the 'texture memory' value in game
Max texture sizes like the only thing that affects vram as image compression doesn't affect vram just download size
And like if you can channel pack your PBR texture masks that would use less vram as you're having one texture instead of 3
ok thank u
i've changed all the max texture sizes to 256 but the texture memory is still the same aaah
Oh dear that's strange
Currently away from my computer so I can only be of so much help
Hi, I'm Teeh. The VRChat Feb 16 developer update announced new changes to performance ranking. Let's take a look.
Need help? Wanna show off?
https://discord.gg/sippbox
VRChat Performance Ranking Documentation
https://docs.vrchat.com/docs/avatar-performance-ranking-system
VRChat Feb 16 Developer Update
https://ask.vrchat.com/t/developer-update...
i had to restart vrchat, i was doing the right thing but vrchat wasnt updating lol
you also need to completely exit the game to refresh the vram usage value
yeaah
lol
watch that video and get Thry's VRAM calculator, it'll save you a lot of time in the future
Glad to hear it was able to be fixed
And if it's helpful for vram reduction in future the color normal map and the PBR masks don't all need to be the same resolution
Like if you just have a metallic smoothness map that's like a bunch of Big blocks of solid colors you could probably lower the resolution on those quite a bit with no noticeable difference
baked down to 2k polys. fixing this entire avatar is going to take an eternity
Would you by chance know what would cause Thry's VRAM calculator to report wildly different numbers than VRChat reports in game? I have an avatar where the calculator suggested the vram usage was 160 MB, once in VRchat the game reported it was using 330 MB. So then I optimized it to where the calculator was reporting 106 MB, but now VRChat reports 50 MB. So it got optimized a lot, but the calculator's numbers aren't lining up with vrchat at all.
Would be nice if the SDK would just show this metric from the vrc publish GUI, I'd hope that would line up with what VRchat actually reports.
The SDK is supposed to eventually report that, but it is quite technical to make it do that, so it is understandable why it isn't right now.
In any case, Thry reports total VRAM usage, VRChat only reports texture memory usage.
No clue why Thry would be lower than VRChat.
Calculating VRAM usage is also apparently not as simple as counting, so even if both only counted texture memory they would offer slightly different values.
Indeed. Shaders need to allocate their own VRAM to do their thing, and in trying to evaluate that you contend with the halting problem (which is never nice)
Whenever you want to compare VRAM usage statistics, make sure you close and reopen VRChat if you've recently updated your avatar. VRC keeps VRAM stats cached for the session, even if you've updated your avatar.
Adding EVEN MORE to the confusion is that I'm not actually sure the in-game VRAM usage statistic is just texture VRAM - the metric used by the performance ranking system - or texture+meshes or something else.
I think it was shaders as well.
But that is going off hazy memories from when they first talked about adding the texture memory stat.
is there a way i can just... mass delete all the physbone components off my avatar to start clean?
yeah, in both these instances I actually had vrchat closed before even uploading the avatar so each value was from a fresh launch of vrchat. Haven't figured out why the numbers vary so much but in the end vrchat seems to currently be happy with where it's at now so mission accomplished for the time being.
baked the entire sleeve down and retextured it all, its about 1/10th the poly count now
looks OK now
cool
What's the best way to optimize a mesh without destroying the texture, whenever I use something like unsubdivide or decimation it ruins the textures on my mesh, is there anyway to optimize while minimizing uv effects?
Would dissolving edge loops be a good method for optimizing?
It is a great way to do it, much better than decimating.
Can't guarantee it won't mess up UVs somewhere, but you can at least just undo whenever you encounter a place like that.
Okay that's great to know!
It helps if you in the UV editor tell it to mark all of your UV seams so you can see what edges need to stay put for your textures to be okay
I am wanting to add some logic in my direct blend tree optimized fx layer using the AFK parameter - if I add "AFK" as a float parameter in my animation controller will that also get populated as "1.0 "or "0.0" like what happens for boolean synced parameters? (I guess the question extends to other "built-in" parameters that VRChat has like "IsLocal", as well)
What exactly do you do when retopologizing marvelous designer clothes in blender? Are you creating a new plane or somehow editing the previous UVs, does anyone have experience with this?
I pick a plane, put a subduvision modifier then a shrinkwrap modifier and start extruding around the object
you create new uvs and bake the normals and ao and so on
uvs on the high poly dont matter
Yes, all default VRC avatar parameters can do that.
Tip: Keep your textures SMALL! Use a method called crunch compression in unity! You can get even an 8k texture down to 3 MBs! It uses the same amount of VRAM but decreases the downloaded size as well as increases the speed at which a world gets to it's runtime! (in a world creation scenario) It's helpful for people with lackluster internet!
I keep seeing 150 mb avatars in worlds like drinking night and it drives me nuts.
Causes hitching when loading an avatar.
It also decreases image quality.
Also the same size in VRAM
I have barely noticed a difference in image quality, that you would really notice, but a 1 second hitch on load is worth it if u ask me compared to waiting multiple minutes based on internet speed. I usually always go 75 crunch and normal comoression and at max 2 or 4k textures, i would avoid 4k all together but sometimes if u have small text 4k is needed but only on the texture that needs it
If you have small text, use a decal. If the solution to your problem is increasing texture resolution, 90% of the time there's a better solution. Also, whether the compression is noticeable or not depends heavily on what's being compressed, so that doesn't hold true everywhere
I would argue that 2k textures should be the max
True, not sure crunch behaves with different compression methods
But if u have lets say an area that is like a tattoo that had emission and matcap and everything i dont think decal can work
I always go max 2k unless u have atlassed on my avis
My main avi is like i think 18 mb of vram
Still very poor due to polygons
That needs to be brought into blender and re-UV'd then - I'd argue regardless of the resolution, just because of how big of a pain in the ass tattoos are
you also have the option of including a second UV on your meshes for putting tattoo decals on
How would that work?
You just select the UV in the shader
I doubt it will make a difference, since i do believe the uv it has now is pretty well used in terms of space
I'm not talking about space, I'm talking about layout of contiguous regions for e.g. tattoo decals
But 2k ig u ask me if fine, up close u can tell, but move 1 meter away and add vr and lenses and distortion, u cant tell the difference between 2k and 4k except the vram
U mean how big the area for tatoos are?
But again still, if u want to use emissions and matcaps on them? Can u do that with decals?
You can make them emissive, if you want matcaps on it you'd have to write that shader because I don't know of any that will matcap decals out of the box
I normally use a 512x512 matcap to give a metal or cool look to tattoos and an emission so for me i dont think decals would work
But if u have plain old tatoos u can do decals yes
Matcaps i make pretty low res same goes for gradients
Since they dont really make much of a difference
the information they store is also (generally) low frequency, which is why they're usually lower resolution
in my experience, anyway
If I merge my meshes together but have a blendshape that shrinks it down until you can't see it, and use it as a "toggle" will that affect performance or help or hinder my rating?
Using blend shapes in that matter are kind of expensive for performance but would show a better Avatar ranking as it's one mesh and blend shapes aren't currently considered in ranking
🚧This guide is not meant to be the end-all, be-all of avatar optimization! Optimizing your avatar properly requires pretty wide knowledge of a ton of things. We don't expect everyone to know everything.However, we try our best to keep this document updated with the most common things people miss, a...
"except when you're using shapekeys!
There is an exception here! Calculating shape keys can be expensive, especially on avatars with higher polygon counts (>32,000) or when running on lower-spec hardware (Quest). If all your shape keys are on your face, it can be beneficial to split your face mesh from your body mesh, and delete all shape keys from your body mesh. This can be a more advanced technique. Because you have more meshes, it may negatively affect your Avatar Performance Rank, but in reality you'll be slightly more optimized. Remember, the Perf Rank system isn't perfect-- it is just a surface-level recommendation system"
From what I've heard bone scaling is preferable for toggles compared to blend shapes
If at any point in the future VRChat Team will decide to upgrade to Unity 2021 or higher, then above will no longer be true.
Meshes should actually be merged into one for best performance regardless of blendshapes on these versions.
Should I Atlas objects that I plan to have Toggles for in my Hand to the Avatar atlas texture?
Or just Atlas all attachments to each other?
Basically just whatever method doesn't leave you with lots of empty space
Its not even a thing to worry about atm. It barely has any impact on performance in general.
What people should focus on is material count and phys bone count. Polygons is also something to look out for. But generally it's amount of drawcalls your avatar causes
While an engine upgrade may eke out some performance improvements, I guarantee unoptimized user generated content is still the primary performance bottleneck
Unity 2023/UE5/Nanite/whatever disruptive graphics technology you found is not a substitute for proper optimization. A supplement, maybe, but the biggest performance gains have been well documented for a long time. We're not exactly just reading tea leaves when we make recommendations, there's a lot of math and shit involved in rendering a scene, it's just a matter of doing as little math as possible while getting the same result
how do I fix this
It tells you
I was told to use the bake feature but I have no idea what does what
Cats comes with something called material combiner. It let's you atlas all your textures together very easily
for those thinking their optimisation isnt good enough
ive seen ppl running around with this
(the avi wasnt even particularly good looking)
everything about this screams clone system to me
though clones would usually leave all the numbers divisible by a certain number and not have anything be decimals. Maybe it's not
Or 8 different unity assembled avatars once again assembled in unity with all the unwanted stuff turned off, making an 8 layered avatar.
Ive seen it happen
So like, an avatar with like 15 outfits
344 skinned meshes. You have no idea how much i want to see the hierarchy in unity
I've spent so many hours working, remeshing, optimizing, etc my avatar from 150k polys down to 67k, while keeping most of my toggles and to a medium ranking and I still feel like I haven't done enough 😭 though this makes me feel better, knowing that I have probably done more optimizing than the majority of people who use custom avatars
I mean the mesh that I have the blendshape on has less than 32k total polys combined and the object I'm shrinking down has about ~500 polys, do you think that would cause any major performance issues?
not the avatar total but the skinned mesh
I think that'll be fine sorry I can't do more precise research currently on my phone
No, no its fine! ❤️
Something that might make it handy for future if you do change your mind on your toggle methods assign a 100% weight to a vertex group that only contains the object you want to toggle so that you can easily select your objects when they've been combined into one mesh
So you would have like vertex group object one object 2 at the end of your list below the bones vertex groups
Definitely sounds more complex, I might need a tutorial if I were to do it, but I'll keep it in mind if It comes to that point 😄
In this video, we talk about vertex groups in Blender and why they're important! With vertex groups, you can save groups of vertices inside of Blender, then use them to create effects, edit geometry, and MUCH more.
This one's ESSENTIAL if you're going to create live geometry that reacts to other geometry inside of your scenes!
Want to Support ...
Or I suppose with a more simpler way weight paint your toggled objects to a vertex group that's not attached to a bone
Like when you're weight painting you're just assigning vertices to vertex groups with different weights
Oh wow, thank you! haha, I'll watch this just so I am familiar with it, though I might keep my current method because the amount polys I don't NEED to use this method but if I add more and it comes to that this'll definitely come in handy!
~60 blendshapes, (most I use to change the size of my base make him buffer or less) is that a lot? is that gonna cost a lot of performance?
Just figured I'd mention it as it would be easier for the objects later instead of trying to go by like selected polygons that are welded together
Yeah for sure!
Super simple Blender tip that is applicable to #VRChat avatars and optimization.
Before combining your meshes, select the verts on each mesh and add them to a vertex group.
This will allow you to select the affected verts whenever you want!
Found the tweet showing what I was referring with the vertex groups
OHH
That would actually make it so much easier than blendshapes
I might actually go and do that tbh
The video I showed wouldn't be doing toggles at all just more making selection easier
Oh okay
But figured it would be good to do that first that way you have a easier time keeping your stuff organized once it's all merge together into one mesh
Yeah that's definitely true
how does separating the face and other blendshape meshes compare to using VRCFury's blendshape optimiser?
Blendshape optimizer just eliminates unused blendshapes, separating the face can be a slight advantage if the mesh is large enough
ah, understood
I've not had any interest in tools like VRCFury up until this point (I prefer to do as much as possible manually, so im familiar with exactly how everthing is set up in case i need to troubleshoot something) - but that "Blendshape Optimizer" feature actually sounds really useful..... I currently retain basically every single blendshape I use for all the variations of my avatar, and then have to manually, 1 by 1, remove 80% of the blendshapes before exporting the fbx (I try to avoid splitting the things out until its export time so that if i fix an issue with the mesh i dont have to fix it 20 times)
Thanks for mentioning that feature!
Now that VRChat will be available on mobile devices I wonder if they will finally enforce this.
Why would they?
The Quest store has a rule about how bad performance is allowed to get, to my knowledge neither the IOS store nor Play store has anything similar.
To my understanding that disclaimer is just there in case Meta threatens to remove VRC from the Quest store.
And I guess to scare monger people into trying to optimize
Doesn't seem to have worked. .
Because it sounds like now the vast majority of users will be on mobile and I don't think they want the game to run like 💩 for most users.
Especially when google play and app store have score raitings.
They recommend phones with at least 6GB of RAM on android (same as Quest 2), if they could force a limit on phones with only that I assume they will.
Processor wise, the only real issue will be with the CPU overheating, the GPU will have far less to do then what it does with the Quest 2 (especially if their mobile branch is on Unity 2021).
Fixing CPU usage won't be solved by removing Very Poor.
At least not until animators, constraints and etc are limited.
And fps matters less for flatscreen users.
They won't have constraints at least. Even if it comes to IOS I doubt they'd get constraints either
Animators rn are not great though, I'll agree 110% there. Everyone dumping 10 gimmicks on each avatar running 100 fx layers gets painful pretty quick
Yeah I'm not surprised by the ram requirement as they don't want content that would be fine on quest but ram crashes the phone
Going to make it interesting for IOS, where only the top end of iPhones actually have 6GB of RAM.
Ipads seem to generally have more, but would be odd if they limited it to Ipad only.
Also iOS will be interesting because would one even be able to upload a iOS build from a Windows PC
I actually completely blanked on the whole, new build target.
As it would require separate asset bundles compared to Android
I sure hope they migrate to another way of keeping assets then.
There's not really any other way to do it that wouldn't be very expensive for VR chat
Like you could upload it to their servers and then it compiles all 3 builds but that would get expensive
And like something like rec room probably doesn't require that because it's probably just storing a text file looks like all the positions and material choices not actual model data
Given that it's only geometric primitives and splines you can use in rec room
My hope would be that they could figure out a platform agnostic asset bundling system, I really do not want to deal with a third platform, just going to be tedious swapping and uploading the Quest version twice.
Ideally then you could instead have avatars be like LODs, Quest version being the second lowest, PC being highest quality, wouldn't make much of a difference to mobile users, but would be nice for PC.
wouldnt be shocked if they put android rated avatars behind microtransactions
makes no sense why its on mobile
Would be a lot of work, but no reason why they couldn't just swap out asset bundles for something else right?
I don't get what you mean.
How could it in any way make sense to charge for user uploaded content to be shown, how would such a system even work?
Or do you mean the act of uploading them?
If VRChat came to PS5 then I could see uploading to it being locked behind VRC+ or something (since VRChat would need to upload them for us).
you know how theres a bunch of default fallbacks? i mean similarly that
a set of premade, basic avatars
What would the something else even be??
i genuinely havent thought of a reason why they spent time putting vrc on android besides involving microtransactions in some shape or form
It is just a optimized zip file right?
They want to increase the amount of customers that would use the Creator economy when that releases
i dont believe theyd ever ask money for users to upload their own content however
ah yeah
It would have the model data modified for each platform's graphics API so no it's not just a zip file
So at some point the asset bundle has to be cooked for the platform it's intended for
Now the question is is it vrchat's computers or yours
Which is why you have to set the active build Target in unity
So, generalized asset bundles that hold generic data that can be translated at runtime?
Definitely not an optimized method though
I would have to check to see if unity even supports that
Unity doesn't, I have checked before.
It would need to be an entirely VRChat thing
we are at the whims of how unity works
Is a generalized game engine though, no reason why they couldn't import data in other forms.
Neos experimental android build handles showing PC uploaded stuff.
Vrchat is only in unity so what other engines could do is kind of irrelevant
And it also runs at like 6 frames per second and crashes within 5 minutes
I meant that seeing as Unity is a game engine, it is somewhat flexible, so I assume you could ingest data through something other than asset bundles.
Yeah, but it shows up correctly.
I.e VRChat would need to recreate asset bundles on their own probably.
Which is probably not a great return on investment
And you would have to make your system somehow backwards compatible with asset bundles
They will really have to implement third person view on Udon I assume
since most game worlds will probably want premade animations in order to cater to mobile users
How does that have anything to do with Avatar optimization
now that we are talking about phones
Like why would mobile be any different than desktop mode in that respect
A third person camera would be a VR chat feature to implement or something you code into a world completely irrelevant to how well people make avatars
Desktop I think its like 50% of the playerbase. Once mobile is released I think 90% of players will not be in VR.
Actually I wouldn't be surprised if VRChat eventually changes its name tbh.
So things will have to start catering more towards flat screen users
Okay still irrelevant to the fact that this is the wrong channel
Why so defensive? You sound like compensating for something lol
I just came back from breakfast
Fun fact, I highly doubt that.
Quest is already somewhat near 60% on its own.
At minimum PCVR users make up 10% of the rest, would guess much higher.
And yes, this is the wrong channel for this.
Honestly I wish we had those numbers. Rn the only metric we can actually see is Steamcharts, which doesn't really say much regarding the totality of the playerbase.
I wish we could see how many people run Oculus client and Quest
Actually you can see that the VR chat bot displays the total combined user account so just subtract the steam number from the bot number
Quest+OculusPCClient+Viveport 60-50% often, Steam 40-50%. Some times there are more steam users than the rest.
And that the steam number shares PC VR and desktop users
And since practically no one will be using the former platforms to play desktop, it means that there are around 50-60% VR users, if we ignore the Steam numbers that definitely make that at least 10-20% higher.
So you say there are currently about 50% people in desktop and 50% people in VR rn?
No.
I would say that it is at least 60-70% VR, 30-40% desktop.
But honestly, could easily be more in favor of VR.
Interesting, I wanna see how those numbers probably invert as soon as mobile launches. Because PC and VR markets are very niche compared to the juggernaut mobile market is.
Unfortunately that'll be hard to measure because the bot doesn't separate out usage types
So quest users and mobile users will show up identically as far as our current measurement methods
If you mean specifically right now though (during off hours), then Quest+Oculus+Viveport users make up 1/3 of the player base.
So right now there could be more desktop players than VR players, very hard to say since we do not have stats about that.
But after school hours definitely more VR users than desktop
Until IOS joins in I'd speculate that the phone playercount probably won't come close to either desktop or vr
True, but there is actually a way to do this with Udon rn. (there is an "IsUserInVR" node) so I assume it wouldn't be hard for VRChat to actually release those metrics if they want to, I hope they do because that would be interesting.
Currently only the highest end iPhone even has 6 GB of RAM
So honestly there's probably going to be more Android phones that meet the minimum requirements
Yeah the funny thing is Tupper said "mid range phones" I was like wut.
I.e VRChat on IOS Ipad and top end only I'd imagine.
How could they solve an issue that is as static as RAM.
Especially since they don't want to introduce a separate ranking for mobile
So make sure all the mobile platforms have the same ram minimum requirements
Yes and there goes my hope of them increasing polygon count in the near future.
The Tupper already said the quest 3 is not going to increase the amount of resources available for the Avatar ranking system
As they want people crashing less not immediately filling up the ram again
So you're just going to have to get good at optimizing your content for mobile
really? that is good to know, when did he said that?
I am one of the few people on VRChat who has a popular avatar world were every single avatar has medium or better rank on all platforms.
Thing is, its annoying
15k polys is so low lol
In the replies of one of development post I'm on my phone at the moment so that would be a bit tough to search
alright
And they would still be supporting the quest 2 so that would just make it suffer if they increase the stats of the Avatar rankings
Oh
We are staying on SPS, which I think means we won't get less draw calls with 2021, ok. .
Yeah they didn't want to initiate the content breaking problem
Like it would be awkward for them to break the world that's on their website as their brand identity with treehouse in the shade
Reading the post yesterday I thought they had solved those issues.
(and seeing that I think some users have been experimenting with adding it at runtime, I am surprised.)
Yes they solved the issue by just sidestepping the problem by pestering unity until unity gave them a patch to make sps still functioning in unity 2021
So they just kicked the can down the road
Oof.
So yeah eventually we're going to have that content apocalypse if unity says no we're not going to keep patching it in
Would also be nice to have that extra GPU headroom, even if it doesn't make performance magically better in all cases.
The day this is announced I look forward to just watching gen-1.

I'm honestly surprised general one has been the mellow as it is with the whole vrchat is coming to mobile phones ushering in quest kid apocalypse 2
I understand the downsides, but I know I will barely experience them.
For me all the mobile thing does is mean I extra won't ever go to popular publics, but that I can now more easily test my Quest stuff.
So I think it is just that most people don't exactly see it as a personal downside, if you get my gist.
i rarely see questies , maybe 2 a month (no quest worlds)
And also probably the it's initially VRC plus only
cant wait until ppl would need to put in actual effort into their avis
not talking about you specifially
y'all doing a good job here
I mean, they're still not amazing. They're a whole lot better and will only improve but it's still pushing some crazy numbers.
Though, at least animator wise, I feel like people aren't gonna be too happy with the upcoming ones
Time has come again to force people to learn new stuff
What's a good way to reduce vram
Reduce the resolution on your textures
That's pretty much the only thing that's going to affect vram as crunch compression only affects download size
So for example if you have like a metallic map that's only big blobs of black and white you can probably reduce the resolution considerably on that and not have any noticeable difference
Hi, I'm Teeh. The VRChat Feb 16 developer update announced new changes to performance ranking. Let's take a look.
Need help? Wanna show off?
https://discord.gg/sippbox
VRChat Performance Ranking Documentation
https://docs.vrchat.com/docs/avatar-performance-ranking-system
VRChat Feb 16 Developer Update
https://ask.vrchat.com/t/developer-update...
fantastic video thanks for sharing
The VRAM calculation in the SDK doesn't scrub past animations layers checking for new texture assets from material swaps. Trey does, and I think the in-game one also does.
If anyone can replicate it I think I should submit a canny bug
vram checker got an update that also show it
yes that's what's on the right side for me
SDK says I'm 4.8 MB (Excellent) but in-game and in third party vram tools, they show I'm 76 MB, from all the texture swap expressions. Huge difference
i dont think its as bug. its more likely they just kinda forget to check for it.
Do textures that come from animations not count against you in VRam? Shouldn't they?
They should, since it can be abused: https://feedback.vrchat.com/bug-reports/p/1281-texture-memory-stat-doesnt-include-textures-from-matswaps-and-animations
Upload with all slots using a blank new material, mat swap to your 4k/8k loaded materials, shows as ~0mb when in reality it's like 500mb.
Already seen people doing it
Yeah, that needs to be fixed fast since it's gonna be another avatar de-rank when they fix it
That's fun
I'm curious the sdk doesn't check the bundle it creates yk
Like if it is possible to access ingame it's in the assetbundle, so why not search the bundle for images and then assess from there
The sdk counts the same texture multiple times if used in multiple places. If you have 1 material you’re using 10 times it adds each texture 10 times to that total. Thrys only counts it once.
are parent constraints really impactful enough so that i should keep the number of them at minimal?
yep. well not in the small quantity. it's more or less in the total amount based on all avatars in a world. a few of them does not do much. but 100s will
I can definitely confirm this is true. I have an avatar with 28 different 1024 textures that you can swap between, and Quest texture memory reads as 0.12mb (only counts one ASTC 8x8 texture and the matcap)
I did the calculations and even if they do count all texture swaps, it should remain Medium rank
combining both of these bugs, the SDK could report way lower AND way higher - hope both of these get addressed
we are in scary times
I just want very poor block to actually block vram abuse :P
I just want very poors to be blocked from being uploaded as public models :P
not very poor but i'd be cool to have an upload limit above very poor like the very poor treshold plus its half, so like 105k polygons and stuff
this would be amazing
I'm more so talking about Quest avatars, 90+% of what you see in public instances is fallbacks because everyone is wearing very poor stuff
How do I remove or disable physbone transforms? It's clogging everything up!
You'll need to find the Physbone scripts (likely on the bones in your armature) and remove them or limit which bones they apply to
if your textures are not crunched, can try that to get the file size down a bit
I don't think so; I think player freedom shouldn't be limited. But we as players should be able to set limits to what we see. I really think it's the best way forward. There's always a reason a player might want to ignore best pracices and limitations to do one-off amazing things that are horrible performence. That should never be disallowed, I feel.
Which is when I think it makes sense for the Too Poor rank to exist.
It should at least behave as Very Poor does on Quest. And preferably with some sort of timed confirmation screen for showing them so people won't want to show an entire instance of extra poorly performing avatars.
might just be the flu thinking for me but that sounds kind of pointless. you can already choose to show or hide avatars on quest
its just that people don't care
ill rephrase, some people don't get the rankings and most don't care
Making optimized avatars admittedly requires a lot of training and education that most people simply don't have the time (or motivation) for
The tooling being as flexible as it is is a double edged sword and there are always going to be drawbacks and compromises
VRC could spend their time endlessly tweaking every aspect of the performance ranking system ad infinitum, but I'd argue we're at the point of diminishing returns and would personally like to see them developing other stuff :p
android microtransactions go brr
Not needed, what you describe IS Very Poor Rank.
It's the rank that has broken the scales
They can add a timed confirmation thing to it
Adding one worse than it will just give people more reason to make Very Poor content; "Well I'm not the worst one!"
It's the same as extending the limits
You are correct. .
But I think they would need to increase the poly count for very poor then to not upset too many people. Every other stat is really generous.
I wonder if some of that's VRC having different ideas than the community as far as how many object toggles people should be doing
It's never felt like they've wanted people's daily avatars worn in publics with 20-30 other people to contain entire wardrobes. If you're in a world with just 4 or 5 people than taking up 4 avatars worth of resources can be fine argued. If all 25 people do that in a public, then you're gonna run into trouble
Exactly. You can't wear more than one outfit at a time anyway, you don't need them all loaded at the same time.
I usually do a separate avatar for vastly different outfits and such, there's no need to stick it all in one
Should I be or not be separating blendshapes from my main body?
I've read the suggestion is if your mesh is over 35k polys there's some small benefit to separating the face/head mesh
So 23,000 Tri for PC and 9000ish Quest is pointless to separate then (This is not the fallback it will be lower)
Quest you should have only one if you want to be not very poor
oh I guess medium allows 2
but yeah, no point in doing this on quest
false.
it's not a weird shading issue, it's just interpolating between the surrounding verts, add sharp edges to the corners too
Oh? Do you have information to the contrary?
'cause this is literally on VRChat's site (though the number is 32k, I misspoke)
it's a benefit if the mesh uses various blendshapes, which nearly all avatars do, so it's beneficial for blendshape processing time and mesh memory but not for draw calls
Of course, I wasn't speaking of drawcalls.
then blendshape-wise it's beneficial
Right, I'm wondering what part of this is "false" then 🙂
idk really, i just said what i know
same.
yes. the overall complexity. increases. more drawcalls. more overhead from more components
I believe that's why they only suggested it over 32k polys where the benefit may outweigh the other additional complexity, such as the extra drawcall.
blenshapes do not cause more performance degrade. if they dont affect the polygons
it will never outweigh it
okay well I've read suggestions to the contrary by people who've done some research on this. Can't say I have myself.
the potential twofold or threefold in drawcalls causes more issues
well. it comes from experience
I'm sure it does
that's in case of a completely empty blendshape, but in case any data gets modified it will have to process all verts even if they don't move.
On the current unity version vrc runs on, blendshapes are calculated via geometry shaders, wich have to process all verts, idk if it was 2021 or 2022 but blendshape processing changed to compute shaders, which make it way faster
not true
why wouldn't it
blenshapes only affect any directly weightpainted neighbor
whatever polygon group its assigned is the only part it needs to recalculate
i don't think that's how it works when using a geometry shaders, but who knows
shaders do not change it
its all compute
simple containers storing the data.
both cpu and gpu need to work on it
yes but every shader type has its own extra steps, compute are faster because it's just compute, geometry shaders do more stuff as i've read
obviously if it was fully gpu done yea well not much would happen
I want to work in getting my texture memory usage down, one thing I've never did is delete material swaps that I will never use. Will that effect texture memory or download size?
And if so, how in god's name do I do it? I was hoping it'd be as easy as deleting the animation, but it doesn't seem like it
Download size - any textures not currently active and visible won't take up VRAM
But.... they do get counted
well the count is kinda inaccurate at the moment anyway 🙂
https://youtu.be/8F9K1QEPF6A
Get Thry's VRAM calculator and try it out. Worst case you can delete the textures from the project :p
Hi, I'm Teeh. The VRChat Feb 16 developer update announced new changes to performance ranking. Let's take a look.
Need help? Wanna show off?
https://discord.gg/sippbox
VRChat Performance Ranking Documentation
https://docs.vrchat.com/docs/avatar-performance-ranking-system
VRChat Feb 16 Developer Update
https://ask.vrchat.com/t/developer-update...
Alternatively you can just set the resolution on them to 32, it'll take up about 700B usually but unless you're drag racing that's fine
To answer the question you actually asked, though - yes. It will affect texture memory and download size.
Thank you~
all blendshapes on a mesh store data on all vertices, they just offset the vertices by 0,0,0.
hence AAA games tend to separate the head from the body if they have lots of facial animation.
verts that aren't moved do seem to have less VRAM data stored when imported using import blendshapes or legacy normals. This image shows a 30,720 vert object with 10 blendshapes. In max data, all verts are offest randomly on each blendshape. In no data, no verts are moved, but the blendshapes exist.
This only accounts for VRAM. The gpu/cpu calculations for the blendshapes on render do seem to be dependent on all vertices whether or not they have displacement. Which is why its suggested to seperate meshes.
i am aware and this is not a AAA game, and even then they have a very strong control over whats on the screen. Vrchat is dynamic in that sense. there is no way to know how much of each exist within a single frame.
each stored blendshape also only takes up as much vram as it needs in order to store the relevent change. that means if you create a shapekey in blender and only change lets say 128 polygons. then it only stores that 128 polygons and their change. and it takes up a small amount of vram. but multiple meshes will take up just as much. if not more. and the extra mesh renderer are not really desired.
when a blendshape is active it still has to do the change on the mesh renderer though, there's a balancing act where that can be more of a performance hog than an extra draw call.
of course, I don't have graphs, so I won't push too hard on this.
Likely it is far more important for mobile GPUs than desktop. 🤷♂️
What would be better performance wise, My body is clipping through my sweater no matter how I move the sweater mesh it clips through so I am going to try something else what would be better using blendshapes or cutout to stop the clipping?
cutout if your mesh is mid-high poly
theres no testing data i can send and even though its counter intuitive according to the stats doc, some people separate the head from the body mesh so blendshapes have less to calculate
I have the mesh I want to blendshape merged with some others and total it's about 25k tris
hrm probably negligible at 25k tris
i dont make wardrobes for my avatars so i personally just delete parts of the body that clip through whatever clothing im using
im sure someone else can tell you better soon lol
Reason I'm hesitant to do cutout is because someone told me if they had shaders off it wouldn't work
Would that work if I have toggles?
yes
it relies on toggle to hide/show part of your uv using a shader + 1 uv you set up in blender to shove parts into obvlivion
Alas, only works if the viewer has your shaders enabled
(I do this though)
Pretty much any toggle method could be shut off if you strip off like the animations so I wouldn't worry about that too much
UV discard would just always default to On in the case of disabled avatar features. 😅
since that part of the mesh would be shown by the fallback shader.
So probably less awkward when you're just toggling accessories on the Avatar not whole entire outfits
UV discard is not worth the hassle and it's not going to improve anything. plus the shader in use have to support it to. your better of doing a atlas and blendshape the extra accessories
From what I've heard bone scaling is better than blend shape as far as performance
i dont know who told you that but adding extra bones wouldn't do anything but complicate it. since animations would be required from blender
since u cannot scale humanoid bones in animation
Like the vrchat optimization documentation notes blend shapes affecting a singular body mesh gets awkward
🚧This guide is not meant to be the end-all, be-all of avatar optimization! Optimizing your avatar properly requires pretty wide knowledge of a ton of things. We don't expect everyone to know everything.However, we try our best to keep this document updated with the most common things people miss, a...
"There is an exception here! Calculating shape keys can be expensive, especially on avatars with higher polygon counts (>32,000) or when running on lower-spec hardware (Quest). If all your shape keys are on your face, it can be beneficial to split your face mesh from your body mesh, and delete all shape keys from your body mesh. This can be a more advanced technique. Because you have more meshes, it may negatively affect your Avatar Performance Rank, but in reality you'll be slightly more optimized. Remember, the Perf Rank system isn't perfect-- it is just a surface-level recommendation system"
Toggling multiple outfits is very likely to hit more than 32k triangles
the apex of optimizing v.poor avatars
used to be 500k polys and like 50 mats with clothing
now is half a meg of texture mem and two mat slots
how?
vertex painting (thanks rollthered for the idea)
Yeah definitely noticeable it's vertex coloring with how the cyan line between the gray and the black looks
its a public of my main, meant so people can stunt double without killing frames
if that helps
Okay yeah that is some helpful context
now to tinker with the appearance a little so it looks appropriate
as in, not like rubbish
UV discard is trivially easy, but yes, the shader does need to support it.
funnily enough, texture memory has no effect on framerate unless you've maxxed out your VRAM
so getting it as optimized as this is pointless
I like this shiny fella
Still must have been an interesting modeling exercise
thats just outright false. and your missing the point to lol. the point of optimizing is so that we dont run into to much vram. currently majority of worlds supporting 40-80 people easily take up towards 16 gb of vram. if 80 people that is. ideally you want 40 people to have max 100 mb of vram per avatar.
and if 80 people 50 mb max
no matter how easy, the shader support requirement makes it effectively useless for VRC as it is 😦
Pretty much any toggle method is going to run into it breaking if someone strips off the animation controller in the safety settings
Any topology tips for connecting a head and body that have a different amount of edges with their edge loops terminating at different locations?
it's proving a bit of a puzzle because the edge count is both different & there is a seam that could probably do with bridging to keep the shape
I could add more rings to the head mesh to match the count of the body though that needlessly increases my tri count
if we only consider half the head (since it's symmetrical and can be mirrored over) I've gotta find a way to join 24 edges on the body to 20 edges on the head
it's an absolute mess with several poles but I figured... something, out
its easiest just to brute force equal edges by subdividing individual lines, bridge edge loop merge, fix up topology for its quads, than sculp tool slide/relax relaxing the joined area
doesn't subdividing a quad's edge intrinsically create an ngon? one that can subdivide well into 3 tris but might still have deformation problems?
Ok but nobody should ever go to an 80 person world though
Nor have all 80 people shown
thats just not true lol. there are plenty of massive events that have 80 people. and you still need to load them all. just fyi the grey robot is horrible and majority of the times yes you actually end up showing them all. the entier point of optimizing avatars/worlds is to gain a better experience for ALL. it does not matter if you have a 4090 and i9 13900k and have a great fps. while 99% of people have only just recommended specs or slightly high end like 4070 ti etc.
Yeah nobody goes to those events with everyone loaded
Not saying it doesn't happen but majority of people that go there will not show everyone
And to be honest I think you're the first person I've ever spoken too that's been to an event with 80 players in a room
have you actually been to any of them? yes people actually do load them all lol, club events, big events like furality
Hey everyone ! Sorry to bother. I saw it'd be better to split the body into different parts when we have too many blendshapes ( which is my case ) but how do you avoid the seam it creates on the neck ? I have weld vertices enabled on the mesh but it doesn't change anything.
Is there a way at all to remove that seam ?
Normals
While i dont know the exact way of fixing it, I do know that's your normals making the seam visible
So gotta fix those
question how many blendshapes do u have? because it its only a 10-20 extra that cost in vram is worth it over 2 extra drawcalls or more. and in total. and also just fyi every single seperate mesh causes 2 drawcalls thats the mesh renderer and assuming you only have one material on it.
tasteful and optimized version of my main avatar is complete, 67k polys, good performance rank, and only four mat slots (could be reduced but hhhh)
I sure don't load all 80, what's the point of that?
People are talking about which areas affect optimisation the most but seem to be more opinion than fact. VRCArena did a series of tests here https://www.vrcarena.com/avatar-tutorial/performance-test that I'll summarise. Starting from their Poor rated avatar with 67000 polys, 5 meshes, and 12 materials:
- Only reducing texture size increases fps by 4.8%
- Atlasing to 4K without merging meshes increased VRAM usage by 150% and decreased fps by 17%. 2K textures increased VRAM by 30% and increased fps by 3%
- Merging meshes without altasing increases fps by 6.9% (nice)
- Baking blendshapes increased fps by 9%
- Decimating by 50% increased fps by only 3%
- Removing bones to only the basic skeleton increased fps by 12.5%
- Removing contact receivers and triggers increased fps by 13%
- Having a discord call active in the background tanks performance by a non insignificant amount
My conclusions from this and my own findings are:
- on current hardware, reducing polygons (excluding obscene 200,000+ poly models) does not have nearly as much of an effect as merging meshes according to VRC docs (blendshapes on one mesh and everything else on another) and atlasing textures into 2 or so high density ones, and so instead this should be the first step in optimisation. This process also dramatically reduces VRAM usage on its own just because of the reduced materials
- bones and other moving components in general are expensive so dont think using bones or blendshapes for toggles will ever be better than having different avatars for different outfits
Testing the performance impact of VRChat avatar optimizations.
Data is what we need more of in order to find the most efficient use of time, and is the sort of thing that would have helped me when I first started out and didnt know what to focus on.
https://notes.sleightly.dev/benchmarks/
Another bit of documentation that might be interesting regarding performance.
I've looked all over but havent found any comparisons for animations, that is perfect
what are you on about? doing a 4k atlas does not increase the vram usage lol. and it does not reduce fps at all. i can gurantee you that a 4k atlas versus 10 seperate 1k or 2k textures even wont increase vram usage at all. and its not based on opnions. its based on factual information and experience.
what ever this person did in these tests are wrong. since you can't really create a atlas from 5 different meshes without merging them. and even if you could reducing the overall material amount from 12 > 1 or 3 in this case as to what that test says. those 3 atlases will not exceed nor cause more vram then those 12. and to make it worse. they are not stating what size prior to atlas.
quote this even It appears that only atlassing textures makes performance worse.
When we lower the resolution to a max of 2K it gets even worse!. i am sorry but that is also just fake information lol
lowering a resolution from 4k > 2k reduces fps. no i am sorry but that is not possible
you can use the same image multiple times over multiple meshes so yes you can, I'm assuming thats what they did
thats not atlasing then
the image is yes, but not the meshes, that was tested seperately
thats still not a atlas.
atlas purpose is to merge and create a texture based on all present meshes.
the way they assumed testing is outright just putting all the wrong information out.
if your telling me they atlased 9 textures and still have 9 textures its not a merge.
thats just outright doing it wrong.
correct, the point is that an atlased image is useless without merging the meshes
again false
if you have 3 meshes.
and each have lets say 5 materials
you can effectively reduce it to 1
for each
so instead of 15
it would be 3
and by merging it
you can effectively make it better
3 > 1
thats the point I'm trying to make as well
One image texture thats used for 12 materials is still 12 materials
atlasing textures is one of the biggest performant gaining methods regarding drawcalls
and again I agree
you will never have 12 materials in that case.
the point of atlas is to reduce material count
its not to make 12 seperate same atlas.
Indeed, RIP to past me who had to find that out the hard way when I was learning
anyway. i really hope people dont use that VrcArena test. its not conclusive nor correct, nor informative at all. it's lacking information regarding how they apporached the test. what resolutions etc
and honestly producing a proper test is just time consuming
and i fully understand people need that. to see results obviously
plus. doing a good test requires each sub catogory if what goes into making an avatar to be tested. requires a minimum of 10 seperate runs for each catogory with a restart of vrc inbetween to deload everything and ensuring that the tests are valid. then taking the minimum, maximum and average of each is what can be concluded as a good test
I dont think its supposed to be used like that in the same way that JustSleightly's test that Le Poisson posted is
used like that? use what
as a conclusive controlled scientific experiment, it looks like a simple test trying out the most common options to see what each factor contributes
well the test that guy did for animation is far more proper.
the less precise the test, the less precise the results. To me the vrcarena results only provide general recommendations
it does not even provide that. cause of the inconsistent results and information they give.
it will give a person with no experience a wrong impression on whats good. and whats not.
for instance with atlas.
they would think making a atlas from 8 textures is worse then having 8 seperate textures.
while its obviously the complete opposite
How so? they state that the test is for the images only and so must be done properly to gain the benefit
Unless thats not how polytool works, ive only ever done manual atlasing since the CATS tool annoyed me so much
in that they are saying things that will provide the wrong image to people. again for instance with atlases.
A texture atlas by definition is just an image that combines/contains multiple other images
By doing that and not combining anything else you get the decrease in performance that the data shows
not really no
yes its a image but its combined
but what they are doing is not a atlas.
and they are show casing it wrongly to
and misguiding people
Its not misguiding, thats literally the point they are trying to prove
That you shouldn't be using it that way
thats not what its saying through.
Got 96 shape keys ( and about 58k tris )
right and those shape keys how many Tris will it affect?
make a doc yourself if its so awful. the doc should probably put a disclaimer of "these are just my tests im not an expert yadayada" but you act like you know everything about the optimising stats vrc reccomends
the doc comes off more as an interesting read anyways
act? its because i do lol. i work daily with unity. and have done so for over 8 years. iknow full and well what does what and how performant it is. and if i had the time to make a doc i would. but i simply don't. and it's common practice to reduce material counts and use shape keys over extra draw calls. but it all depends on how many polygons that blend shape affects.
i say act bc of your attitude lol
amount of time you spendt in discord , looks like you have plenty of time
if you have your own docs to show people of your personal tests id be curious to see what your high and mighty methods affect but otherwise you just come across arrogant and rude
its sunday. lol
you can say whatever you want to lol. i know what i know. and there is nothing arrogant or rude about it
proven my point lol
naw, i had just seen you still making comments about it after waking up
seem to have enough time
again its sunday. lol or rather weekend. plus doing it would take possibly weeks of testing and documenting. which i really don't have time for. and second taking a small amount of time to guide people is more reasonable. and preferable
TIL that I can optimize the heck out of my avatar by reserving all the shapekeys a seperate face mesh, with the rest of the AVI as a seperate, static mesh
well, separate skinned mesh usually
and all that fun stuff is goin right out the window when vrc updates to unity 2021 so learning it this late in the game is uh... plainly, a waste of time
is there a timeline for the update?
Just that it was announced in progress in the march 30th dev update
closed beta next WEEK?
I'm glad I left shape keys for last on my giga-optimization adventure
thats one of the many reasons why. but also because of what a blendshape requires versus a extra skinned mesh renderer.
a skinned mesh renderer is a additional component, which in turn creates one more draw call + x amount of textures. and it requires both the cpu and gpu and vram, and it's complexity in turn also increases drastically. on the other hand a blendshape is all but a container of information holding the vertices position, rotation and it takes up only vram and requires cpu and gpu once it gets activated so 0 > 1 or 1 > 0. and if i remember correctly Vrchat uses Single pass instance rendering. so it doubles the draw calls so 1 is suddenly 2.
A lot of talk about blendshapes and whether or not to split your meshes.
Here are some numbers about this.
https://gist.github.com/d4rkc0d3r/f77c1e96d4aeefd0d1eaf13fb096a2de
definitely looking forward to the unity update now
Which is more performant? One drawcall with a 4k texture or 3 drawcalls with 2k textures?
Not how it works.
Draw calls cause direct performance loss, VRAM usage only eats into performance when it runs out, ie indirect performance loss.
Also since it is unclear, is the 4k texture an atlas of the 3 2k textures?
Well you are using one extra 2k texture worth of VRAM.
But in the end we aren't talking about much of an impact, in this case.
I would go for less draw calls.
Even if it is only 2 less.
That's what I figured would be the lesser of two evils
huh is the VRAM measurement in the SDK bugged? Thry's tool, as well as if I just add up the numbers manually, it comes out to around 9mb... but the sdk shows ~27mb. I'm used to a little difference but this is waaay off
thrys shows all referenced materials textures and mesh data, sdk shows all referenced materials textures at the time you first looked at the build page (might require a refresh by entering and exiting play mode), in game shows as uploaded loaded materials textures only (no mesh or mat swaps)
Ive got this Error. I know how to fix that but my avatar has 20 Audio files (some very short SFX, others are full songs). Whats more performant? Hitting the load in the background checkbox or changing the load type?
well you have to do enable it otherwise u cant really upload i am sure
I can also upload it with Load in Background unchecked but Load Type changed to Compressed in Memory or Streaming
I'm just not sure how it infects performance and when you have to use Decompress on Load and when Compressed in Memory or Streaming
I have nearly everything on this avi. From short SFX to whole Songs to a clip which is 24/7 looping
there wont be any performance hit.
Hey, is it a good idea to just bake all of your materials/textures onto one texture file in blender so you only have one material for your model?
It is a good idea, but if you see your baked texture resolution is excessive or some parts of the avatar need a different shader you can split it on more than one material.
it's good for performance but you can always have more than one, the thing is to not go to a high material count
I usually try to aim for two, but yeah, that method
alright, my dude is pretty fuggin' simple using the same standard shader so i think all i need is one
Am i misunderstanding something here?
i thought it was possible to combine mutliple texture images into one in blender, everytime i try to do it it messed up
Do you mean Texture Atlasing? I found that doing it on the newest version of Blender with Cats Plugin cause it to break the texture mapping, but when I downgraded to Blender 2.93, it worked just fine.
There might be a better way to fix it. I'm just mentioning that downgrading Blender is what fixed my issue.
also it probably doesn't have to be 2.93 specifically, that's just the only version I tried.
For Blender version above 2.9* you need to use development version of CATS.
it's not a performance issue for my 1 material to be 4k, right?
i just made it so to make sure when baking the UV islands have enough space in-between each other
i figured it out, basically i had to bake textures from one UV map to another
https://www.youtube.com/watch?v=wsO1eozb1Qk for those that have a similar issue in the future and stumble across this searching this channel, here's the tutorial i followed
In this Blender tutorial I will show you how to bake textures from one UV map to another UV Map.
● Texture Baking for Beginners: https://youtu.be/Se8GdHptD4A
● Texture Baking Tutorial Playlist: https://www.youtube.com/playlist?list=PLsGl9GczcgBvJPh7D_ITafvmTW7ZzQTEr
● UV Unwrapping for Beginners: https://youtu.be/qa_1LjeWsJg
● Wood Texture: http...
3 of my 11 materials were textured based, so i had to follow the above tutorial for them
the others that are just solid color materials, i just followed regular baking stuff
what 8 materials and 3 textures smushed together into 1 4K material looks like
figured it out, forgot to delete the original UVMap
been there, done that... like 8 times
glad you were able to figure it out

yea
841 bones??????
The fact that this doesn't even get close to most badly optimized avatars is horrible
Im gonna puke lmao all of my stuff is Poor or better on Quest and Medium or better on PC
Sometimes i wish vrc added the avatar cap again, i've seen people showcasing 1gb vram/1M+ polygon avatars as if it was nothing
most of my stuff is medium on quest and good on PC with only one avatar being poor on quest/medium on PC, which I plan on changing actually since poor is hidden by default moment 
wow that must have lots of assets applied via the stupid "duplicate the whole armature" method
I'm actually impressed that it's 24 skinned meshes at only 74k polys. Usually when you see an avi with that many skinned meshes it's hitting the 1M poly count.
What the-
Should I disable physbones that are not currently used (when specific clothing item is off)? Does it have a significant impact on performance if I leave them on?
PhysBones will continue to calculate as long as the script component isn't disabled, either directly or via its parent(s) being disabled.
So it's better to disable the physbone's gameobject when I disable clothes, gotcha
Correct. Assuming you disable clothes by disabling their object, you can simplify a bit by having the PhysBone component ON the clothes object.
I'm trying to optimize an avatar for the first time. Very new to Blender, used CATS plugin to combine some skinned meshes and reduced triangle count from just over 70k to just under it.
I exported the model as an FBX, and imported it into Unity. I didn't touch it at all and tried to see what the stats are when uploaded, and it's saying I have 2 billion polys??? Does anyone know what's up?
"In there under "Meshes" there's a checkbox called "Read / Write Enabled" ensure this is checked on for all meshes on your model"
"In there" but where is "there"? I'm not too familiar with the interfaces
Just in the sdk menu, auto fix everything except maybe the shader keywords
oh wow, I'm dumb haha. That fixed it. Thanks for the help guys 
Does anyone know if I import an fbx that has it's own armature with bones weighted to a mesh (skinned mesh renderer) - such as a hat with dangling things on it - do the bones on that fbx count towards vrchats bone count perf stat? Or does that only count bones from the avatar's aramture?
It counts it from everything.
Ah, so all bones in any "armature" ? Cool gotcha
OH ROTO I didn’t know you were in here!! If you need help with avatar stuff I can give you hand later :0
So i have a few avatars I found that I want to optimize in order for it to be viewable by quest players. Where should I start?
The Avatar Performance Ranking System allows you to see how much a user's avatar is affecting performance via analysis of the components on that user's avatar. You can also use it on yourself to see how performant your avatar is.This system is provided to inform users what is likely the most perform...
Generally skinned meshes and materials down to preferably 1, basic skeleton without too many extra bones in the hair, tail etc and get polygons under 20k.
Serious quest optimisation is challenging if the original is as dense as most PC avis are
Yeahhh this is gonna be a challenge.

Doable
Delete anything under clothes to start, decimate the hell out of the body, but don't touch the face because it will screw up the blendshapes.
You might be a floating head on a stick if the avi doesn't give you much room though 😆
The hair and face take up half of the 60k polys on my primary PC avatar, so if it was me making a quest avi I would make it mostly from "scratch" (assembling quest-ready parts) but thats only because I have no patience
Just bake your whole avatar onto a flat plane and call it a day for the quest
a single polygon that is just a flat png
it is absolutely doable if you're willing to put in the time, a lot of youtube tutorials can help explain the basics there (eg the deleting of the mesh underneath clothing) as theoretically the principle is easy for what you want, a basic quest viewable one. Read through the article a give it a go, whats the worst that could happen
Honestly though, at some point, if you really want to optimize in an optimized way, you have to probably construct a lower poly model and bake the normals and textures from the high to the low. You can usually do a weight paint transfer well enough, but you would have to UV unwrap the low poly and make blendshapes for it.
New to unity and trying to swap my skinned meshes to static meshes, does anyone happen to have a link to a walkthrough? Would be much appreciated as it dosen't seem to be as straightforward as adding a static mesh component and dragging the material onto it
thats not necessarily how it works
As a generalisation, something that moves and deforms with an armature (eg the avatar skeleton) like skin or clothing cannot be a static mesh
i believe exporting a bare mesh in blender without an armature makes it static but I may be wrong if anyone can correct me
Ill give it a shot ty :)
two of my avatars have been having this problem where It says its too big for Quest yet I had uploaded avatars that had more things and generally bigger file sizes but all of the sudden, it says I can't upload to quest even when the avatars small.
all of my past avatars were poor quality and were bigger sizes then my current model. idk its a bug or new feature
I believe you are right here 🙂
The 10mb limit has always been there for vrchat quest, your workaround is to reduce file size, like textures or animations
Really? Strange, It feels like its bugging out since I had a avatar I ported to quest little while ago with no 10MB problem in the past, but when I looked at the avatar now, the SDK says it's over 10MB, when it was clearly not since I could port it to quest just fine then.
i'm not sure why that could be, if it's not that you added something or any material has an unused texture saved it might be some sdk update where they changed whatever calculates the avatar size
Perhaps, I could always so a test and put all my materials together (though there are only 4 with bumpmaps)
I even tried making my avatar really small in Blender and crunching all the textures but the SDK still said that the file size was the same as the PC verison (which is impossible since I made the textures the smallest size they could be.)
Have you done crunch compression for the textures
I have done crush compression for all my textures, including bumpmaps.
mesh can be over 10mb depending on size/blendshapes , id check how large that is if textures not doing much, crunch is last thing id do
if you set crunch to 100 its not doing much , 50 and below reduce it alot but tend to get ugly
I could try manually crushing down the textures using my art program.
Its weird since the height/size of the avatar is fine, it's even below the POV ball thing for seeing.
And I have no blendshapes at all on my model.
Though its bit high on poly, I have a higher poly avatar that's just below the maximum limit, but still that avatar could be ported to quest just fine.
I gonna look at the unity file for that avatar later to see if the whole 10MG problem message pops up even even though I ported to quest long time ago.
Do you have any animations that take up a ton of space?
No animation at all
Except for the toggles, which aren't even animations, they're just transitions for props with poiyomi shader
Which dont ecen work on quest so I'm sure it's not that.
I'm pretty sure I dont have unused textures still saved since I always check my blender file for duplicates of the same material and always delete ones I'm not using.
Its very strange ,could probably be a problem with my computer but not sure.
What are some common things I should atlas? Should I be atlasing my clothing, or stuff like atlasing all the textures on my face? Like eyes, face skin, mouth, etc
Atlas based on how its going to be compressed. Opaque rbg vs cutout/transparent rgba. Atlas everything if the texture import settings will stay the same between use cases. Having only one copy of the texture that is used multiple times is the idea
Keep space/resolution in mind though, a 4k texture is four 2k textures. Loosing detail is not the ideal situation but sometimes things like solid colors can be squished to basically nothing
Leaving more room for details yeah
So if lets say my pants and shoes that are 4k textures were atlas would I be losing details?
Oh yeah, can preview the loss just by setting the texture to 2k in unity texture settings
From what I watched the more the UV is scaled the better quality it'll be, so it's a matter of figuring out what needs more detail and then scaling and fitting everything else
starting to think a update broke the SDK or my computer has a new problem since how are these the same MB size when one has no toggles and the other has alot of toggles and polygons
Are you using VRCC?
i have it downloaded but didnt use it on this unity file yet. let me add this file in vrcc
is there a thing to click that could fix this in vrcc
I’m VRCC you just go to manage project and remove the SDK and reapply it, seems to sort out a lot of issues
i somehow fixed it just by trying again to upload on quest and it let me, and the error isn't on the sdk anymore?? guess it glitched out or something
The sdk report the file size from last build. It isn't file size of avatar you're selecting.
So If I have one specific object as a separate mesh renderer what is the better toggle method, UV Tile Discard or Just Animating to turn it off
I'd lean toward toggling the mesh renderer personally. UV discard won't work if people are seeing your avatar w/ shaders turned off.
Awesome! I personally don't mind if they see my other toggles if I have them off but this renderer specifically I'd like everyone to see it when toggled or disabled
toggle requires animation on anyway , but if they have shaders off > no culling and majority of pc ones terrible then , more meshes - bad , so i stick to uv discard (fallback shaders ick)
Fair, merging meshes/materials and uv discarding is def the better option. I think in their case, if they can't merge/don't want to merge that seperate mesh toggling it is probably the easier of the two options. Like if you're gonna uv discard you should probably go the full mile and merge.

