#avatar-optimization

1 messages · Page 5 of 1

wooden niche
#

how do you do mesh particles on quest without exceeding the skinned mesh renderer limit

#

can you make a mesh particle with only a certian PART of a mesh?

ivory sluice
#

Why would you use skinned meshes on particles tho

strong kestrel
#

can someone tell me why the sdk is telling me my avatar is very poor? everything is green except the ploy count which is 71k

stray tangle
#

the moment you pass 70k, you go to very poor

strong kestrel
#

over just the polys??

stray tangle
#

yes

#

your ranking is not an "average" of the stats

#

it's the worst of all the stats

#

if any one stat says very poor but the rest is excellent, you are very poor

strong kestrel
#

😩

stray tangle
#

now I'm not saying that's the way it should be or that it's a fair system, it's just how it is

strong kestrel
#

well thanks

#

yeah, really wanted to get my guy into some rave events, they limit avatars so no very poor ones.

stray tangle
#

you can remove some polys easily by just dissolving loops

#

alt + click to select a loop and ctrl + X to dissolve it

stray tangle
#

just be careful not to dissolve seams otherwise you'll have a bad time lol

ivory sluice
#

i confirm 30% of mt avatar making time consists fixing the fuckup i did by dissolving seams

buoyant holly
# strong kestrel https://tenor.com/view/write-that-down-taking-notes-school-universities-universi...

https://www.youtube.com/watch?v=8MkgXcidxg4 this video shows some dissolving Edge Loops if visuals help

Did this video help you? Consider sending me a tip on Ko-fi! https://ko-fi.com/sippbox

Making optimized Quest models is hard. But it doesn't have to be! With recently updated polygon limits and fallback avatars, it's a better time than ever to create something that represents you to Quest users! Hopefully this tutorial will help you out!

0:00 ...

▶ Play video
buoyant holly
strong kestrel
#

much appreciated!

buoyant holly
#

you could also check to see if there's any faces completely hidden under your clothing

hollow root
#

I did everything Flipping right!!!, Why is there no texture, and why when I extracted materials, my material is gray or white, why is my material not here

zealous wigeon
lone tiger
#

Material settings and textures do not transfer between Blender and Unity. You are meant to set them up again.

hollow root
zealous wigeon
#

That imports it (and fun fact puts it into a folder on your computer, because the assets folder is an actual folder on your computer, all files being unmodified, you can import by just dragging things into that folder.)

hollow root
# zealous wigeon Yes.

But it doesn't allow me to put texture into the model itself, it turnes the cursor into a no sign, just show a screenshot of this

zealous wigeon
stray tangle
hollow root
ivory sluice
stray tangle
#

I'm just too cool vrcSnowFlake

hollow root
ivory sluice
#

Sacred really got the ice 🥶 🥶

hollow root
#

I swear to god, this Rig type non-humanoid issue will torment me everytime from now on, Why the rig type says Non-humanoid?, I did everything for god's sake

stray tangle
#

did you set it as humanoid in the FBX's import settings?

#

also, make sure to never unpack your model

hollow root
hollow root
stray tangle
#

unity doesn't just "know" the model you imported has a humanoid rig

#

you need to specify

hollow root
slate thunder
# hollow root Where do I click or do to specify?

This is covered in like the most basic of avatar creation tutorials. But click on the fbx then go to top right and change it from generic to humanoid first. Then "configure" and make sure all the bones match up with no jaw bone

stray tangle
#

^ the chest bone should be mapped, but the jaw should not be mapped

slate thunder
#

corrected :)

hollow root
#

Should I map upperchest too?, please reply

stray tangle
#

if your model has one, yes

hollow root
#

My model has no upperchest I think, does that mean I am doomed

stray tangle
#

no

#

it's optional

hollow root
#

I swear everything is automatically set, the non-humanoid rig type is just on to me, and I did nothing flipping wrong, why all the help doesn't work😡 😡 😡 😡 😡

#

I'll try these fixes now, I hope they work, thanks for support

#

I swear I did all the requierments, and it is still like this, remember when you said that I need to drag model to scene again?

stray tangle
#

can you screenshot your Rig tab in the import settings, aswell as your hierarchy?

#

also, which object is your avatar descriptor on?

hollow root
#

Here you go bro

stray tangle
#

what object is your avatar descriptor on

hollow root
#

This object, the avatar model itself

hollow root
#

I pressed apply I swear to GOD'S SAKE, is there any armature suppose to be mapped by another here?, or why it still says Rig type: Non-humanoid?

hollow root
hollow root
#

The pig bot just deleted my issue

hollow root
#

I never spammed, even the bot is a provoker

hollow root
#

Fudge😡

#

Unity is a spoiled brat!!!!

stoic narwhal
#

dude how do you make the polygon amount lower

mint topaz
#

methods, from worst to best @stoic narwhal

  1. decimation. this destroys toplogy, but its quick and easy
  2. dissolving edge loops. it takes longer, but isnt that difficult. please know which ones you should and shouldnt dissolve
  3. retopping - by far the best method
hollow root
#

When I did everything to change my avatar from non-humanoid to humanoid, and nothing gets fixed no matter what, I deleted the model, and then dragged it into the project again and made the requierments, it was finally set to humanoid

rapid ferry
#

hi guys i really need help i try to upload a Avatar in unity but when i try to upload it it's say Unity- EditorSceneManager, Set Active Failed, you cannot save a preview scene.
like how i fix it plz help

winter vigil
stray tangle
stray tangle
narrow parcel
#

Playing w/ uploading a VRoid avatar for the first time. I have uploaded a PC version, but uploading to quest gave restrictions about bones and polygons and more, so I updated the VRM to be more optimized but still complains about bones and more.
Is there a more straightforward way to questify VRoid avatars? The optimizer built into VRoid studio is definitely not suited for this purpose.

stray tangle
worldly hull
#

I wonder when this will be increased, at least for the 2 lower ranks...

#

I wonder if the polygon count can be separated, one for shape key influenced polygons and another for not shape key influenced polygons.

#

Could be named like:
**"shapekey polygons: ?K/20k" **
and: "standard polygons: ?K/150K"... just for example.

marble rain
#

they dont need to increase it. since having 70k already hurts performance alot if there are 40 people. and beside you need alot of polygons affected by blendshapes to reduce performance even by a small margin. and even then blendshapes are rarely active for more then a 0.01 second or less even. and that is also why blendshapes are not counted towards performance. cause its neglectable

rich herald
#

I'm sure this has been covered but is there a good reason you cannot use other shaders on Quest avatars?! It can't just be performance can it?

#

I mean Quest worlds can have any shader. PC avatars can have any shader. This limitation seems arbitrary but I don't know everything.

stray tangle
#

so it's also stability

#

and also, having a lot of different shaders means more space taken up by them in ram, whereas if everyone is using the same mobile shaders, it can reuse those

rich herald
#

Wouldn't shaders used in world building work? I can have NPCs prancing around that look fine.

stray tangle
#

there's only one of the world, and there can be upwards of 40 people

rich herald
#

Possibly but if it works in a world on the exact same character model it should work on an avatar.

stray tangle
#

allowing the world to use custom shaders makes more sense compared to 40 people all using different shaders at the same time

rich herald
#

I can easily have 40 NPC avatars in a Quest world without issue. My worlds do not host many simultaneous users.

#

It's a one size fits all limit that makes no sense for some use cases.

#

I agree but it may also be the future for VRC. Low traffic meetings, performance, etc.

#

The PC end is wide open, I guess that might be the way around.

stray tangle
#

keep in mind that the quest platform has to run "well" on the lowest common denominator, the quest 1

#

the quest 1 uses the same SOC as the galaxy s8, a very old phone. it also has a total of 4gb of shared ram

#

you really should not expect much from that

rich herald
#

I agree but put a disclaimer on your worlds and avatars. It's kind of self policing if you get my drift. They do it now.

#

Exactly

stray tangle
#

custom shaders in worlds can also be used to improve performance, rather than relying on other methods like scripting to achieve certain effects or features

rich herald
#

Just saying they need to add a few more shaders to the list.

stray tangle
#

allowing the same on avatars, while it would help for certain things, it would have the opposite effect at scale, which is really the point here. the amount of avatars is the difference

rich herald
#

And that's why we have world population limits.

stray tangle
#

I agree that adding a few new official shaders would be nice, but I disagree that custom shaders should be allowed

calm spade
#

Good to remember that the Quest 1 is still supported

rich herald
#

For sure, I agree.

#

Just whitelist a few more.

stray tangle
#

on one hand, it makes more people have access to VRC

#

on the other, it potentially holds back features because of performance constraints

calm spade
rich herald
#

Not sure more is better on a 'free' platform.

#

Not that I want to see a paywall.

stray tangle
#

also hey ruuubick, good to see ya.

calm spade
stray tangle
#

"we have plans to improve our own shaders" this is interesting, what sorts of improvements?

#

more options in the existing shaders? new shaders?

rich herald
#

I understand. It's really just one type of shader that's killing me. Something to do with vertex shading...

stray tangle
#

for example, options for using/not using vertex colors?

rich herald
#

Yeah!

stray tangle
#

ehhh gotta be careful about that

#

yes it would be nice, but people may misuse it

rich herald
#

Maybe the silent filamented shaders...

stray tangle
#

it essentially doubles the amount of stuff to render for that material

#

if someone uses it on an entire hoodie because they can see through the inside of the cuffs, that's not a good usecase

#

but people will still do it because it's the easiest fix

#

the proper fix would be to shrink that part into the arm in blender

rich herald
#

Blender....ewwwwww. My fault for not learning it though.

calm spade
#

Double sided

stray tangle
#

^^

#

adding a few extra polys where needed is better than rendering each existing one twice

calm spade
#

I'd need to ask smart shader people, but I can't think of something that would be less expensive to do with a shader than geometry. Maybe fractals?

#

No need to shrink if you flip normals!

stray tangle
rich herald
stray tangle
#

rather than having shape keys and geometry for each digit

stray tangle
calm spade
#

Yeah, it's very much a much weaker hardware sweat

rich herald
#

I cannot believe the future of VRC is wide open, do what you want, purposeless worlds. I firmly believe it is the best chance for the metaverse to actually work. I just laugh at Zuck's sad attempts. VRC is amazing and I'm a Plus member but it cannot be sustained.

stray tangle
calm spade
#

Meta guidelines recommend 500k-1M polygon in view on Quest 2 at any time

stray tangle
#

and people still try to upload 300,000 poly avatars on quest .-.

calm spade
stray tangle
#

I like that physbones have a hard limit on quest, because people go to the help channel being like "why can't I upload?!", and then you see right under the physbone warnings that the rest of the avatar is god awful lol

#

I think quest should have hard limits for most stats tbh

#

maybe double what the VP amount is

#

so people can still go over if they want and don't give a shit about stealing frames from others

rich herald
#

Polygons? No issue here. Shader? Yeah, those areas are not black.

stray tangle
#

but not too much

stray tangle
rich herald
#

Exactly

stray tangle
#

all the mobile shaders multiply the base texture by vertex colors

rich herald
#

And blender scares me

stray tangle
#

removing vertex colors in blender is stupid easy

rich herald
#

I'm old. I just learned Unity. My brain is full.

stray tangle
#

there you go

rich herald
#

Thanks!

#

Lol

stray tangle
#

it's great fun once you get the hang of it

rich herald
#
  1. Too old I tells ya.
#

Nah, you're right. I'm just lazy.

#

Thanks for the help.

stray tangle
#

73 damn, cool to see people in that age group be interested in VR stuff

rich herald
#

I'm the only one. Lol.

stray tangle
#

there's a few people I know in their 50's

rich herald
#

Children!

stray tangle
#

one of them is big into shader stuff now too

rich herald
#

Cool

#

Gotta go change my diaper. Take care.

stray tangle
# rich herald Children!

this video is a great watch, they have an interview with the person I mentioned at the end https://youtu.be/hVWlgh8QP5s

Join me on my one year journey descending deep into the world of VRChat. It was an incredible insight into the lives of hundreds of thousands of people who call this digital world their home.

Maplist Below

Please do your own research before purchasing equipment!

Join the VRChat Discord here: https://discord.gg/vrchat

Join my Discord here: h...

▶ Play video
rich herald
#

Nice

chilly notch
slate thunder
#

I saw an avatar that was 208.5mb today

#

:')

mint topaz
#

horror

sour sinew
onyx harness
slate thunder
onyx harness
#

The load in size is the compressed size. Right now we can only see texture memory in the avatar stats for the uncompressed side of things

grizzled shard
onyx harness
#

things like meshes, audio and the such are still hidden

marble rain
ripe mica
#

Hey, how do I go about atlasing metal textures on my avatar? Whenever I do atlas manually or automatically all the metal materials turn white or just a weird colour but everything else atlases perfectly. Bonus if you could link me to a video explaining it!

buoyant holly
tender isle
#

Is there a plug in on blender or like, any easier way to combine textures with the weird UV things? It's very hard and anytime I try I break a bunch of stuff LOL.. i just don't want my things to have too many textures so it can be quest and pc

buoyant holly
zealous wigeon
# ripe mica Hey, how do I go about atlasing metal textures on my avatar? Whenever I do atlas...

I think there is automatic blender plugins that does it, but you'll have to do baking https://www.youtube.com/watch?v=wG6ON8wZYLc, it is a bit finicky and very much manual the way he shows it off.

I just do it as he shows, that way I know it does things as I want it to do.

In this Blender tutorial, I will show you how to bake multiple materials to one texture map.
● Download the project files for free:
Gumroad: https://ryankingart.gumroad.com/l/vajiz
Patreon: https://www.patreon.com/posts/61022279

● Texture Baking for Beginners: https://youtu.be/Se8GdHptD4A
● Texture Baking Tutorial Playlist: https://www.youtube....

▶ Play video
ripe mica
#

Awesome thank you

worldly hull
# marble rain they dont need to increase it. since having 70k already hurts performance alot i...

Maybe because if you have to Show "very poor" because if you dont want 3/4 of the full loby being hidden. So everyone is forced to see all very poor avatars, where 100k would be still the most harmless once. Most uses 500k+ avatars and because of that the safty is so low and you can not show less than 200k, jou have to show everyone over 70k, what also shows the hardcore very poor avatars with 200mats and 500k-1mio poligons.

Better would it be to sepwrate shapekey piligons and allow a bunch of not shapekey poligons.
Like max. 10k shapekey poligons with 150k none- shapekey poligons.

rose sequoia
#

i like the idea of breaking down more performance metrics like this, especially if we could then do something like specify how many materials we'll accept before an avatar is performance blocked (like we can with max avatar download size)

toxic needle
#

do what I resorted to, automatically block then unblock anyone youre talking to

zealous wigeon
# worldly hull Maybe because if you have to Show "very poor" because if you dont want 3/4 of th...

I believe a Too Poor ranking (alternatively redefining Poor as current Very Poor) would do more good than your suggestion, as we don't want people to use a lot of polygons (also to make the range of very poor not infinite).

(side note, I use the optimize shapekeys option in the dev version of CATS and I don't think any of the bases I have used have had less than 10k shapekey tris, which is my way of saying, it would annoy people and would be ignored since bases would not be setup for it).

If we then make the Too Poor (or redefined Very Poor) ranking even more annoying to show than Very Poor is on Quest (confirmation box, wait timers, max Too Poor cap, something like that) then experimental avatars would still be possible, but people would be dissuaded to use avatars of that ranking.
Because honestly, VRChat forcing optimization is the only way to make avatars perform better.

ivory sluice
#

Vrchat is not like these games where you can have a lot of characters but all of them are made by the devs hence being correctly optimized.
The avatar performance ranking should have a maximum just as with quest's 10 mb limit.
And the 70k poly limit is an approximation of the 16bit index limit keeping apart that that theory people spread so much of "polygons don't use any performance actually" is completely false, so it should be actually lowered at around 65k.
If people were more reserved with what they use (i don't include the ones who don't know if x thing on their avatar is performance heavy and change it whenever they can if someone tells them) then the performance limit wouldn't be considered strict

marble rain
#

again shapekeys affected polygons do not matter. in the small amount that it affects.

#

like there is a reason why if you have multiple clothes or options on your avatar it is much better to have it use shapekeys/blendshapes to hide and show it. instead of seperate mesh/material

worldly hull
# toxic needle do what I resorted to, automatically block then unblock anyone youre talking to

Thats a endless task...
Currently I have every very poor shown, because only 1/4 of the players habe a lower ranked avatar than very poor.
Otherwise, they are doing stuff that I can not see and hear peoples laughts about things, that are not visible for me. I have goodnhardware that can handle avatars uo to 200k. But if someone over 200k apears I start to suffer and can not tell who is it, especially if everyone is standing and sitting to close to eachother.

worldly hull
# zealous wigeon I believe a Too Poor ranking (alternatively redefining Poor as current Very Poor...

I for myself do also add some items to the avatar. Things like swords, guns, food, e.g.
So you have to make my avatar way less than a few polygons below thw 70k.
Most of them don't even have shapekeys and generating none-shapekey p8ligons is a very simple and easy task for most GPUs. So like I sayd just seperate the shapekey influenced polygons and and none-shapekey polygons, do allow more detailed avatars, or just more items on it.
Because if vrchat dont allow that or make the tollerqncw bigger, most peoples give a F about the ranks and stay in very poor, especially if you are already in verypoor... you dont have any motivation to still optimize your avatar with atlasing same shader using textures and keep the poligons in a still good looking way down. Once.in very poor, no motivation to stay optimized.

zealous wigeon
worldly hull
#

Like characters in videogames have a bunch of weapons and grenades in their pocket, my avatar have also a bunch of items included.

I also mean by seperating the polygons, to allow more items or avatar details and stay still in a better good optimized ranking because the performance doesent suffer, if just a very tiny scale of all your poligons are using shapekey...

Poligons are very, very, very simple for our GPUs. So I just would wish to seperate them to be able to use more none-shapekey polygons like for more items on my avatar or just more avatar details and 10-15k poligons just with shapekeys included for face emotions and stuff like that.

Making a: "Too poor!" Rank would be also a additional good feature but nothing related with the Polygon-topic here...

#

@zealous wigeon

#

If I make for example my avatar with 40k i only have 30k left for other Polygon-needed-items for the avatar.
Its just to solve this Problem with making higher limits, without making the performance suffer to much. ☝️

ivory sluice
#

With 30k you can have an entire closet
I have an avatar with 12 clothing pieces and all clothes combined don't go over 15k

#

And as i said before, polygons can be either fast to calculate or ver slow, it doesn't have a constant time, you can have a simple fast vertex shader or an extremely slow one

worldly hull
ivory sluice
#

Not sure, never tought of using it, but most times it's a pretty intensive shader with so many effects turned on

worldly hull
#

It does lock rhe shader automaticly, before you upload the avatar.

zealous wigeon
# worldly hull Like characters in videogames have a bunch of weapons and grenades in their pock...

Do you happen to have any graphs showing off the extra impact shapekey meshes have on PC architecture, because I've had a hard time detecting any statistically significant difference.
As I have been told, the Quests benefits far more from them being split, but on Quest you shouldn't even have enough polygons for that to matter in the first place.

Also I do think my Too Poor suggestion is on topic because you want more polygons and a soft (but harder than usual) cap set to Very Poor (or redefined Poor) would likely have a higher polygon cap. And ironically I don't think it matters if shapekey meshes and non-shapekey meshes are counted separately because the majority do not combine their meshes, so the mesh with shapekeys (the body) will keep the same count post modifications, so optimizationr related to shapekeys would probably be the same with your change as without.

zealous wigeon
worldly hull
#

But what shader you using doesent have impact on the polycount limits. In this case you should meassure it or something to count the shader as good or as a very poor ranking reason.
Even right now youcould destroy it with this thinking you with 10k, so should we rank 10k avatars now as very poor? - it doesent make sence to blame the polygons for the shader used shader.

worldly hull
ivory sluice
#

Again, the vertex performance impact depends on the calculations it has to go trough on the vertex shader, then a constant additional impact for the rasterizer to draw the pixels, but it's not as notable as the vert shader. Vrchat cannot rank shaders because unity cannot guess a shader's performance impact, and even less in game since these are compiled into assembly programs.
And for poiyomi, that the shader can be locked doesn't mean it becomes extremely performant, what locking does is converting variables into constants so the directx compiler can omit memory usage and a couple of calculations making it maybe 1 or 3% more performant, at the cost of a slight additional memory usage.

worldly hull
# ivory sluice Again, the vertex performance impact depends on the calculations it has to go tr...

So, but we have to do something about the current state, because most peoples have more than 70k polygons, but are also under the "too poor" dudes who have up to a few million polygons and way to many phys bones on their avatar, what looks like cloth physics standards, so many they are...
Peoples with potato PCs should still have the excelent - poor and better performing PCs should be able to get a setting to show 70k+ up to 300k or something...

zealous wigeon
worldly hull
#

And what is with the seperating of the blendshape polygons?
Because someone sayd the reason why we dont have more than 70k is because of the blendshapes. So when we will get more? Atleast when will the middle-class hardware good enough to allow 70k+ poligonsnfor medium and poor?

#

Like a gtx 1080 was 2016 highend, but today it is cheap enough for the middle-class gaming pc

#

What now if the 4090 is in 5 years for middle-class cheap gaming PCs? Will we then still have only up to 70k for medium and poor?

zealous wigeon
# worldly hull And what is with the seperating of the blendshape polygons? Because someone sayd...

32K polygons is the point when a mesh with shapekeys gets more expensive than a separated mesh (according to VRChat, depends on amount of active shapekeys, so guessing this is with the standard talking visemes).

The closest number to 70K that has something to do with Unity is 65536, which is when a mesh's size grows massively as Unity has to use 32-bits to for the polygons instead of 16-bits.
And apparently this also causes, or caused some performance impact back in the day, doesn't seem like it continues to do that with the later Unity versions though.

#

And, do we need more polygons?
Or would we be better served with having a prop system, or a ranking system that understood toggles?

marble rain
marble rain
# zealous wigeon 32K polygons is the point when a mesh with shapekeys gets more expensive than a ...

which is false by a crap ton. blendshapes are not expensive. you can have 1000s animated without causing more then 1-2% frame drop.. and even then majority of avatars only have a few animated every frame cause of the mouth moving when you speak. that said it all depends on how many polygons it affects. if a million yes it will cause issues. but then again that will never be the case for vrc. and even then. you switching out your clothes for example that has lets say 2k polygons that will not cause any issues. as its only for a few frames and likely only cost a fraction of a nanasecond

#

and we dont need more polygons. majority of models are going to look great at 32k. obviously some models do require more. but rarely do they need to be over 70k for the base model.

worldly hull
zealous wigeon
worldly hull
# marble rain and we dont need more polygons. majority of models are going to look great at 32...

I though I already told here, that also many peoples would like to add some items on their avatar. Like swords, weapons, tool, cloths, hats... my model habe just 40k and peoples tell me really often that my models looks "old" because it so low poly with just 40k. + the thing that I want to add some stoff in it and removing them just to try to gind the perfect transformstion agsin is cancer and having a bunch of scene saves is also aids. We get every 2 year a collection 8f new and even faster GPUs, so why not living the luxus and enjoy a medium or poor avatar rank woth 150k poligons? A GTX 1080 should not be anymore that expensive and for the potato PC Players, they still can only show excellent and good avatars.

#

It would be nice to see how many % of the entire vrchat community have uploaded a good ranked avatar and how many a very poor because the rankings are way to limited...

#

We are in 2022 and not 2006 or something to have avatars with Playstation 2 graphic.

ivory sluice
#

People who say a 40k polygon avatar looks old or ps2 as some say are the same ones that complain that a there are not full ultra realistic physics on each background prop on a videogame tbf

marble rain
marble rain
worldly hull
#

So why we not just put the limit higher for the medium or atleast poor level?
(If it doesen't matter how many shapekey polygons they are of the final poly number)

marble rain
marble rain
#

problem is that the higher the numbers are the more vram we also need.

#

majority of gpus are only at 8 gb

worldly hull
#

Yes there are some peoples that mean the ass alone of a avatar must have atleast 200k polygons to look smooth and round or something... vrcAevSip and then are peoples like me out there that just add a bunch of items to their avatar, what also increase the poly number of the final ranking and upload.

marble rain
#

that is true.

#

but the thing is Hidden objects still need to be calculated when you load into it. in order to avoid having to do that once you bring them into existence.

#

so it can store that information on the gpu etc.

#

but i assume you mean you would like to see a Hidden polygon count and a visible one Dwight?

worldly hull
marble rain
#

well from what i understand we are getting a new ranking system soonish.

worldly hull
#

I hope more ballanced and not just with more messed up limitations.

marble rain
#

the limits exist for the purpose of having 40x people in a world.

#

70.000 x 40 is 2.8 million polygons.

#

the more polygons you put on the heavier it becomes. and if double that. to 140k it suddenly becomes 5.6 million.

worldly hull
ivory sluice
#

A lexichi v4 uses like 15k polygons and keeps a topology good enough to look how it's intended
Making the poly limit higher will just make people want to get it higher some time later, then repeat, it's cool that there is new and powerful harware today, but not everyone has that much money and if my pc can run gta 5 at max graphics, tm2020 also at max and minecraft rtx (i mean bedrock, not that java edition screenspace raytracing thing), vrchat content should be performant as it should.
Very poor is already the "over poor" ranking, it means that this content is not recommended to be shown because it could cause performance issues, you are asking for a "over over poor" rank, and with time then someone will ask for a "over over over poor" one.
Vrchat should add an upload restiction for way over poor avatars, not add another rank for something that went twice over the limit, and users should know what to use and what not if they are going to make public content for the game

worldly hull
#

So I also wiöl see the hardcore dudes woth millions of polys and way to man particles physbones and shadereffects.

marble rain
ivory sluice
marble rain
#

Vr is already hard enough on the system as it is.

worldly hull
marble rain
#

no not really.

zealous wigeon
marble rain
#

gtx 1060, gtx 1070 and 1080

#

even 2060 is barely keeping up

#

for vrc atleast.

#

but any other vr game it will be fine

#

even my 2070 barely keeps up

#

cause to low vram.

zealous wigeon
#

And it doesn't seem like we'll be getting much more VRAM in the future since we are still on 8GB of VRAM on the medium end.
I would be very surprised if the 4070 or came with more than 8GB (the 3060 12GB was odd, which is why they just replaced it with a 3060 8GB).

marble rain
#

eh we are.

#

the 4000 series has 12gb for 4070

#

16 for 80

#

and 24 for 90

#

most likely 8 for 60

worldly hull
#

And even the 1060 is already 6 years old. I just want a better setting to hide the crashers and the "I give a F on performance" avatars. My 3060Ti is good enough for 40 people lobby on very poor 70k+ avatars, but some dudes with 800k avatars make me lag as hell and its to anoying to search with 10fps the troublemaker in the lobby.

zealous wigeon
ivory sluice
#

It's so fed up that some simple looking vrchat avatar can anihilate your vram

marble rain
#

pretty sure its 4070.

ivory sluice
#

And well not only avatars but worlds, where unfortunately you cannot limit anything from them

zealous wigeon
marble rain
#

saw a 1.6 gb vram model the other day lol

worldly hull
#

Every time new gpus came out, the last one gets cheaper and the last of the last on even more cheaper with more GPU cores. So that even low Budget dudes can purchase a cheap gpu that was a more expwnaive bwfore thw 4000er series was available.

zealous wigeon
#

As I understood it isn't exactly simple to limit VRAM usage for avatars, but so looking forward to it.

marble rain
#

kinda is.

#

they can hard lock it lets say 50 mb

zealous wigeon
worldly hull
#

If we screw the limits to small, the people start more and morw ignoring them and staying all in very poor..
So what is the performance ranking for if wveryone ia ranked as very poor, even the avatars where are just a bit over 70k and also the 1mio+ poly models. But I think I am repeating myself again....

zealous wigeon
zealous wigeon
ivory sluice
#

Yea basically that

marble rain
#

then people can pay for it.

zealous wigeon
#

Leave an opening for experimental avatars, but heavily dissuade its usage.

ivory sluice
#

Because we can't have a rank for every additional 50k polygon

#

Like, allow experimental avatars to be uploaded only locally but only the ones who meet the performamce requirements to be put on the servers

zealous wigeon
#

Eh, I'd still say they should be allowed to be viewed by everyone, but just use a ton of dark patterns (is it a light pattern if it is for good things?) to make it really annoying to enable (confirmation box, swapping buttons, timers, etc).

undone cradle
ivory sluice
#

Imo it would be a good way to make people optimize their content

worldly hull
zealous wigeon
ivory sluice
#

I'm sure that if they added the forced limit they would also make avatars that got to upload over the limit being automatically removed or permanently hidden in game, like quest avatar's materials getting its shaders replaced by the in game ones

worldly hull
#

Even with anticheat and stuff like that. They will always find a way to crack and avoid. I think a better way would be in giving peoples with optimized avatars some specials like a gold name or somwthing, just for using a optimized avatar.

zealous wigeon
ivory sluice
#

I don't think they'll be able to modify the unity mesh system itself, and even less all intalled vrchat apps on all devices

worldly hull
#

Some cool features that only optimized avatars would have. Make the people want to use only optimised stuff, not force them.

zealous wigeon
# worldly hull Some cool features that only optimized avatars would have. Make the people want ...

I agree that making people want to optimize is better than forcing, but the best I can come up with would just be dissuading people to use poorly performing avatars, using those systems I've continually mentioned (confirmation boxes, swapping location of buttons and timers until they can be shown).

I was going to at one point suggest making very poor avatars banned in public worlds, but all that achieves is make people want to go to publics even less, that isn't a solution.

Could make sense for group instances to have the ability to set such limitations though.

ivory sluice
#

Problem is that, with the experience i've had in this game, 90% of people won't optimize just because they just don't want to

But your max perf rank per instance idea is actually very good

worldly hull
zealous wigeon
#

Malicious usage though, no clue, not run into any for the 3/4 year I've been playing.

worldly hull
#

I still get crashed and i still see peoples in a german server flying around superfast.

zealous wigeon
worldly hull
#

Im glad about that, but fearing that vrchat shutdown the avatars would be a nightmare.

#

It was a horrible time back then with a 20k limition.

ivory sluice
#

I recently read someone publicly saying that some mod with a weird name was getting finished. That person is also known for constantly threatening users with everything you can imagine internet-wise and just being a complete pos in gemeral.
Unfortunately he stays anonymous (keeping apart he publicly said his height and that turns out he lives on the same city as me) and discord messages cannot be counted as vrchat report evidence so nothing can be done. Only thing ppl can do about these a-holes is just leaving them alone

worldly hull
#

It is better today.

ivory sluice
#

No but i mean recently as of 5 days ago
Like, some people just don't learn and want to bring back their wacky clients
And that's one of them

worldly hull
#

It was a very dark time back them

worldly hull
#

No matter how good or bad optimized you are.

#

Even excellent would be a grey robot.

#

Even a quest fallback would be a grey robot.

undone cradle
#

ah yes, I just hide avatars on Visitor and New User to avoid those pesky assetbundle crashers.

#

haven't bumped into one for months though

#

might set New User to shown

worldly hull
#

I j6st want to know where can see me and where not. Is it so hard to let me know that? That would save me a lot of time and nerves..

zealous wigeon
undone cradle
#

"show my avatar show my avatar show my avatar, why aren't you showing my avatar?" xD

#

then you also need to differentiate between fallback and hidden fully (robot).

ivory sluice
#

That's not how it works
But i also keep visitors and new users as hidden and the rest with only the avatar activated, and it runs well
As i said, unfortunately unity cannot guess a shader's performance, and that's most of the reason why some avatars are extremely heavy, an excellent avatar can performs extremely poorly, but that's not at the ranking system's fault, that's why i have all shaders off except for the ones i really trust with their avatars, it's still not bad seeing avatars with pbr lighting compared to the probably unlit-but-not-unlit shaders they are using

worldly hull
zealous wigeon
worldly hull
#

My avatar was medium ranked and got ignored. Amd I eant to know was it bwcause of I am a grey eobot or if tjey dont know where the character is from?

undone cradle
#

Crashers be like: wait until enough people have you shown (and they'd know if there was an icon), and then swap into the crasher. .___.

#

I don't see the positives outweighing the negatives at all for this.

ivory sluice
worldly hull
zealous wigeon
worldly hull
#

Somehow, yes.
Normally, itnstart like: wait, is that person not from the Movie X/Y!?

mint topaz
#

i think you should realize that not everyone may know what it is or is the biggest fan

worldly hull
#

Or from the game... so many posibillities

mint topaz
#

its the internet, people see everything everyday anyways

zealous wigeon
#

I just assume the people aren't seeing my avatar, makes it easier.

worldly hull
mint topaz
#

its vrchat my dude, it may be a really cool iron man but its hardly something people will fawn over for a good amount of time

worldly hull
#

Especially if ypu have a soundboard with voicelines. Noone wpuld get ot if he see just a robot and not the avatar

ivory sluice
#

i mean yeah, i also wish all avatars were performant enough so i could unlock them all and find users with rabbit avatars, but that's not the case

worldly hull
mint topaz
#

i know

solid smelt
#

It just comes down to "it would be nice but the toxicity would overwhelm the benefit"

buoyant holly
#

honestly if it's not a popular anime hard to tell the difference between a IP Anime Avatar and some random Booth p.m. creation

ivory sluice
#

yee

mint topaz
#

yea

worldly hull
#

It would be weird if a stranger asks to show him. Just to make sure that you are not a robot and the roleplay can make much more sence.

worldly hull
solid smelt
#

If it's very new then it's almost entirely the latter. What's the series?

worldly hull
#

Would be cringe to tell.

mint topaz
#

ill be frank but youre also not even remotely the first person to develop new or original avatars, so to anyone else it could just be a cool avatar or smth

worldly hull
mint topaz
worldly hull
#

Would be nice to have: "medium avatar - come on and give that dude a changse to be shown... :("

#

As text above the name, lol.

buoyant holly
#

if someone's the sort to use trust ranked block avatars they're probably not going to show the avatar

spark dragon
#

Compressed all my textures and my avatar's download size went from 35.08mb to... 34.44mb vrcCrying

stray tangle
#

the first thing you should be doing is reducing the resolution of each texture as much as possible. smaller parts need lower resolution textures

#

and even for one material, not everything needs the same resolution

#

AO maps can typically be much lower resolution

#

I recommend using Thry's avatar evaluator to see a breakdown of how much VRAM each asset takes up, and optimize for that

spark dragon
stray tangle
#

it's also important to judge the clarity of details not from an inch away, but from a few feet

spark dragon
#

Good point!

stray tangle
#

keep lowering the texture resolution until the detail loss is too much, and then go back up one level

#

you can often get away with a lower resolution than you might think at first

spark dragon
#

Just noticed a few of my textures have unnecessary transparency, removing that basically halves their size wahoo

stray tangle
#

otherwise it uses a gamma brightness curve instead of a linear curve

#

which would make mid-gray on the textures not actually represent 50%

heady smelt
#

how would i be able to fix this error? im not too sure what is really going on

radiant shadow
#

downgrade blender, too recent for your cats version

mint topaz
#

theres a list of what CATS is compatible with on their github, ensure you use a compatible version of blender

zealous wigeon
heady smelt
#

didnt think about that, thank you sm <3

tender isle
#

Is there anyway to have outlines on my avatar for quest??

#

and pc? cause i know poiyomi shaders for like pc has

#

outlines but i cant use that for quest..

stray tangle
tender isle
#

how?

stray tangle
#

use the Matcap Lit shader with one of these matcaps

tender isle
#

how "outliney" does it look? just curious [P.S nevermind i'll find out once i open unity!! hope it works :) ]

pseudo obsidian
#

You can see the thicker black spots near her right eye her eye, but again, this may not be as prevalent for you though, depending on how your model looks. Used with the provided Matcap lit shader for quest here.

#

Oh, the outline on the mouth is painted on, btw, the matcap won't do that. Figured I'd add. Lol

crimson topaz
#

I'm wondering, are using UDIM tiles more performance-friendly than the usual method for toggling materials? I'm currently using UDIM discard in Poiyomi to handle toggles on a character and I was wondering how optimized it is compared to, say, using blendshapes or toggling off the entire mesh of the object.

stray tangle
# crimson topaz I'm wondering, are using UDIM tiles more performance-friendly than the usual met...

you can either go for best real world performance, or best VRChat rating, not both. it's not a clear cut line, every case is different. in general, toggling off the renderers completely is the most performant option, if those things were already separate materials.

as for the best way to toggle stuff on the same mesh, UV Tile discard (the actual name of the feature, since it has nothing to do with UDIMs), is the most performant way to do it. it avoids rendering any of the pixels because it throws away geometry in the vertex shader, which makes it better than blendshapes and bone scaling as those are still fully rendering the mesh even if it's not visible.

blendshapes have a big CPU cost when they change, and in a CPU bound game like VRC, it comes especially important

#

UVTD is pretty easy to set up, and not enough people use it. you can make a 2nd UV map for it so you don't clutter up your primary one

mighty reef
#

anyone have a good tip on how to merge materials so I can make my avatar compatible with quest? So far I have been using CAT with blender (yes, the right blender version and CAT version) to import my model. But when I click on "fix model" i get this:

#

I tried looking into it and it turns out that the materials in the fbx are black, which isnt right. I am still having issues with this and I would appreciate any help on how to fix this 😄

#

oh my god I think i fixed it.... I had to import the textures...

cold yarrow
#

what sort of model are you using such that you need CATS' "fix model"?

mighty reef
#

a fbx, it has 6 separate materials and I saw in a youtube video that throwing it into blender with CATS can help merge those materials so I can finally publish it for quest since max is 4

#

I manually added the textures and the avatar comes out all glossy looking :/

cold yarrow
#

oh ok yeah, I forgot it did that, I keep doing that with just Blender

mighty reef
#

im on the right track so far?

#

is it supposed to look like the avatar covered itself in butter?

cold yarrow
#

I couldn't tell you what it's supposed to look

mighty reef
#

haha I guess so, this is what the quest version in unity is supposed to look like:

mint topaz
#

theres a material combiner you can use with cats if that helps

mighty reef
#

yes! That's why im using cats, but im trying to figure out why my avatar looks all glossy for some reason after manually adding the textures to the materials in blender

cold yarrow
#

probably some effect of whatever material that is, you'd have to see what it's doing

mighty reef
#

I'll figure it out eventually, thank you Kazin

lapis parrot
#

I'm just finished an avatar in blender and working on optimization. Wondering if you can organize meshes? like how you'd do it in unity with empty gameobject. I tried doing this before an had every mesh in an empty blender object, but exporting it messed it up. like the dropdown in unity didn't show armature, it just went straight to hips

stray tangle
#

besides, if you're working on optimization, you'd probably be merging as many meshes as possible anyways, reducing the amount of meshes you would have in the list anyways

lapis parrot
#

oof, I am working on merging, atlasing, and also creating custom blendshapes for lowpoly objects so I can merge them too

lapis parrot
#

So I'm trying to atlas textures and they keep making awkward sizes instead of square. like two 4k textures are going 16k by 4k.

lapis parrot
#

I planned on compressing them to 4k or 2k afterwards in unity or krita. Would manually compressing individual textures first make it work?

deft stump
#

Can anyone help me with trying to optimize my model? When I took it to unity I had too many bones and when I removed a few the model started to spike up whenever I use pose mode. I'm just trying to upload my first avatar. Are any bones important?

calm spade
#

Use the cats blender addon for that

deft stump
#

I am

mighty reef
#

Anyone know how to resolve this issue? It doesn't appear for uploading my avatar to windows but only for uploading to quest (it wont let me upload to quest)

scarlet cape
#

is there a real "Too high" for avatar texture memory?

#

it's listed in avatar details but isn't rated so i can assume it's not too bad?

stray tangle
#

ranking system for it isn't implemented yet

#

I would say if you're anywhere above 150, you're doing it wrong

#

below 100 is decent

#

below 50 is very good

scarlet cape
#

none of mine go over 100 so thats good

#

thank you

stray tangle
scarlet cape
#

most of my avatars are 1 4k texture...

#

i need to uv map better

stray tangle
#

if you have any PBR maps like AO, normal or metallic, those can typically be lower res

#

especially AO

scarlet cape
#

i think the albedo and normal maps are the higher res ones

#

i cut them down on quest becasue file size

#

but they sure dont look that great

stray tangle
#

yea it's important to have good UV density to not be wasteful

marble rain
normal nova
#

Blender's default behavior if you delete a bone is to just... delete it, and then anything that was weighted to it just stops working

toxic needle
#

I am happy to announce that after way too many hours I have finished my first attempt at avatar optimisation

#
  • 3 accessories are now mesh renderers instead of skinned mesh, reducing the skinned mesh count to 5 (torso and legs are still separate from the main body as I don't want anything to do with weight painting for clothing (also as a result the animations to toggle those off are now controlled by scaling the material layer from 1 to 0))
  • Every material except for the eyes is now called from 2 custom atlases instead of individual materials

This has reduced the total draw calls from a whopping 44 all the way down to 17 (I have no idea how good or bad that is)

mint topaz
#

@toxic needle you deserve a cookie matsix

toxic needle
#

Thank you Sir

#

dealing with UV maps hurts my soul

calm spade
toxic needle
#

I think I disabled the directional lighting when I ran it like the guide-ish said

#

Actually shaders havent been set up properly yet, I'll run it again once everything is identical to the original

calm spade
#

Shaders wouldn't make a difference drawcall wise, but congrats!

buoyant holly
toxic needle
grizzled shard
#

any progress is good progress! there is more that can be done but don't lose sight of what you've already accomplished

obtuse mantle
#

Might be a dumb question but what are some easy ways to lower the file size of avatars when making them quest compatible?

kindred apex
obtuse mantle
grizzled shard
obtuse mantle
lime egret
#

Is there something that will automatically remove any physbone components that aren't actually being used? The original outfit this avatar had on used a bunch of physbones that are no longer required.

stray tangle
#

how do you define "no longer being used"?

#

if you define that as no root transform being set, then physbone scripts that were put directly on a bone chain would get removed, even though they were working

heady smelt
lime egret
#

I mean none of the objects in the scene link to the bones... eg. bones existed for an outfit, the outfit was deleted from the scene.

lime egret
heady smelt
#

But thats if you dont want to use the outfit anymore

lime egret
#

I know I can do it that way, I just wanted a more automatic way of doing it.

heady smelt
#

Oh alright

hollow root
#

This blender issue in exporting is really confusing and annoying

vivid night
hollow root
vivid night
hollow root
#

Well, my new Frank Frogboy model was removed from the new Vroid, nothing left but the old mid ones, the updated vroid doesn't keep ANYTHING!!!!!

#

I can only see the recently edited ones which dissapear after some days

vivid night
hollow root
#

The updated versoin of vroid is the WORST!!!!

vivid night
#

I wouldn't store stuff in vroid, always save it, export it as vrm and save those for editing in Blender for later and exporting a an fbx.

#

And make backups of the .vroid files

velvet crow
#

So where does most of the size come from for these meshes? I noticed that the 10 MB mesh has about the same about of verts as the other top two, but is 1/5th the size. Is it mostly blendshapes? Is there some tool that can breakdown these sizes so I can try to optimize the meshes?

buoyant holly
#

blendshapes would contribute to file size as basically it's a duplicate of the mesh vertices but in the new position

velvet crow
#

I see. So removing some blendshapes that are not going to be used can probably do a significant part in reducing mesh size?

onyx harness
#

Blendshapes, UV maps, Vertex Colours. Any information the mesh needs to hold will increase it’s size afaik.

marble rain
rich herald
# stray tangle

Thanks for this. I think I got the colors right but why does my exported version end up like this crunched up character?!

#

Blender is my nemesis.

#

FWIW, this is a modular character fbx I imported to blender, fixed the vertex colors but then when exported back to fbx it ends up all, well, blended. Lol.

#

I just know it's something simple.

stray tangle
#

click on your FBX, go to the Rig tab in the inspector, click Configure

#

then do Pose > Reset pose

rich herald
lime egret
#

When I use a blendshape on an avatar to hide something (eg. hide the feet so they don't stick out of shoes) the feet still take up the same number of polys right? in which case... how difficult is it for someone with basically no Blender experience to edit the model to the parts I am hiding anyway?

#

or is there something I can import in unity that will do it for me >_>

stray tangle
#

you are still rendering all those polys even if you shrink them yes

#

so do you want to delete that part of the mesh entirely?

lime egret
#

Yeah, save on polys that way if the outfit is covering them all the time anyway

stray tangle
#

you won't be able to do that in unity, it's a game engine and is not meant for that whatsoever

#

blender is an actual 3d modeling program, you'll need to do it there

lime egret
#

Figured as much, just thought there might be something because polytool can remove polys

velvet crow
#

A good example: I did some remeshing on an avatar and the visemes got completely screwed up because I used the "symmetry" option to mirror the geometry (which deleted the existing vertices and made new ones).

stray tangle
#

to clarify, symmetrize will delete half the mesh and mirror it. snap to symmetry will align the mesh to be symmetrical, without destroying half of it

rich herald
undone cradle
#

I do think people are a bit too scared of Blender tbh.

Those "Apply Clothes" scripts that constrain a clothing rig to an avatar rig are quite unoptimized with the amount of constraints they generate. 😩

#

Bone count through the roof as well.

velvet crow
#

I've been doing some avatar stuff recently and it's gotten to the point where I am pretty much taking these models into blender to redo them because they so poorly optimized.

onyx harness
#

That’s the reality of purchasing models.

radiant quest
#

This might be a bit of an out stretch but does anyone here quest compatiblize pc avatars?

stray tangle
#

I do it from time to time, but I also care a lot about quality so I put a lot of time into it, like full retopo and baking

open flicker
#

Just made 1 today. It looks horrifying

#

Usually better things to do is unsubdivide the mesh

tribal ruin
#

Allow me to vent for a moment. This model I'm editing for a client, one he bought on gumroad for $25, has 357k polys. And 200k of them are in the WRIST WATCH... This is maddening.

#

AND the watch is merged with the FACE mesh!!

#

So the blendshapes for visemes, and facial expressions have to calculate all 200k polys of this watch for every frame that they are active

#

absolutely unforgivable

marble rain
tribal ruin
#

my point is that it shouldn't have had any blendshapes but because it was merged with the face mesh, it was calculating each vertex for every frame for every face blendshape that was active

#

because when a mesh has blendshapes, it has to recalculate every single vertex in that entire mesh whenever blendshapes are active (every frame for each blendshape) which instantly kills performance. That's why it's always best practice to keep your face mesh separated from the rest of your model when the model is highpoly.

tribal ruin
marble rain
tribal ruin
marble rain
#

and no blendshapes do not have to recalculate every frame. that is false. if they are not shown they wont need to do anything. a blendshape its never active for more then a few frames.

tribal ruin
#

What?

proper grail
#

What

stray tangle
#

while it may be true that blendshapes only have a performance impact when they change values (needs more testing), if it's merged with the face then there is almost always multiple blendshapes changing because of visemes, eyelids, and facial expressions

#

and the more vertices are affected by blendshapes, let alone multiple at once, the worst the impact will be

tribal ruin
#

Everybody else I've talked to says that it's every frame as long as the blendshape is active. Not exclusively while it is changing.

stray tangle
#

but yea, that watch basically needs a full retopo lol

tribal ruin
#

Searching this discord yields the same results

proper grail
#

Every key is more or less an entire duplicate of the mesh but in a different spot, a single key not on 0 forces a caclulateskinnedmeshkey dohicky to move verts around from the basis to the 0 to 1 value each frame for each key. Just activating the first key is the most painful, gpus tend to hand bunches on at the same time just fine

stray tangle
#

the impact was only when the blendshapes changed, and the impact was the same amount no matter how many blendshapes were already active

#

tested in editor using a sphere with 10 blendshapes and 2 million polys

tribal ruin
#

Interesting

marble rain
stray tangle
#

it's important to keep in mind that testing in the editor is not the same as testing in game, and my testing method might have been flawed, because I was changing the blendshapes manually rather than through animations

stray tangle
#

it's possible that if an animation is controlling the blendshape, that the value is seen as "always" changing

#

and thus would still incur a performance cost

marble rain
#

best way to test blendshapes impact truly is creating a animated one that lets say changes 200k polygons every frame.

stray tangle
#

again, needs further testing

marble rain
#

a Blendshape that is not animated or not changing every frame occurs no performance hit. however it does take up a small amount of vram. all through the amount depends on affected polygons.

stray tangle
#

but either way, I still dislike using blendshapes for toggles for the simple fact that you're still always rendering that mesh even if not visible

marble rain
tribal ruin
#

It's still being rendered if you can't see it

marble rain
#

nope

tribal ruin
#

it's why occlusion culling has to be set up in worlds

#

and why meshes behind other meshes still incur performance hits

#

It renders it first, and then renders the other pixels on top of it

#

it is still being rendered just not visible because of depth buffer

stray tangle
#

^

marble rain
stray tangle
#

all those vertices still need to go through skinning and still get rendered, it's honestly not a very good way to do things

tribal ruin
#

afaik when a mesh is disabled it incurs no performance hit other than the vram it takes up

stray tangle
#

the only excuse to do that really is for getting around quest restrictions on meshes

tribal ruin
#

it doesn't have to deform or render at all, so it's more performant just to hide it in some cases

stray tangle
#

but even then you should not go overboard with it

marble rain
stray tangle
#

wym 0 skinned mesh renderer? the whole thing is skinned because you're using blendshapes

tribal ruin
#

the moment a model has blendshapes or bones, it becomes a skinned mesh

marble rain
#

like take a example right. a avatar with 10 pieces of clothes, and each cloth has lets say 5k polygons, would you rather have 10 extra materials. which also creates atleast another 10 drawcalls or more. typically its more then just 10. or would you do 10 blendshapes.

tribal ruin
#

You could also use creative alpha masking

#

but that's not the question here

stray tangle
#

those 10 pieces of clothing would most likely not all be on at the same time. so in the end, having separate meshes may be better. it really depends though

#

another good option is to use UV Tile discard

tribal ruin
#

if they're low poly enough, blendshapes might not be so bad

stray tangle
#

where you still only have one mesh one material, but you're stopping the rendering of the hidden stuff at the vertex shader

#

before even rendering any pixels

marble rain
#

well in that case you would have 10 different meshes,

#

one way or another its gonna cost more to do that.

stray tangle
#

you would yes, so the SDK would still think it's worse, but in actuality you're not rendering all 10 of those

marble rain
#

that is true.

stray tangle
#

you're only rendering the visible ones

marble rain
#

but u need to keep it all in memory all the time.

stray tangle
#

there's a tradeoff between what the SDK thinks is good vs what is actually good for real world performance

#

and you often can't have both

tribal ruin
#

but does 10 separate meshes vs 1 with shapekeys actually take up more space in vram?

marble rain
#

yes.

stray tangle
#

you sure? because each shape key also adds to the mesh size

#

proportional to the amount of vertices in the mesh

marble rain
#

its 10 materials. lets say each is 2k. or 1k even.

tribal ruin
#

And the mesh is the same material and poly count at the end of it all

stray tangle
#

if all things are combined into one mesh, those 10 shape keys are influencing all of the vertices of the mesh, which includes the base + all 10 clothes

#

so each of those shape keys needs to store data for where every vertex goes

tribal ruin
#

If the single mesh with the shapekeys has ten materials then it is probably the same space in vram as ten meshes (but as sacred said the shapekeys take up space too)

proper grail
#

we need 10 pieces of clothes with 1 material lets go

tribal ruin
#

If the mesh is one material vs ten, and it's atlassed, the avatar with ten separate meshes can be atlassed too and then it will only count as one texture

#

so vram size will also be the same

marble rain
#

the thing is a single blendshape affecting lets say 50k polygons wont take more then a few mb of vram at best. while 10 materials at 1 or 2k would take up far more.

stray tangle
#

you would still need higher resolution textures to have all 10 pieces of clothing together, so at the end of the day the VRAM usage may not be that much lower, if at all

marble rain
#

well yes and no

tribal ruin
marble rain
#

a single 4k atlas would be enough to store all 10 pieces of clothes.

tribal ruin
#

My point is that you can still have that same atlas across the ten materials slots and it wouldn't take up as much space in the vram as 10 separate textures/materials

proper grail
#

i wanna see another avatar with a solid black 4k texture for its clothes

tribal ruin
#

it would take up the same space as one

marble rain
#

just remember you lag out or almost crash if someone with to many materials loads in. why? because it has to load them all in regardless of being active or not.

marble rain
proper grail
#

sadly...

marble rain
#

jesus.

#

a solid color is fine on like what 128 lol

proper grail
#

just use the color select

marble rain
#

or that.

tribal ruin
#

I'm making a prop pack right now that is going to contain 220+ low poly assets and it uses two materials and one skinned mesh. The colour texture is an 8x8 pixel grid

proper grail
#

centered uv snapping for the win

tribal ruin
#

so you can make some really colourful stuff using the lowest possible texture size and creative UV Mapping

marble rain
#

also any of you noticed how bad the lag has gotten now when someone with even 20 materials load in?

stray tangle
#

yea, crunching every texture will do that

marble rain
#

downright almost crashing everytime lol.

#

and my pc isnt that weak.

proper grail
#

i know im gonna get 20 fps no matter where i go, but thats where alcohol comes in. Motion blur for the brain

tribal ruin
#

progress on the aforementioned pack

tribal ruin
#

this is what you can do with two materials (transparency gets weird with one) and an 8x8 texture

marble rain
#

well you are only doing simple colors so it makes sense.

tribal ruin
#

(and another 4x4 texture for metallic and smoothness, and a 4x1 texture for alpha transparency)

marble rain
#

but its nice 😄

#

i have seen a 524 material avatar. and oh god thats horrible.

wet harness
onyx harness
#

"Vrchat is so poorly made I get like 10 fps in my home world"
Meanwhile, the avatar they're wearing

mint topaz
#

@onyx harness what the fuck has 1536 material slots

#

why

onyx harness
# mint topaz *why*

It is my meme public avatar. In actuality it doesn’t show any more than a vrcPerfExcellent rated avatar but it’s red in every stat.

#

Literally just to show that the rating system isn’t the be all end all of performance.

#

Because there a lot of people that think it is.

mint topaz
ivory sluice
#

lurk wha?

buoyant holly
#

that's going to be a performance dumpster fire you having 15,00 draw calls

onyx harness
#

it would be, if you could see them

undone cradle
#

Yep, just put a bunch of disabled meshes in there and you have a potentially bad avatar, if you show them, which I guess it doesn't. 😅

The performance rank is correct in saying the avatar is potentially really bad though.

#

What the perf rank is completely unaware of though... shaders.

buoyant holly
#

I would note all of the disabled meshes still take up vram for the model data and whatever textures they have

ivory sluice
#

Unoptimized avatars with one material per triangle be like

onyx harness
#

there is still one mesh showing so it's not just a ghost xD

onyx harness
undone cradle
wet harness
#

reminds me of my one polygon avatar without a texture, that uses the heaviest shader that I could find back then. Had a material swap with a standard shader, so you can surprise people and show them that performance stats are not that good of an indication

#

(it is an indication, just not that good >.<)

#

wish there would be an easier way to update avatars, if you have a base model with dozens of different outfits. If you upload it as a dozen different avatars, it's sometimes a PITA to update things like facial animations, as you then have to repeat the steps a dozen times

#

which is basically the main reason why my main avatar is a bit on the big side, VRAM wise. And in 99% of all cases it's also not an issue as VRAM usage in the worlds I'm usually in (also no 80 player instances) is usually around 6-8GB.
I do have a more optimized version for more busy instances tho

worldly tusk
sick timber
worldly tusk
sick timber
worldly tusk
#

ooo thanks

velvet crow
junior star
#

THE AMOUNT OF PAIN I HAD TO GO THRU TO MAKE THIS QUEST COMPATIBLE, how do avatar creators just do this on the regular? like im so impressed 😭

stray tangle
#

props to you for actually giving a damn

marble rain
vivid night
tropic sonnet
#

tbh it seems a lot of people think it's just a box you tick before upload

stray tangle
#

they think their little magic box on their face is just as powerful as an expensive gaming PC, completely ignoring the fact that one runs android while the other runs windows

lapis parrot
#

having an issue where when I join meshes, the uv on one of them gets reset

undone cradle
#

Make sure both meshes have the same UVMap name.

sick pelican
#

Hey question, so for something like a roleplay avatar with a bunch of toggles such as clothing (armour, coats etc) and props, what's the best way to make optimized toggles? I've heard mixed things about using blendshapes vs toggling separate skinned meshes, where blendshapes might make the avatar be shown as "medium" but would infact apparently be worse in performance than toggles

TL;DR how do I make optimized toggles for clothing and props

lapis parrot
stray tangle
sick pelican
#

i'll check that out, thanks!

rose sequoia
#

For the last year I thought I had a reasonable grasp of how skinned mesh renderers and materials impacted performance, but a conversation I had a few days ago has made me a bit uncertain, so i was hoping someone might be able to break down (a little bit) some details. Consider the following 2 scenarios:

Scenario #1-
Skinned Mesh 1: Mat_A, Mat_B, Mat_C

Scenario #2-
Skinned Mesh 1:Mat_A, Mat_B
Skinned Mesh 2:Mat_C

Both scenarios are using the same total number of material slots (relevant for draw calls)
My understanding is that Scenario #2 is worse on performance because each Skinned Mesh renderer brings its own inherent performance cost (comparable to a draw call). So its a significant performance gain (to the equivalent degree of reducing the overall material count by 1) to merge Mesh#2 with Mesh#1.
Is this right?

What I've heard recently is casting doubts on this, suggesting the performance gains of reducing the Skinned Mesh renderer count by merging in a scenario like this is basically negligible... If that is actually true, I'd be much more liberal with splitting meshes to optimize for blendshapes based on polycount (where it would not mean duplicating a material).
To take it to an extreme; surely having 8 skinned mesh renderer with 1 distinct material each is worse than 1 skinned mesh renderer with 8 materials... right?? Have I been living in a skinned mesh renderer delusion!?

I'm about to start updating an avatar to work with Vive Facial tracking, and if i can split off a mesh to put the 55 blendshapes required I feel like that might be the more responsible thing...

Any insight/opinions/comments?

#

If merging 2 skinned mesh renderers would not facilitate reducing the overall number of material slots used, is there actually any practical reason to? (from a performance perspective)

proper grail
#

So yeah, Draw Calls. Each material * the number of passes, Each mesh, Each skinned mesh +1 if its doing any shape key (* the number of verts). To keep it simple, scenario 1 is at its best 4 draw calls, and scenario 2 is 5 draw calls.

rose sequoia
calm spade
#

The argument for two skinned meshes is because shakepeys are expensive to run on high poly meshes, hence separating the face from the rest of the model, the additional drawcall is worth it, if the model is medium-high poly

rose sequoia
#

I dont want to focus my question too much about comparing the performance effects of shape keys, but yea.
So your personal understanding (ignoring the number of shape keys) is that Scenario #2 is causing an additonal draw call that Scenario #1 is not, due to the additional Skinned mesh renderer?

calm spade
#

Yes

rose sequoia
#

Thanks, I know real-world performance for this kinda stuff can get very nuanced, so i suspect the convo I had recently just unraveled things in a bit too much for me. Its reassuring to hear that this simpler way to roughly gauge performance is still correct.

crimson charm
#

a few questions about optimizing:
if i had 2 skinned meshes, but UV mapped them to using the same material on both, would that be performatively better?
what about for skinned meshes that are visibly disabled, do they still cause performance issues when off?
is there a performance impact with material swaps? such as a shirt that swaps materials for having 10+ designs?
if i use something like poiyomi, would it be better to use the "simpler" settings? (i.e. for shading, or emissions) does audiolink impact performance more or less than regular emissions that scroll or fade?
please @ me or reply so i can get notified, thank you for your time 🙂

velvet crow
#

I've tested some avatars, and it is very clear that "texture memory" in-game does not include the mesh data that is apparently stored in VRAM (according to Thry's memory calculator)

#

And I was explained here before that blendshapes and other vertex data can drastically increase the size of a mesh, plus that the mesh is loaded into VRAM anyways

buoyant holly
# crimson charm a few questions about optimizing: if i had 2 skinned meshes, but UV mapped them ...

that would still be 2 draw calls for the two skinned mesh renderer using the same material but I suppose it wouldn't be spending the whatever amount of time is required for swapping to a completely different material, disabled skinned mesh renderers wouldn't be taking up rendering time but would still be loaded in vram and materials that you're swapping at runtime would still take up the rambling not loaded

rain zinc
#

Would anyone know if it would be more optimized to have more meshes or more materials? I have multiple body parts I want to toggle, either by disabling the mesh or making an extra material for that part of the mesh that I'd make transparent.

floral mica
#

you can have both by using uv tile discarding

rain zinc
#

I'll look into that, thanks.

terse gale
#

You can also just have them weight painted to their own bone and scale it to 0 to hide them.

rain zinc
#

Oh yeah true, ok thank you both!

steady coral
#

Hello I'm new at avatar creation I wanted to optimize my avatar but when i had to optimization in blander cats I fond taht i have no material combinder but when i click manualy donwload i get redirected to site that does not exist where could i find it ?

#

Ok found it

steady coral
#

Why does blender show 68k but unity 129k when i try to build it ?

steady coral
#

Is it because i used quads in blender ?

onyx harness
#

Tris are easier/faster to render so game engines tend to lean more into them.

proper grail
#

if you have quads and only quads there is a keep quads button in the fbx import settings! Be 100% sure in blender that all faces = 4 verts though, as unity shaders will do quads and tris separately leading to odd behavior with mixed 'gons

steady coral
scarlet garden
#

how much does using 4k textures intead of 1k lowers the fps?

buoyant holly
#

that would be mostly affecting vram?

scarlet garden
#

and how much does having lots of prefabs such as WorldConstraint and ParentConstraints, even if disabled, lowers it aswell?

scarlet garden
#

hello there again lmao

buoyant holly
#

hi

scarlet garden
#

I just found out my avatar is extremely badly optimized when I let it public and a few friends started cloning me

buoyant holly
#

and yeah you probably don't want to be unnecessarily using 4K textures as a lot of people's unoptimized avatars make people run out of vram pretty quick

scarlet garden
#

I always do try to avoid using when possible

#

the texture itself is 2k, but some masks i was able to make it 512 without any major lag issue

buoyant holly
#

yeah texture masks don't necessarily need to be the same resolution as the color

scarlet garden
#

im using poiyomi, and one thing I noticed was that the Panosphere thing drains a lot the fps

#

do you happen to know about the Iridescent thing?

buoyant holly
#

I don't use poiyomi so I'm not terribly knowledgeable on it

buoyant holly
worldly hull
#

When will we ever get a "Extreme very poor" ranking? Because I am tired of showing every very poor, but hiding the extrem very poor peoples, because if I would only allow poor and below, the most peoples in the lobby would only wear fallback avatars.

is there a way to block peoples with 300k polygons and 500 materials, but still show peoples, that reached a bit out over the 70k polygon limit?

ivory sluice
#

I think very poor is the "over the limit" ranking already, a "very very poor" ranking would just make someone else in the future to ask for a "very very very poor" and repeat, you can request on the feedback page for the poly limit to be increased on pc. Tho i don't assure that the devs will do it. 70k is already a lot knowing how unoptimized most shaders in use are

marble rain
worldly hull
#

you can not filter that way, if every avatar with just a bit over 70k poly gets the same rank like the peoples that have a few mio poly and a few hundreds of materials.
A good PC can handle that, but can not handle good the mio of poly avis.
Try to take a look in a public lobby, how many custom avatars have over 70k polys and how much materials with none atlasing...
removing very poor would make it even worse iv poor is now the rank with all the few mio poly avis thounsands of bones and stuff.

#

(My avatar for example is already over the 70k because I dont want to remove other features of it to add new onces and scaling the polys down to hell would look bad and end up in even more "that avatar looks old" answers.)

#

by the way, I made that picture of someone, that "tried" to made their avatar quest compatible....
he called it: "optimized E-Girl"

#

he told me, he already gives up and just needed to make his avatar quest compatible.

worldly hull
onyx harness
#

I doubt they’d get rid of very poor, not for pc at least. You’d be cutting out a majority of people’s personal models and would go down worse than EAC imo. Plus I have vp models that, due to sdk3 logic, will literally never show more than the medium level stats.
How would you separate those models from the so called ‘very very poor’ models? The stats look the same, the performance when used is just different.

zealous wigeon
cold yarrow
#

probably the best path is to encourage creators to actually consider performance

zealous wigeon
#

Isn't that what they are doing right now though?

Feel like they would need to use a more heavy handed approach, like giving better ranked avatars some benefit, all I can come up with though is allowing instances to set min performance ranks.

proper grail
#

instances that auto robot very poor dream

supple trout
#

dunno, the difference performance wise between very poor ranked avatar A and very poor ranked avatar B can be worlds apart. The main issue is basically, that a lot of creators do not know how where to exactly optimize. Also that as soon as it hits very poor (meaning 70.001 polys), a "its very poor anyway" comes pretty quickly to mind, which does end up in not looking as much to performance as one should.

The ranking system cannot cover all the possibilities avatars and their animators might have. If one wants a reliable ranking, then it can only be through vrchat using a "controlled environment, load the avatar in and toggle each and every parameter through in all combinations" and measure the performance (cpu time, gpu time and vram consumption) at all times, then coming to a conclusion. Which is not really feasible and even then probably misses some things.

I looked at @zealous wigeon (this is partly my feedback to you 🙂 )canny for example and see directly "vram usage", "controller performance" etc missing, "simply" counting together meshes and materials in different combinations is not the full result of how much of an impact an avatar has.

zealous wigeon
# supple trout dunno, the difference performance wise between very poor ranked avatar A and ver...

VRAM usage is already counted and is always the same amount.

But yeah, trying to measure the animator's performance would be hard.
Best they could do is estimate it, apparently layers are for example significantly more performance hungry since they all run in parallel, but while I have basically only scratched the surface of animators, couldn't they count layers and the different types of states and have a sort of lookup table/graph?

If they plug enough holes then shouldn't the performance ranking system be able to be seen as somewhat trustable?
Right now if all your avatar is a simple avatar with no toggles, standard shaders and nothing unusual in the animator then the performance ranking system should be representative enough right?

terse crane
#

hi so like i made my own avatar thru vroid, but the optimization and poiyomi shaders are really only good for pc. my brother's pc doesn't have a graphics card that supports VR so I have to just stick to my quest until i build my own pc.

with that being said, the version of the avatar i made for quest isn't really optimized for it, but i only really know blender and unity through youtube tutorials. can someone help me with reducing polygons and make it run smoother for quest while still looking good?

supple trout
# zealous wigeon VRAM usage is already counted and is always the same amount. But yeah, trying t...

Not really i think, they know that their system is more of a guideline. Yes, there are a couple of things one might take into consideration, but in the end its all about "how to effectively tell?" Which i personally wouldnt know an answer to either.

The vram usage vrchat calculates is only about texture sizes, they dont count the mesh in. (Which can use a lot as well) and there comes another issue, when is vram usage bad? Is my very poor with 170mb total usage bad compared to a good rated one with 120mb download and over 200mb vram in textures alone?...

What we would need it better guidelines I would say and also sort of "bonus points?" If it makes sense. Like "oh you get a poor rating despite using 150k tris, cause only 20k are blendshaped and your total vram is under 100mb" or such. Then ppl might care a bit more

zealous wigeon
# supple trout Not really i think, they know that their system is more of a guideline. Yes, the...

Yeah, don't get why they do not count the entire avatar into the VRAM calculations.

when is vram usage bad?
Hard to answer on PC, but Tupper did throw out an example that Good rating could be something around 30-40MB in Texture memory I think, which I think is fine. And when that metric is hopefully added it is another hole plugged. Would be far more useful if it included entire avatar size.

However, I see it as mostly useful on Quest, since it is set hardware and they know how much RAM they have to play with, if they are aggressive with it then they could probably significantly help against Quest crashing, since that seems to be caused by the tiny amount of RAM being filled.

But personally, anyone using more than 200MB texture memory for their avatar is being wasteful and shouldn't use it in populated instances, at 1GB you are either malicious or very ignorant.


What we would need it better guidelines I would say and also sort of "bonus points?" If it makes sense.
I definitely think that would be a useful addition, but would require the team to do a lot of testing, I would call it worth it.
And personally I think with a point system the metrics should be be removed overall and only kept as a guideline, far more flexible if ranks were determined using points, would be a far more complicated system though.

radiant shadow
#

200 x 80 = 16gb vram, not counting world, way too much

#

larger worlds are easy 80 people

zealous wigeon
#

Wish we could see a world's VRAM usage in VRChat, feels like some use multiple GB sometimes.

supple trout
#

Cause it probably is. With my 3070ti (8gb) I noticed stuttering pretty quickly coming up, same world with sameish ppl now on my 4080 (16gb) no big deal, but that it showed 13.5gb utilization made me almost cry

marble rain
#

100 mb vram should be the limit for avatars. reason being that if you have 40 people that's already 4gb of vram. and just by being in vr and even a simple world takes up around 2-3 gb of vram. so if you have 8 gb of vram available your only gonna have 5-6 gb of free vram. for avatars and world. and majority of worlds are around 500 + mb of vram

heady smelt
#

This is why all the good worlds have at least 3 places for people to gather, and occlusion culling properly setup.

#

So you don't have to load every avatar in the environment

#

So it is more complicated than just the addition of every avatar plus world, because you aren't always rendering them all the time.

#

Also, when your homie pops into view that has 47 materials, that's why you get a massive frame drop.

#

And will go away when you look away

radiant shadow
#

and all their textures will stay in memory until they come back 💩 '

#

(not vram)

worldly bronze
#

What are some good ways/main ways to reduce vram use in textures

#

I'm gonna put together a small page on some general tips for it.

proper grail
#

1: make them smaller.

#

done!

#

i guess theres texture packing too but thats sometimes involves shader editing to use the correct channel and it gets bleh

heady smelt
#

They still get decompressed into VRAM

worldly bronze
#

Yeah the smaller one is obvious, I was moreso thinking of more lesser known ways to do so that most people wouldn't know.

radiant shadow
#

atlas / bake set compression med/high (never none) , ignore crunch its only for download size

ivory sluice
#

and use vertex colors whenever you can

heady smelt
#

That's pretty minimal though

#

Vertex colors are great and basically free

worldly bronze
#

Unfortunately they're a bit difficult for people who aren't more technically inclined to this type of stuff

heady smelt
#

Photoshop seems to do better at compressing PNGs smaller than Blender itself too

worldly bronze
#

The ideal of the page I'm planning to make is for some general things that most people should be able to easily figure out and do on their own without a ton of Blender work, I'll definitely include it though as a more kind of advanced thing

proper grail
#

how theyre saved in the OS is largely irrelevant to the texture import settings as they are converted to something a gpu can use

radiant shadow
#

Image type dont matter , unity converts it to its own so dont bother using jpg/whatever it will be just as large as a png in unity

ivory sluice
#

the imported image size won't matter, remember that unity will convert it to dds, what matters is the asset's import options

worldly bronze
proper grail
#

hmm and there is editing UVs to keep all solid colors in one lil dot and/or overlapping mirroring bits. This does mess with shaders that use uv size like poi glitter tho

cold yarrow
mossy stump
#

What’s the poly count where Unity shits the bed and drops performance again?
Somewhere in the 60,000 tris it happens but I forget where

zealous wigeon
celest radish
#

Does anyone know where I might be able to get some help in optimizing an avatar I got off of Booth

#

for quest that is

ivory sluice
# mossy stump What’s the poly count where Unity shits the bed and drops performance again? So...

not keeping in mind the 32 bit index thing, for me starting at 140k polygons you'll have to use light performance shaders like lightmap only shaders or just lightweight overall, the limit where your performace can start getting lower regardless of shaders would be 280k (so like double of double of the max for avatars), from there you'll have to start using lod groups is possible, static batching/gpu instancing and if you can, reduce poly count of meshes.
The max allowed poly count for renderers using the 32 bit index is 4200M polys, but i doubt anyone would do that

Also keep in mind things like fur shaders will x16 your mesh's poly count, realtime lights with shadows will add x1 the count of all meshes (with shadow casters) for each light, and outline shaders will x2 the mesh's count so be careful when using these

mossy stump
#

Those were the perfect answers I was looking for. Thanks!

ivory sluice
#

yw!

ripe veldt
#

Hey guys, if anyone is around I have a QUESTion (:D), I'm optimizing an avatar for use as a fallback for when people can't see my PC avatar, it's the same avatar I normally use, but MUCH more optimized and down-scaled, I'm running into ONE really big problem that is keeping me from being able to make the avatar quest compatible, and that's the frIGGEN MATERIALS

The model in question was made in Vroid Studio, I then imported it into blender to get the polygons and materials in order. The issue I started to face came when I exported the model using CATS. The merged materials just... wouldn't apply to the model. They would just break. So, I decided to see if I could export the it as a .vrm and at least make sure all of my other changes worked, which they did! Fixed bones, polygons, everything. But no matter what I do and try, I cannot merge/fix the materials.

Does anyone have any guidance for me? ;u; 🙏

vivid night
ripe veldt
#

Unatlased

#

Atlased

vivid night
#

Did you fix the model first before atlasing?

ripe veldt
#

I'm gonna start from the beginning in Blender, I wanna make sure I am doing everything right. If I recall, I /DID/ fix the model first, but lemme make sure.

#

Just re-imported the model, clicked "Fix Model" and

Well...

#

Pretty sure this isn't the desired effect 😆

vivid night
#

do you have it saved in vroid atm?

ripe veldt
#

Whatcha mean?

vivid night
#

like you made it in the program, do you have a saved version of it in there still

ripe veldt
#

Oh, yeah!

vivid night
#

Okay by the export part there should be something like optimization settings

ripe veldt
#

Yes! 👀

vivid night
#

okay hold on will talk you through this

#

sorry it's taking forever, reinstalled windows and don't have it, redownloading it

ripe veldt
#

No problem! I appreciate the help ❤️

vivid night
#

😄 ❤️

#

Okay on reduce polygons, delete transparent meshes, it won't for all of them but it reduces it don't do edit hair cross section, it messes up your hair

ripe veldt
#

Got that! 🗒️ 👀

vivid night
#

Then reduce materials, combine hair mesh, 2 materials

#

then export

#

it will be more optimized now and when you fix and atlas it in blender, it should have a much better result

ripe veldt
#

That's exactly what I had done.

vivid night
#

Lemme know if it works properly 😄

ripe veldt
#

Well, the textures worked! But when I add the materials in Unity, I become P I N K

ripe veldt
vivid night
#

Can move the spectacular down

ripe veldt
#

How do I do that?

vivid night
ripe veldt
#

I think it has more to do with some of spots of transparency on the model? Cause like, the skirt parts TEXTURE, has a design on it, which you can see the transparented part in full scale on the white portion

#

The eyebrows, eyelashes and that stuff, i'm unsure how to fix - since separating the meshes doesn't seem to give me access to those parts. I think is mostly in part of them being hand-drawn in VRoid

vivid night
#

White parts??

#

I don't see

ripe veldt
ripe veldt
# vivid night I don't see

The white shows up on the eyebrows, the necklace, the rim of the skirt, and there's some weird aliasing problem on the eyebrow?

vivid night
#

you mean those odd grey parts?

ripe veldt
#

Yes? I think we're on the same page? Hold on-

vivid night
#

It's quick and easy but not easily explained through text

#

it will be time consuming but it will be easy peasey

#

Are you free to do that?

ripe veldt
#

These thingies

#

UHHH, it's actually 6am for me and I am doing some final looks before going to bed cause I have work tomorrow

vivid night
#

cause the meshes are too big

ripe veldt
#

📓

vivid night
#

but make sure when you cut stuff it's to the next edge and never in the middle, never between, always to an edge or you'll ruin your visemes

ripe veldt
#

Got it

#

Okay, perfect

vivid night
#

then you can highlight the parts you don't want and delete them

#

If you need more info/help msg me when you're free anytime, happy to help

ripe veldt
#

Sticky noted

timber fox
#

guys anyone knows how to use CATS altas tool?

#

original

#

but once I click "save altas to..." it becomes this

ripe veldt
#

Are conversion commissions a thing? Cause I'm about ready to just pay someone to fix this for me cause I'm losing my mind. I'm gonna go to bed and tackle this later, thank you @vivid night for the help.

vivid night
#

Free

#

I get that it's frustrating, I had to learn it by myself so, I get it

ripe veldt
radiant shadow
#

That is a vrm 'bug' you need to 'extract' the textures to somewhere then atlas or it will fail

#

(atlas has no clue where your textures are,so it just uses one) @timber fox

timber fox
#

thx

#

it works!

dusty hollow
#

if anyone knows the answer to whatever this is i'd love it. I followed sippbox's tutorial for gestures and the gestures work but my eyes are left behind and my??? visemes broke lmfao

#

I imported legacy blendshapes instead of setting it automatically with the sdk so maybe its to do with that

honest plinth
#

Looks like you have broken/missing weight for eyes vertex, they are not weight painted to head.

#

It is issue on fbx itself

dusty hollow
#

worth checking out LOL

#

yup that's it

#

oops yeah i accidentally deleted my eye vertex when replacing my eye bones

#

thanks!

heady smelt
#

feelsgood

mint topaz
#

well done!

#

have a cookie 🍪 @heady smelt

heady smelt
dark temple
#

Is there a way to merge bones or something? In unity it says mine has 309 but all of them are needed so idk what to do

cold yarrow
dark temple
#

I'll try to figure that out 😬

rose sequoia
#

Maybe you have some end/leaf bones with no weight painting influence on any mesh that you could safely delete (with the fbx open in blender)

heady smelt
mint topaz
#

it """""can""""" cause performance issues if you have like a million keywords

#

but you most likely dont

#

@heady smelt tldr

#

if you dont know how to fix it, do not

heady smelt
#

Probably a Poi thing

mint topaz
#

it can break shit

#

POI does have a few issues with keywords but its nothing to worry about

#

again, best not to touch it

heady smelt
#

Thank you, sorry for the pingle

mint topaz
#

nah iz ok

proper grail
#

It can cause issues if map + everyone present has over 160something custom keywords. Issues like shaders simply not rendering, as the keyword cap of 255 has been reached

winged spire
winged spire
#

performance will not be affected

rose sequoia
winged spire
#

also end-bones are required for proper physbone behaviour in many cases

rose sequoia
#

i am like 80% the vrchat SDK counts all bones in the armature towards the bone count for performance ranking

winged spire
#

I think

rose sequoia
winged spire
#

I'll have to check that out later, anyway gtg now...

rose sequoia
# winged spire I think

i dont think so. I have an avatar (and old version of it, at least) that had a large number of bones, like 300, but half of those were for dangly bits of different outfits which were all on different skinned meshes

#

and even after removing those skinned meshes, the sdk still counted those bones

#

(removing them as in removing the mesh component in the scene

#

its a bit an of annoying way that it works like this, tbh 😦

#

and i wish it worked dynamically like you mentioned, would be easier to work with xD

winged spire
rose sequoia
#

nah its been an issue ive struggle with and had to work around for ages. Hey if you can show me some way to have it dynamically ignore bones in the perf count (without modifying the SDK) I'd love to learn the trick!

#

(im strictly talking about the effect on the SDK perf count, not actual in-game perf impact)

winged spire
winged spire
#

that is what the "loading..." stage is after an avi has downloaded, otherwise it would be immediate

#

there used to be a mod that disabled it for faster avi loading

rose sequoia
#

i wonder if it would be a good feature to have an avatar uploaded and its calculated perf details baked in to the upload, then add an option to "trust" whatever perf rank details the avatar says it has to reduce that extra load (but keep the default option to do a proper check if people want to be more safe against faked perf data)

#

might be useful in trusted environments when people are changing avatars a bunch

dire forum
buoyant holly
#

ChatGPT is not a valid source for answering questions

toxic needle
#

shh, let the man/machine speak

tropic sonnet
#

chatgpt can be very confidently incorrect sometimes

toxic needle
#

It learned about ligma the hard way

sacred skiff
undone cradle
#

not if the issue is caused by a change that happened after 2021. xD

toxic needle
#

Second round of optimisation complete

Every texture atlased reducing the compressed size from 7.5 to 4.5mb and build size from 75 to 26mb
Accessories moved from individual meshes reducing skinned meshes from 9 to 5 (will be reduced further in the future now I know how material hiding works)
Materials reduced from 16 to 12
Draw calls reduced from 13 to 11
Unity render time reduced from avg 7.2ms to 3.8ms

#

I dont know how you guys do this, its exhausting

cold yarrow
#

haha it sure is

zealous wigeon
#

The thrill of chasing lower numbers.

wet harness
marble rain
robust anchor
proper grail
#

Its less exhausting when its part of the workflow deff. Knowing what shader features are available to shove as much into one material and set of textures is actually easier to me than setting up 13 separate materials

marble rain
toxic needle
toxic needle
proper grail
#

Im having trouble finding the usual, but the keywords are usually Bake textures in blender or something related. The main idea in the videos is to fill the uv map for each optimized material, bake all the textures/maps/masks at a reasonable resolution, duplicating all the meshes and joining the duplicates together as 1 (this step is entirely for backup reasons), removing all the old uv maps on the 1, assigning the new materials to be able to delete a lot of the old ones, and exporting with only that one mesh+armature.

toxic needle
toxic needle
#

ffs after all that theres not a single ingame performance difference

#

What am I doing wrong, is there some obscure forum comparing all types of optimisation techniques so I can know what to focus on?

vivid night
# toxic needle What am I doing wrong, is there some obscure forum comparing all types of optimi...

This time we're looking into some simple tips on how to optimize your VRChat avatar in Blender.

Rainhet's Tutorial Playlist:
https://youtube.com/playlist?list=PL2EEbgwoJzdt5kFVDyY2lliNqf7cWJeD3

#Blender #VRChat #Tutorial #Optimization

If you found this helpful and entertaining, please consider coming a Patron.
https://www.patreon.com/Aggrota...

▶ Play video
toxic needle
#

I appreciate it but I've already gone through all of that sort of thing

buoyant holly
#

question where you in a world by yourself

toxic needle
#

ye

#

I was going by the steamvr render timing (just fps basically), I tested just normal, hi/low mirrors, and with others in the world but no dice

buoyant holly
#

at this might be handy for measuring the difference between the Avatar before and after

toxic needle
#

Unity frame render time went from 7.2ms to 3.8ms but no change ingame

buoyant holly
#

it still has to render the everything else besides the avatar

toxic needle
#

Unity environments are identical, only difference is the avi

buoyant holly
#

if you're running vrchat in VR it would be doing more than desktop because it basically as to render the scene separately for each eye

toxic needle
#

But I would've though that that level of optimisation would have some measurable effect

buoyant holly
#

you're not going to notice a huge difference with like 2 draw calls

toxic needle
#

whats the thing to focus on then to get the most improvement?

buoyant holly
#

still probably going to be helpful the optimizations you made and out of curiosity what framerate where you running at anyway

toxic needle
#

90hz oculus link cable, I realise now that I should revisit some of the oculus debug settings again

buoyant holly
#

vrchat will not be running above the frame rate cap

#

so even if like the actual frame rate went from like 92 to 95 you're not going to see it

toxic needle
#

I'm trying to get a stable 90, not alternating between 45 and 90 fps

buoyant holly
#

then you would have to hit 90 all the time because any drops below 90 would instantly drop it to 45

#

question does your frame rate stay at 90 if you use like one of those Quest compatible public avatars

#

just wondering to see as far as if it's like the amount to draw calls dropping your frame rate or just like the basic cost to run any Avatar

toxic needle
#

Alone with no mirrors it will be consistent 90 my home worlds

buoyant holly
#

of course mirrors are going to drop your framerate because it's literally rendering the world twice

toxic needle
#

I know that, I still want to improve it as much as possible

#

I should test with a fallback in the mirror first to see if the test I'm doing is useful at all

buoyant holly
#

yeah good idea and definitely helpful the optimizations you did just it's not necessarily going to magically fix your FPS given that it wasn't like a huge reduction

toxic needle
#

ok thank you

#

so million dollar question, what is the best / most efficient optimisation that can be done

buoyant holly
#

I guess that would depend on the model in question as far as what needs help the most besides more just in general get the numbers as low as you can go

toxic needle
#

I guess I mean for any avatar like materials, skinned meshes, the best way to do clothing. Things that have the biggest impact on performance

rose sequoia
#

my understanding is, generally, focus on reducing draw calls. So reduce the number of materials and mesh renderers.

#

Most of the time those will be: What a chonky unoptimized avatar will have way too many of; and probably give most bang for your buck in terms of effort.
At least, thats the way I understand it

toxic needle
#

Awesome thats a few ideas i can use moving forwards thank you

rose sequoia
#

A super easy thing to quickly cut down on your avatar's VRAM usage is to lower the resolution of your textures. Like if your avatar is in a bad place using like 500+ MB vram for its textures, halfing the resolution on all those textures will probably save you a whole bunch of vram usage. Even easier than reducing mats/meshes

#

Less VRAM = it will take longer/more avatars before people hit their VRAM max and start chugging

toxic needle
#

vram is in a good place for now, 26mb with 2 regular atlases and an emission one, unless theres a better way?

rose sequoia
#

(i dont think you'll see, like, granular perf increases from lower VRAM usage, its just to help not contribute to capping people out in a world too quickly)

buoyant holly
#

26mb is not a whole lot of vram compared to most avatars

rose sequoia
#

yeah 26 is great compared to whats out there

toxic needle
#

double checked that number from the unity tests and correction, build size is 26, vram is roughly 70. Still pretty ok

rose sequoia
#

yee. I would probably put "optimizing your vram" on the low priority list at that level

#

assuming you cant getany quick free wins by lowering any rogue textures down a bit in res

buoyant holly
#

and if it's helpful contacts the reason to focus on draw calls is because those are aspects of the Avatar that affect CPU

toxic needle
#

The documentation recommends splitting the head because of the blendshapes if the body mesh is large, is there anything that explains the process? If so I could try adding the clothing to the big body mesh if thats a good idea

rose sequoia
#

explains how to separate teh head from the rest of the mesh?

toxic needle
#

in terms of the setup afterwards

buoyant holly
#

and question how many triangles is your avatar anyway

toxic needle
#

69800

#

nice

rose sequoia
#

nice

buoyant holly
rose sequoia
#

oh yeah, would need to change your animations that control any blendshapes on your head

#

to point to "head.smile = 100" rather than "body.smile = 100" etc

toxic needle
#

no gesture animations for now, I might try somewhere down the line but thats not a complication atm

#

I do have separate torso and leg meshes from the body (which is face/neck/hands) cause of clothes clipping, and getting the weight painting just right isnt something I want to spend time on unless its something really recommended

buoyant holly
#

question is your clothing something that toggles at all or are they always on

rose sequoia
#

this i think is a bit debatable - but you might find you'd get more performance by reducing draw calls by combining your leg/torso/body together and just adding a handful of blendshapes to squeeze those parts that clip (rather than turning the meshes off). Maybe.

toxic needle
rose sequoia
#

I believe there is also some magical way to discard parts of a mesh through shader somethingsomething which would mean you could avoid even needing to add the blendshapes

buoyant holly
#

UV discarding is more efficient rendering wise than blendshape

rose sequoia
#

yeha tahts the one!

#

so if you wanted to try and learn how that works, you can merge basically all your body together to reduce a bunch of mesh renderers

#

and use UV discarding to hide parts that you are currently relying on turning meshes off for

buoyant holly
toxic needle
#

ah shit here we go again

#

So separate the face to get the blendshapes away from the majority of the polys and then move everything (except maybe the clothing for outfits versatility) to the same mesh

#

That is fantastic fellas, thank you so much

rose sequoia
#

When im very set on a piece of clothing being "the main one i'll use" I also merge in that clothing to the body mesh, if it wont add too much complication

#

Although i keep a "working" copy of the separate body and clothing meshes and if i ever make changes to them, i change those working versions, then re-merge