#avatar-optimization

1 messages · Page 13 of 1

low mural
#

Probably just a few outfits

waxen estuary
#

Except that compression needs to happen before it is sent to GPU for storing the textures 💀

errant flint
#

Will optimization that avatar take more time?

waxen estuary
#

It depends honestly

low mural
waxen estuary
#

On how big each texture is and how long the tools take to atlas them.

waxen estuary
#

as in the vrchat client must decompress them first before sending to gpu

#

and they only have about 0.11ms per avatar

errant flint
#

Also i was thinking like i didn't want to use this avatar in public world bcz of "avatar rippers". So maybe with some friends and not many people...

waxen estuary
#

💀

waxen estuary
#

all they need is avatar id

low mural
errant flint
#

Isn't like if i go to public world

#

Theh will rip it?

#

If i wear it there

waxen estuary
#

also 12 MB total vram my avatar uses in textures

#

and that is with atlas

errant flint
waxen estuary
#

with face and eye textures separate for performance reasons.

stray tangle
#

the idea that "optimized = bad quality" and "non optimized = good quality" is flat out wrong

waxen estuary
#

(would not want each vismex cause redraw calls for entire avatar every frame lol)

stray tangle
#

some techniques (like detail textures) that can be used to reduce texture memory can also help increase detail

#

also, 115 sknined meshes? what do you even have on there?

errant flint
#

Guys if i go to a public world, but I don't wear my avatar there, can the avatar be ripped?

waxen estuary
waxen estuary
errant flint
#

I see. So i will just wear it anywhere and don't give shit

waxen estuary
#

Even if you do not go to public worlds or even if you are offline you can be ripped.

low mural
stray tangle
#

you should honestly not wear that avatar in any world besides your own home world with no one else in it, because you're playing a social game, where you also have to be mindful of other people. just like how other people in let's say, a bar, would not appreciate you walking in shouting profanities, smelling like you haven't taken a shower in two months, and blasting music on a speaker, it's not very nice to other people to walk into a VRChat world wearing an avatar that causes their framerate to be cut in half, and is heavier to run than entire worlds

waxen estuary
low mural
stray tangle
#

the only time in my opinion where it's acceptable to not optimize a model whatsover, is if it's being used for renders outside of the game. in offline rendering, it doesn't matter if something is poorly optimized, it'll just increase the render time. in a game, especially a VR game, where you have a limited amount of time to render each frame in order to render them fast enough, optimization will always matter

ivory sluice
errant flint
#

So I can have 2 versions

stray tangle
slate sinew
errant flint
#

1 with few friends and other for joining big parties/populated worls

errant flint
stray tangle
slate sinew
stray tangle
#

used to be that I would be nice to basically everyone, but nowadays I'll be really nice to people actually doing good work and optimizing stuff, and harsher towards people who have little respect, patience, or don't care about optimizing

low mural
errant flint
#

Or with low end gpu?

stray tangle
errant flint
#

Yeah I see alot of poor avatars but never crashed

waxen estuary
#

At least I tried to get mine from 160k polys down to about 55k polys.

#

However bones is my issue now

slate sinew
#

What sacred failed to mention is that MOST avatars are very poor, like the vast majority. Poor is where you should aim and medium is a good goal. Green will be unattainable for new people

waxen estuary
#

171 bones with about 75 on base and 75 on hair lol

slate sinew
#

Because simply put you won't know how

stray tangle
#

the problem with the Very Poor rating is that not all VP's are created equally. some stats that put you in VP will not cause much of a performance problem, but some others will. and some things, like very large animators, can cause even worse performance problems, and isn't reflected in the performance ranking system at all

slate sinew
#

I can't even hit green and I have a lot of help

errant flint
slate sinew
#

Skilled avatar creators have a hard time hitting green

stray tangle
errant flint
#

Quest comba is medium?

stray tangle
#

I'm assuming some things here, obviously

stray tangle
slate sinew
stray tangle
#

I make all of my assets ¯_(ツ)_/¯

low mural
errant flint
#

Guys

waxen estuary
# errant flint 160k poly😶

base hair, outfit and head contributed so I switched to 21k “low poly” base (zin fit), cut out the ears on head as I hide them with the hair, and decimated the rest that is higher than 4k polys.

slate sinew
#

I haven't figured it out yet.

errant flint
#

What is the first one?

stray tangle
#

so optimization is what I'm thinking about from the very start

waxen estuary
#

hair was 38.8k polys originally lol

slate sinew
#

So uh.. first off the legs don't look like they're going to work

stray tangle
# errant flint

looks like you got your model in a VRM format, which is not what VRChat uses. you or the creator likely used a VRM converter for unity, and didn't remove the components that you're not allowed to use for VRChat

low mural
errant flint
#

I used vrm converter

#

So will that affect anything?

waxen estuary
stray tangle
#

I see. did you not tell the creator it was intended for VRChat?

low mural
errant flint
#

Yeah she know

#

What will autofix button do? There

waxen estuary
waxen estuary
errant flint
#

Or the opposite?

stray tangle
# errant flint What will autofix button do? There

it will remove all of those components from the avatar. it should be fine to do, but the only thing is that the Springbones, used to add physics to hair and such, will also be removed. those will need to be redone with VRC Physbones

stray tangle
waxen estuary
errant flint
#

I did upload

waxen estuary
#

👀

errant flint
#

It worked fine

slate sinew
#

What even is this avatar

errant flint
#

Eyes were funny...lol

#

This

#

See the eyes lol

waxen estuary
#

that can totally be optimized to be like @sudden jewel’s (sorry for ping) being in good state.

#

Like I said no need for 115 skin meshes with a lot of 8k textures.

errant flint
#

Are the eyes bcz of the componets?

stray tangle
# errant flint

out of curiosity, can you screenshot the rest of the avatar stats?

#

I'll try to refrain from immediately trashing the avatar and instead try to give suggestions lol

slate sinew
#

That's a better idea that's why I haven't asked for help optimizing yet

stray tangle
#

I don't have a problem with people who are actively looking for ways to optimize avatars, and are making efforts to do so. what I have more of a problem with is people who give 0 shits about optimization, or are trying to add/do things that will actively make the problem worse

#

I'll gladly help with optimization

#

just ask @ripe shore lol

ripe shore
#

hahaha yeah learned a lot :p

#

my avatar basically looks no different than when I started but its so close to being medium rated

#

finished picksheeting my avatar today and started over from high poly mesh as part of that

#

entire outfit is in a 1k texture

#

and the lines look mint

slate sinew
#

If you promise not to yell at me I'll consider

#

🧍🏻

#

I fear many things

stray tangle
#

to give you some context for this convo, someone asked for help uploading an avatar they stated was purposely not optimized whatsoever, stating them owning a 4090 as the reason, and I was quite harsh at them at first, then I explained it's due to my patience having gone down over the years

slate sinew
#

Ask @still perch

stray tangle
#

"used to be that I would be nice to basically everyone, but nowadays I'll be really nice to people actually doing good work and optimizing stuff, and harsher towards people who have little respect, patience, or don't care about optimizing"

ripe shore
stray tangle
#

but I can promise to give you pointers on how to do better

stray tangle
#

||two things in there are actually my doing 😂 ||

#

||the ork in the thumbnail is the high res sculpt of a body I made for a friend, and the giant booty is what happens when I overdrove the booty blendshape on a quest fallback avatar I made for Red lol||

ripe shore
#

I wish I could define a set of rules for some form of automatic loop deletion in blender

stray tangle
#

I know someone was working on doing an auto loop dissolver

ripe shore
#

or at very minimum get a reliable mirror select

#

I'm completely redoing the loop deletion and back at 170k polys D:

slate sinew
#

@stray tangle when can I harass u about this model

stray tangle
slate sinew
#

I am real bad at written instruction unless you can type it out explicitly ... unfortunately for me I'm very new to blender

ripe shore
#

take frequent breaks

#

speaking from experience

stray tangle
#

it will be frustrating at first, taking breaks and coming back is important

#

the coming back part is important, giving up is not the answer lol

ripe shore
#

I've kinda been hyperfixating on it for a while now and I've had 2 days now after many hours of working I've been unable to figure out what people are saying when talking to me

slate sinew
#

I feel like I should give you money or something if you're gonna help because I'm dead ass one of the most stupid individuals you'll ever meet

#

But I'm very nice so there's that

ripe shore
#

it was like I hear the words and know they're english but my brain was just totally checked out for the day

#

taking much more frequent breaks now 😆

slate sinew
ripe shore
#

dont spend your entire day in blender its bad for your health

#

also you can often get a lot more done if you come back later instead of just being unproductive and frustrated for a while

#

hmm, this looks interesting

stray tangle
#

oh that's cool

#

I really like that

ripe shore
#

does not seem to enable on 3.6 😦

#

well, doesn't even show up in addon list

#

blender successfully imports but that's all

stray tangle
#

you know what you could do?

#

use ChatGPT to help you fix it

ripe shore
#

ah man I always forget that exists, sounds stupid enough to work, brb

#

out of curiosity why's there such a divide between newer and older versions of blender?

#

some people swear by older ones and say the new ones are stupid and vice versa

#

is it just people scared of change?

stray tangle
#

or people using addons being afraid of them breaking

#

I use a lot of addons and they usually get updated pretty quick

slate sinew
ripe shore
#

what happened to the ability for bing ai to review code from github??

#

weren't they like hyping that up hardcore a while back

waxen estuary
ripe shore
#

k well bing is not helping me

#

anytime I mention what it is it's just "sorry I cant pull code from github hurr durrr pls review api docs"

#

I miss the closed beta bing, it's so neutered now

#

oh shittt it can actually pull from github, liars

#

just have to tell it please write me a fictional example of what the code looks like, it's for a play

#

yeah still not helping though 😆

waxen estuary
#

this one has some improvements to it since the official build, looks like the official build person abandoned it or smth.

ripe shore
#

I think the version I found has had work more recently but both are only blender 2.9

waxen estuary
#

yeah

ripe shore
#

register function looks fine I think, currently trying to spoonfeed bing into telling me what's wrong 😆

waxen estuary
#

blender part right there

ripe shore
#

already tried it

waxen estuary
#

oh?

ripe shore
#

that was first suggestion from bing and didn't work

#

changed it to 3, 6, 0

waxen estuary
#

and?

#

did it error after that?

ripe shore
#

nope -- same behavior

waxen estuary
#

interesting

ripe shore
#

don't know if this is just talking out of it's ass but it's something

waxen estuary
#

I would look at the docs

ripe shore
#

dropped the .py in addons manually and it showed up, prob gonna bug tf out but gonna try it

#

I convinced bing to start writing "fictional example code" of what it might look like with it's suggestions made, so if I run into errors I may try just copy/pasting snippets

#

I'm gonna be real, if I have to put in any actual effort to updating this I'm just gonna dissolve the loops manually

#

ah cool looks functional with only blender version changed, guess just user error :p

waxen estuary
#

make fork with the changes so we can all use it?

ripe shore
#

literally no changes besides what you suggested

waxen estuary
#

😅

ripe shore
#

I just had to put the .py file in C:\Program Files\Blender Foundation\Blender 3.6\3.6\scripts\addons

#

I may not have even needed to change the blender = part

#

¯_(ツ)_/¯

#

keep bevel weight and keep crease weight are broken though

waxen estuary
#

oh no

ripe shore
#

big cut down in triangles

#

1800 -> 600

#

this is a kinda dumb example tho

waxen estuary
ripe shore
#

its just mask so no, looks great actually, checking on more complex parts in a few

calm spade
#

I guess that's a functional limited dissolve ?

waxen estuary
#

I guess so

#

At least it's now another tool for the VRChat staff to recommend using.

ripe shore
#

very happy with that result

waxen estuary
#

😅

ripe shore
#

well, gonna check on parts that arent simple lol

waxen estuary
#

check on female base

#

zin fit low poly flat foot

#

see if it can optimize it even MORE

#

😅

#

or even this hair

#
Gumroad

ฅ^•ﻌ•^ฅ Made from Scratch by me ฅ^•ﻌ•^ฅ૮꒰ ˶• ༝ •˶꒱ა ~♡︎ File includes the FBX for the Hair૮꒰ ˶• ༝ •˶꒱ა ~♡︎ Works with WetCats Free Hair Textures - https://wetcat.gumroad.com/l/HairPackFree૮꒰ ˶• ༝ •˶꒱ა ~♡︎ Raccoon Texture by BOO - https://discord.gg/PRJ3gSjr૮꒰ ˶• ༝ •˶꒱ა ~♡︎ This Hair is rigged and weight painted૮꒰ ˶• ༝ •˶꒱ა ~♡︎ Free for reaching ...

#

free hair and best of all complex too

#

47 strands

#

and ~38.8k poly

#

I would really flip if that extension can do better than my decimation on it where I could only get it to 8k but with some quality loss.

#

😅

ripe shore
#

sec

slate sinew
#

Ideally I would like to fix this, Unfortunately I am not entirely sure how

#

( I just got back to home)

ripe shore
waxen estuary
#

you might have to split each strand though for it.

ripe shore
#

there's a button in here to do it somewhere, just can't find it

waxen estuary
#

wait there is a tool in blender to convert to quads without quality loss on the mesh at all?

stray tangle
#

you can do alt + J to convert tris to quads, but it may not work properly in all cases

ripe shore
#

I mean, it's getting the right idea, I think the tris to quads conversion is really messing with it more than anything

#

areas like this it obviously can't do nothing about

#

let me see if I can find some hair that's native quads, I guess I could try it on my avi's hair too

calm spade
#

To note that this is great for static meshes, but for skinned ones, that'll fuck up the deformation quite a lot

ripe shore
#

for a one click tool I am quite satisfied

waxen estuary
#

yep

ripe shore
#

99k -> 88k tris (doesn't include just hair but only hair was optimized)

waxen estuary
#

not too bad.

#

how much did it reduce the tris on that other hair I provided before decimating?

calm spade
#

That's the kinda stuff that unsubdivide would work well for, given that most are are made out of curve that the creators were a bit overzealous about when it comes to loop count

waxen estuary
#

true

ripe shore
#

hard to say because it was missing a good chunk of them due to the conversion, gimme a few lemme run it again

#

not a fan of unsubdivide much for stuff like this, doesn't take angle into account angles at all and if your iterations are odd instead of even it can result in weird stuff

waxen estuary
#

yep

ripe shore
#

I tried unsubdivide on my facemask before and got poor results

#

sometimes it's too much, sometimes it's too little, there's just not enough control over it

#

@waxen estuary do you have a pic of your hair with wireframe on?

#

just want an idea of what I'm going for quality loss

waxen estuary
ripe shore
#

yes

waxen estuary
#

if you want I could dm you file blend file to it.

#

since it is a free hair lol

ripe shore
#

sure

#

stuff like this gonna mess it up I think

#

tri to quad conversion is not perfect

waxen estuary
#

sent

waxen estuary
ripe shore
#

I think I got some paid long hair that's native quads too, sec

waxen estuary
#

oh cool

#

and is it subdivided like that one too?

ripe shore
#

can't get anywhere close with the tris -> quads as I can with just a collapse decimate at like 0.23 ratio with the free hair

ripe shore
waxen estuary
ripe shore
#

like 20k I think

#

helped but didn't make much of a dent like collapsing did

waxen estuary
#

nice

#

and after collapsing after doing that about 8k or less?

ripe shore
#

yup

#

well, even just collapsing without doing that was basically the same as your result

waxen estuary
#

nice

#

issue on my end is fixing the painting on it so it looks the same as before though.

#

😅

ripe shore
#

28k -> 12k, 20 deg min angle

ripe shore
waxen estuary
ripe shore
#

for a one click tool I'm extremely happy

#

makes manual cleanup so much faster, basically all I was doing is checking UV seams and angles anyways when manually loop dissolving

stray tangle
#

if your mesh is already UV'd, but there are no seams, go to the UV editor, select everything, and do UV > Seams from islands

ripe shore
#

gonna optiloop my whole avatar

#

should be a major speedup and get me 90% of the way there, plus no human error deleting high angle loops without looking close enough

#

I need to find a new shirt and pants, these are disgusting

#

these r gettin decimated probably

stray tangle
#

could just retopo it

#

or if you're really lazy, use something like quad remesher on it

#

but then you don't get as much control in terms of how much geometry you have and the loop direction

ripe shore
#

quad remesher as in alt J or something else?

#

idk, even the bumps in general are just kind've a disaster on this shirt tbh

#

looks like simulated cloth from some program

calm spade
#

Triangulate and then tris to quads ?

calm spade
ripe shore
#

ahh lol

stray tangle
ripe shore
#

ahh

calm spade
#

QuadRemesher my beloved binglove

stray tangle
#

I just do retopology myself

ripe shore
#

if I was making a bunch of avatars I'd probably look into it lol

#

not interested in dumping money into this one especially since I can't even redistribute it

stray tangle
#

I don't even recommend it much for avatar work, I'd mostly recommend it for like cleaning up sculpts

#

but you can use it for avatar stuff

#

I just don't like the control I give away

ripe shore
#

just gonna stick with collapsing for now

#

need to find another shirt/pants model eventually

#

not happy with these

#

ah man yeah this addon is so nice

stray tangle
#

could you send me your modified version of it?

ripe shore
#

all I did was change blender = (2, 9, x) to (3, 6, x)

#

I don't even know if it needs changed tbh

#

didnt try putting it in addons stock

#

if you want to try it stock unmodified

ripe shore
# ripe shore ah man yeah this addon is so nice

there's still stuff like this where it's missing the human factor of "this makes it look a lot worse for not that many saved triangles" but man it does a great job, can also just deselect those parts before running it too

waxen estuary
#

nice

ripe shore
#

something that does bother me slightly is the runs are not repeatable

#

which loops it selects do vary just a smidge between runs, just unclicking and clicking it again changes the outcome slightly & running it twice with same settings does delete more

waxen estuary
ripe shore
#

possibly -- or just changed to help alleviate floating point errors (I assume that's what it is)

waxen estuary
#

most likely yes

waxen estuary
ripe shore
#

mesh -> clean up -> optimize loops

waxen estuary
#

ok

ripe shore
#

it's nice that you can just have it select only too instead of dissolve for you, if everything looks good but something not quite right you can just deselect and dissolve manually

#

well, I think at least, need to actually try it, might be broken 😆

waxen estuary
#

rip it changes nothing for the base I use.

ripe shore
#

make sure dissolve is checked in the options

#

and you have to set a min angle > 0

#

min angle is controlling how much effect

#

also gotta be in edit mode

waxen estuary
#

o

#

so I could get away with things like min angle of like 5?

#

I love this in blender now.

ripe shore
ripe shore
#

I've also been selecting certain parts with L and running it only on those with more aggressive settings

#

if you want it to not mess up textures make sure to go to UV editing, UV -> Seams from islands

stray tangle
ripe shore
#

yeah keep bevel weight and crease weight are broken

waxen estuary
ripe shore
#

sweet 🙂

waxen estuary
#

lol dissolve turns it into this

ripe shore
#

well, dissolve also has a lot less triangles there :p

#

need to change the ratio on dissolve

waxen estuary
#

ye

#

prob something like 40 or 45

#

yep 50 is the number actually.

ripe shore
#

168k -> 106k

#

farther than I got with manual loop slicing which took like 8 hours + no UV seams messed up in the process or accidential deletions that cause issues hours later

#

guess its kinda hard from previews to see much diff

ripe shore
#

trying to do manual loop cleanup too but pretty much every loop that it didn't get is a UV seam or alters the geometry too much, very happy with results
I have many UV seams because I picksheeted my textures

waxen estuary
#

Welp

#

looks like I went from 55k -> 70,435 😅.

#

Just by adding shoes

#

😅

ripe shore
#

oh god shoes are awful for polys

waxen estuary
#

ye

ripe shore
#

mine are 12k even after loop cleanup 😖

waxen estuary
#

darn even worse the shoes are is all triangles too.

ripe shore
#

still haven't gotten an answer if it's cheating or not but when importing your FBX you can click "keep quads" and it'll count a quad as 1 polygon instead of triangulate them

#

75k vs 109k

#

I mean, a quad is a polygon, so I don't think it's really cheating, but also could just be an oversight since the docs use polygons and triangles interchangably

#

unfortunately it pushes my material slots to poor rated and I'm aiming to medium, so I've gotta fix it the normal way

#

you can have up to 32 material slots in a poor rated avi, 16 in a medium rated

stray tangle
#

you're basicalling doubling draw calls

#

lol

#

rip super reaction

ripe shore
#

lmao I dont even know how it gets clicked sometimes

#

clumsy ig

#

wish it was possible to mirror a polygon and only have it count as one, can't imagine it'd be any more friendly on the gpu though

waxen estuary
#

it's not.

ripe shore
#

yeah 😦

#

argh, painting abs on this avatar would save me so many triangles over having them modeled

#

body + hair is 64k tris

#

I think getting it from 106k to 75k is going to be exponentially harder

stray tangle
ripe shore
#

hmph yeah I guess I have oodles of free vram at this point

#

9.6MB of texture use for entire avi 😆

stray tangle
ripe shore
#

ooh I can even use the higher poly model to bake

stray tangle
#

there you go

ripe shore
#

gonna bake it for jacket too

waxen estuary
#

o my

ripe shore
#

ok well thats stpid I think it just baked everything except abs

stray tangle
ripe shore
#

only got body selected, rest turned off in render

stray tangle
#

aight

ripe shore
#

there be no abs, unless just cant see them 😦

ripe shore
#

welp, might just call that a stopping point, not getting anywhere

#

no idea why it's not baking that unless it's just not detailed enough to be a normal

waxen estuary
#

decimated hair a little more just to remain out of Very Poor performance 😅.

ripe shore
#

sweet 🙂

waxen estuary
#

at least it remains in good state after that 😅.

#

now time to save as my atlas backup blend file overwriting the old one so I can atlas this stuffs.

#

(again lol)

#

then merge the mesh's

ripe shore
#

if you have anything that doesn't deform as well you can take off the armature modifier and parent it to a bone to make it a meshrenderer instead of a skinnedmeshrenderer, learned that the other day

waxen estuary
#

👌 all the UV maps have same name, now to atlas it.

#

the plugin only works when all of the UV maps have the same name lol otherwise it screws up one of the mesh UVs.

ripe shore
waxen estuary
#

for me I do it differently

ripe shore
#

I just took armature modifier off both in blender, and then clicked them both and parented to head bone in the armature

#

now I have more skinnedmeshrenderers to play with and it's more efficient

waxen estuary
#

I atlas by ensure all UV's have same name and that all mesh has 1 UV (if not I look to see if empty UV's and then delet the empty ones)

#

And then after it is atlas'd I join the mesh's

#

so then only 1 skinned mesh in the end 😅.

ripe shore
#

sweet

#

I would if I didn't have so many dang toggles

waxen estuary
#

toggles are a pain yes

#

but for me a basic one is ok.

ripe shore
#

legs, chest, head, arms, hair and stuff are all one skinnedmeshrender

#

but I have outfit toggles and jacket toggle 😦

#

merged shirt and pants to one mesh and jacket to a seperate mesh, shoes toggle as well

waxen estuary
#

delet outfit toggles and jacket

ripe shore
#

like em tho + its only polygons I have to get down at this point

waxen estuary
#

but at which point are they becoming a pain in the butt though?

ripe shore
#

a week ago 😄

#

texture memory use only 9.6 MB too

stray tangle
#

also, be mindful of multiple materials

#

the baking targets all materials of a mesh, and it will write to whatever texture node is selected for each material

ripe shore
#

couple more in unity for neon hue shift and quest

stray tangle
#

on the body

ripe shore
#

it is 😦

stray tangle
#

can you show me your baking settings

ripe shore
waxen estuary
#

Welp

stray tangle
#

then select the high poly mesh first, then the low poly one

waxen estuary
#

I might have to use a custom size for those 4 4k textures on the atlas?

ripe shore
# waxen estuary

be careful with the huge atlases if they're like 4k or bigger, I seem to crash questies with those

ripe shore
#

or wait, was my atlas 8k, cant remember now D:

#

either way I think 2k is recommended max 😦

waxen estuary
#

that is like an oblong 10k x 8k atlas 😅.

ripe shore
#

yknow, most of your atlas could probably be turned into a pick sheet really easy

waxen estuary
#

the ones on the top is to a leather choker on model 😅.

ripe shore
waxen estuary
#

o

ripe shore
#

this is a 1k texture and the details are crisp af because I just selected faces from the UV and mapped them to parts of texture file by hand

#

its not hard just tedious

stray tangle
# waxen estuary

also, the body should likely be the biggest image in your atlas. everything else you have on there looks to have little to no detail, and could be a lot smaller

stray tangle
#

it might be better to make the atlas manually

#

you can do rectangular atlases, but be sure to use power of two dimensions

#

for example, 4096x2048

#

so basically two 2k textures side by side

#

you could have half of that be the entire body texture at 1k, and then the other square could be everything else

#

that other square is basically four 1k textures

ripe shore
waxen estuary
stray tangle
waxen estuary
#

it does allow config custom size on them.

stray tangle
#

you can put them in different collections within the same scene

waxen estuary
ripe shore
#

try like 512x512 see what happens

stray tangle
#

1k is definitely the highest I would go for the shoes yea

#

but 512 is what I'd recommend trying

waxen estuary
#

ok

#

so do that for shoes and the choker textures at 512?

ripe shore
stray tangle
ripe shore
#

exactly the same place yes, perfectly overlapping no because one's missing polygons

stray tangle
#

can you set your max ray distance to 0.5 and extrusion to 01.?

waxen estuary
#

I probably could size down these other 2 as well:

waxen estuary
#

the black with white and the lighter black with a goldish color.

stray tangle
waxen estuary
#

due to that yeah lol.

#

size down body to 2k?

stray tangle
# waxen estuary

you could make that image a bit wider, like I said you really want power of 2 dimensions

#

the right half should have the same dimensions as the body texture

#

with every other texture in it

waxen estuary
#

I see

ripe shore
#

this looks like the normal for just the hair or something?

#

after applying all transforms to both armatures and meshes

stray tangle
#

lol could be

waxen estuary
stray tangle
#

for the bake, make sure the body material is sepated to its own mesh

waxen estuary
#

probably could size that down a little bit as well.

ripe shore
#

this is so stupid, should've called it a stopping point

#

can't figure out what's wrong

stray tangle
#

send me the blend file and I'll have a look at it

ripe shore
#

internet's 1 mbps up, might do an overnight upload lol

stray tangle
#

you could copy paste just the meshes into a new project

#

and just send that

ripe shore
#

kinda over it for tonight

stray tangle
#

alright, no worries

waxen estuary
#

so much wasted space though.

#

might be good to size it down to at max 4k on the atlas?

ripe shore
#

you could manually cram some of those textures in the blank spots

#

and then just go to uv editor in edit mode, select the maps and drag them with G

stray tangle
ripe shore
#

dont know why I used the plugin for so long

stray tangle
#

no planning I just rushed it lol

ripe shore
#

there was a 1 minute youtube video I've watched like 6 times on how to do it 😆

#

it just doesn't work for me and I don't know why

stray tangle
#

can you screenshot your shader settings on your low poly mesh?

#

nvm you can do it tomorrow

ripe shore
#

512-normal was just screwing around

#

shaders are identical for the low poly and high poly mesh, they use the same material

stray tangle
#

can you disconnect every connection going into the shader, and select the Body Normal node before baking?

#

oh wait

#

remove the mat on the high poly mesh

#

or if the high poly mesh already had a normal map, you can plug it in to also bake that detail, but make sure it's a different material

ripe shore
#

alright, made different material on the high poly with these nodes and kept the old material as-is on the low poly -- now just have this mess

#

its gotta be something with my UV maps, hold on

stray tangle
#

if the meshes have multiple UVs, make sure the camera icon is set on the correct UV map

ripe shore
#

map looks like garbage but got something I guess, somehow wrong UV got selected again 😭

stray tangle
#

getting somewhere, what is that 512 normal exactly?

ripe shore
#

just a light skin looking texture

#

sec

stray tangle
#

are you sure that should actually be added here?

ripe shore
#

nope

#

lemme take that off

waxen estuary
#

when I plan it out just right only for this to happen 😅

#

instead of 2048 x 4096

#

😅

stray tangle
#

lmao

ripe shore
#

oh gosh 😭

#

ok im going to bed

#

goodnight

stray tangle
#

lmfao

#

night .o/

waxen estuary
velvet crow
#

I can't remember the countless issues I've had trying to bake normal maps before.

ripe shore
#

starting to think they just aren't defined enough to be baked by blender

#

I tried installing bakelab which got me a good normal map but again it's missing the abs

#

even in an AO map they don't show up

#

maybe I should be looking at a displacement map instead of normal?

velvet crow
#

Usually those types of issues are caused by your bake settings. Often it's related to caging, max ray length, or other settings.

#

If you're going for extra detail on a simple mesh, then it is normal maps, yes.

#

Although if you're using the multi-res modifier, I again highly suggest simple bake since it can automatically make from multi-res.

ripe shore
#

watched that video so many times now 😦

velvet crow
#

I'm not one to shill paid assets, but it's ridiculous how good simple bake is at removing so many variables and issues from the baking process

ripe shore
#

wouldn't care buying it but I'm not convinced I'd get different results

#

I'm getting what appears to be a good normal out of bakelab (also recreates materials and removes variables) but abs aren't there

stray tangle
#

what shading mode are you using in Poiyomi?

#

Flat shading will not show any normal detail properly

ripe shore
#

not even to that part yet, still in blender

stray tangle
#

I see

#

yea likely baking settings not being proper

#

you could also add a Subdivision modifier to your high poly body to make the details even smoother and more defined lol

velvet crow
#

I would just reconfirm all of the objects that you're using and any modifiers you have

ripe shore
#

I am getting results, it's just only for higher detailed & small areas (the corrupted looking chunk is hair tex)

velvet crow
#

All I can say is that I do remember having a lot of issues similar to this one, and it's related to how long the ray length is or if you're using cages or not. Never figured it out and it was too frustrating to solve.

ripe shore
#

should I be removing the abs on my low poly mesh and then baking selected to active?

#

instead of leaving them there before baking

velvet crow
#

You can also double check if it's using SRGB or non-color. It should be using non-color. 32-bit float also helps with some detail

ripe shore
#

it's non-color 😦

stray tangle
velvet crow
stray tangle
#

it will help the sillouette if the mesh generally has the shape of the abs

#

you can also use a shrinkwrap modifier on the low poly mesh to make sure it's actually conforming to the shape to the abs on the high poly mesh. you can use a vertex group to make the shrinkwrap only affect the chest

velvet crow
#

The point of baking is to calculate the difference between your higher poly model and the low poly model (afaik). So if the detailed abs are part of your low poly model and are not part of a multi-res modifier, it won't bake to anything.

stray tangle
velvet crow
#

I would suggest testing in a new file, just to get to workflow down. I generally recommend the multi-res modifier rather than selected to active or caging.

#

Like take any shape, and then do some sculpting on it, then test the bake

stray tangle
velvet crow
#

I understand

#

I got to be honest though, whatever you're suggesting sounds really complicated for what they need to be solved

stray tangle
#

but yes, I agree using multires to sculpt in finer details helps

stray tangle
velvet crow
#

Last time I will say it, but again, this is why I use simple bake. I can literally just use a multi-res, modify the original mesh topology if needed, and then select normal and press bake and it works. No other config necessary

velvet crow
#

Not that the method is wrong, but when debugging things like this, it can cause more problems

stray tangle
#

you can always do it after first confirming that your bake works fine

ripe shore
#

what even is a multi-res?

stray tangle
#

allows a mesh to have "virtual" higher subdivision versions of it that you can do sculpting on

velvet crow
#

Multi-rez is like subdivision, except you can specifically select a level. Allows you to sculpt finer details on higher subdivisions without affecting the original mesh

stray tangle
#

"multi-res" as in, multiple "resolutions" on the same mesh

ripe shore
#

dumb

#

lol

stray tangle
#

ah there you go xD

#

can you screenshot what your low/high poly meshes look like? the wireframe

velvet crow
#

It's unfortunate that there's a lot of nuance of how blender works. Stuff that I've learned how to solve and have burned into my workflow, but it's hard to describe it to people sometimes, lol

ripe shore
#

I just made these edits to the low poly

ripe shore
stray tangle
ripe shore
#

probably

stray tangle
#

that is not going to look good when you lean over lol

ripe shore
#

just clicked a bunch of shit to test lol

#

I also suspect I need to learn proper weight painting, already running into oddities when bending arms

#

I feel like this is quickly becoming not worth it territory

#

I can't imagine being a game designer and doing this for all the assets in a game 😆

stray tangle
#

you have two main workflows:

  • do the high poly mesh first, by blocking out stuff, doing sculpting, etc. then, do a retopo of the mesh (either manually or with tools), which you'd then unwrap, rig, and bake details to from the sculpt
  • do the low poly mesh first, then add a Multires modifier, and sculpt in extra details on the multires. then unwrap the low poly, and bake directly from the multires
#

if you already have a finished model, like in your case, it's also possible to decimate it (quick and dirty) and bake the all of the existing textures to the new mesh, including the normal detail lost from the decimation

#

that is often done for LODs of models, although in a lot of cases artists will just use the exact same textures for the LODs, rasther than baking entirely new sets of textures. depends if you make the LODs automatically or manually

ripe shore
#

god this is so dumb

#

should I have set up a multires modifier and then optilooped there instead of having 2 seperate models?

#

I hate having multiple clones of the same thing because it means any changes I make have to be mirrored between several different scenes

#

I feel like I'm spending more effort trying to make this avatar easy to maintain a year from now than would be just maintaining it in a crippled state

#

first avi I made is semi permanently messed up and requires redone completely and I'm trying to avoid that at all costs

#

yknow, I could also just modifier decimate on top of my optilooping...

#

that might get me down to 70k

#

I wish the limit was more like 100k, although not like it matters much when everyone running a verypoor avatar with 300k and 120 MB download size

#

I was helping someone the other day that had a bunch of paid avi assets and it boggles my mind how many of them are just garbage

#

so many of them were unpacked prefabs with major items added on in unity, huge cluttered messes of animation files and super weird decal mapping in places that make no sense, excessively large textures for no reason at all and literally zero effort put into optimizing them at all

#

it wasn't just like one either, we were trying to find a good one to learn on and it was so many from so many different creators

#

and then like some were made with wrong armature scales and require cats to auto fix it on every export or its just fucked

#

we only ended up finding like 1/10 of them that was a properly packed prefab linked to an fbx that didn't immediately break when re-exporting from blender

#

if I could live without my sick jacket I spent hours texturing I'd be <70k right now

#

agh, I wish you could non destructively dissolve / decimate only certain areas of mesh

#

I think I've just been spoiled with regular cad programs where literally everything in the design process can be changed at any point in time

stray tangle
#

you sort of can do runtime decimation with unity tools, and Tuxedo in blender does have the Bake feature

ripe shore
#

tuxedo's bake is the closest thing I've found to perfect imo, I just don't have control over which areas need to be decimated and which don't

stray tangle
#

make a feature request

#

could use a vertex group for that

ripe shore
#

I don't even know how it would work in theory

#

I could use like say the decimate modifier with a vertex group, but it doesn't work well for reasons I haven't been able to figure out

#

it decimates stuff that's not in the vertex group even when factor is maxed out

#

there is no hard limit "don't touch this area"

#

like, back of my avatar is a good example, I really don't need polygons here at all, nobodys gonna be looking at it hardly ever and it's covered by jacket

#

so I can cut down on those a bunch

#

but selecting just the back by seam, creating a vertex group out of them and running decimate on the vertex group messes up shoulders and neck and other stuff around it

#

I also still have no real good way to smooth out this shirt/pants, they could be smoothed / decimated heavily since they're just a solid color with no real UV map

stray tangle
ripe shore
#

let me try it again, I'm convinced it was correct because I did notice a change in behavior between vertex group on and off and the factor, but it wasn't a hard limit

#

also, would baking a high to low normal map act as a sort've "smoothing" filter on the mesh? as in help hide sharp corners? is there anything I can do to have it be smoother with shading tricks?

#

not a big deal, just curious

#

would a tessellation shader do this? would that be a large performance hit? all I know about tesselation is nvidia did some shady stuff with it many years ago and it's a larger performance hit on amd because of that

ripe shore
#

might be better to split my face to a seperate skinnedmeshrenderer since I have extra slots to play with still (6/8)

#

tuxedo is just adding more polygons when trying to decimate

#

also, is adding props on shrinkable bones more efficient than just having a meshrenderer with the prop?

#

pretty sure it's not

#

pretty sure all of these avatar tools are aimed at avatars without any clothing toggles

ripe shore
#

so fucking close

marsh bison
#

Can you bake a material into a mesh in a way that it doesn't consume a Material Slot?

stray tangle
marsh bison
#

Yeah, I'm talking about reducing material slot count

stray tangle
#

you can bake stuff to vertex colors, which will mean you don't need textures

marsh bison
#

I have a mesh with rn 6 material slots, but I need to get to 5. One of my material slots is non-changing, and I want to somehow make that material be applied without needing the extra material slot

stray tangle
#

that's impossible unless you join the mesh to another mesh, and make them use the same material

#

you could atlas the textures and do that

marsh bison
#

idk how many textures I'd have to atlas for that....

#

plus I would be atlasing with the same textures all the time

#

which would hurt vram

#

since I am effectively unnessesarily duplicating information

stray tangle
#

you can have rectangular textures

#

you can basically glue two textures side by side into one

#

and end up with like a 2048x1024 texture

marsh bison
#

yeah. But all other material slots change, other than one

#

so I'd need to put the same texture into multiple other textures.

stray tangle
#

do those materials need to change?

#

can you achieve the same thing without swapping the whole material?

marsh bison
#

I want then to be able to change

#

No. But then again the question is, if that is relevant. (one that I need to answer for myself)

#

You cannot texture swap inside materials, right?

stray tangle
#

no, but you can use other means to achieve something similar. with Poiyomi, you can use decal slots to overlay a different texture over the main one, and you can have it replace

marsh bison
#

Yeah okay, that's not gonna work for me (I have way more textures than just 4). I will probably just end up dropping the static texture.

stray tangle
marsh bison
#

ooh nice one. I'll keep that in mind.

stray tangle
#

this is why it's helpful to explain what you're actually trying to acomplish, and not focus on one specific little thing

#

you might be overlooking other potential solutions to your issue

marsh bison
#

I'm trying to get rid of one Material Slot to get good rated.

#

Simple

#

I know there are way more specifics to it than just that, but I think I have found my solution.

#

Thanks

ripe shore
#

like 10 MB texture usage, 5 MB download size

#

now just gotta do some weight painting to alleviate clipping on shirt and pants and hopefully I'm golden

velvet crow
#

though I will say just incase: don't use crunch if you did

ripe shore
#

I can rest

ripe shore
velvet crow
#

ayoooo nice

ripe shore
#

I may be able to get skinned meshes down 1 more if I apply the decimation and then re-merge but I don't wanna do that

#

now it's just shader time to make it look great and weight painting

ripe shore
#

clipping gone 😄

#

probably one of the nicest looking medium rated avis you're gonna find

#

and can't even share it 😭

waxen estuary
#

Just make sure that every material UVMaps on each material on them is named exactly the same.

heady smelt
#

what is the easiest way to optimise physbones? i have 30 on pc...and need to bring it down to 8 lol

proper grail
#

Root bones; for example instead of having a phys bone script on each strand of hair duplicate the head bone and parent it to the head, parent each strand of hair to that hair.root bone, and put the phys bone script there.
Dont use leaf bones, use phys bone setting Endpoint Position. Set Y to how long the last bone is.

ripe shore
heady smelt
waxen estuary
#

I guess could go as far as on the back having one set of bones be for the entire long part on the back right and center them?

#

issue is, how do I change the bone that some vertex groups could be referencing?

#

😅

proper grail
#

thats getting into weight painting

#

can make a new chain for the center and merge each side to each center, cats is useful for merging bones to other bones and automatically combining vertex groups

waxen estuary
#

I would use cats but cats be like: "Nope Imma destroy your mesh."

#

I guess another option as well is shorten the long hair and then simply just remove all of it's bones except the ones that hold the hair onto the head.

#

issue is though making it not distort itself and have issues though when moving in vrc.

proper grail
#

just never press the funny auto fix button, most of the other buttons are safe

waxen estuary
#

ah

#

I will probably do it on the blender file that is for only the hair just to be safe.

ripe shore
#

is there any way to preview what the shaders will look like ingame without loading it ingame

#

having some issues with poi skin shader either looking way too flat or way too dark

heavy knot
proper grail
#

might just be looking for anchor override, set them all the same object to get consistant lighting

ripe shore
#

awesome

#

am I bad for setting min brightness to 1

#

anchor override is set and added vrcfury anchor override fix just to double confirm and skin still looks darker than everything else

#

oops, I am in the wrong channel

stray tangle
ripe shore
#

how would you fix the skin lighting? first pic is min brightness 0

stray tangle
#

the issue is everything else, not the skin

ripe shore
#

ah crap was just going to check for min brightness on other stuff lol

stray tangle
#

also set Grayscale lighting to 0.2 for both passes

ripe shore
#

I would like it to be visible in dark worlds at least a little bit ideally

stray tangle
#

ehh

#

do min brightness 0.005 then

ripe shore
#

trying with 0.05

heady smelt
#

Hey there, i have a Problem. I am trying to reduce the Polygons on my Modle to make it Quest-friendly, and after many Trials and Errors i finally got it to work but now when i try to reduce the Quality, it comes back with an Error that the Value cannot be 0 and it starts at 1 and can only be reduced, it wont even work when i leave it on 1

calm spade
heady smelt
calm spade
#

Remove that script catthumbsup

heady smelt
#

But how am i gonna reduce the Polygons tho?

#

This Model is supposed to be Questviable, which means i have to reduce them to a max of 15000, you wanna know how many i have? 43-something-thousand

#

Ill put this on Hold for now, see if i cant crack that Nut later

calm spade
heady smelt
#

When where how and what is blender?

calm spade
#

A modelling program

calm stream
#

Hello, so I got an avatar and am trying to optimize it so its at least a poor rank. The main thing are the polygons and I loaded the FBX file into Blender and decimated it to <70k poligons. I don't really know how I now get my optimised FBX back to a finished avatar in Unity. I do have stock prefabs that came with the avatar and there are a LOT of components in there especially in the armature and I just don't think I am able to redo everything without messing something up + it would take a lot of time. What is my best approach here? Best case would be if I could just replace the meshes in the stock prefab with my lower poly versions but I have not found a way to do that yet and I am not sure if that is even possible because of the weights or something. Sorry if this text is convoluted I am a little confused this the first time I am working on such a complex avatar.

stray tangle
#

your best option would be to export as a new FBX (with correct settings, make a preset), and use Pumkin's to copy everything from the existing model to the new one

calm stream
calm stream
ripe shore
#

out of curiosity is having a physbone component for each hair strand any less efficient than a root bone with a single hair component?

ripe shore
#

interesting, alright cool

#

was wondering if it was just cheating the ranking or not -- may have to root bone my hair then 🙂

ripe shore
#

does root boning the hair not let it wiggle anymore??

#

like, still goes side to side but its not wavy

#

well, I guess I gotta test it in VR and not really on desktop lol

calm stream
#

Does anybody know what this means and how I can fix it?
If I auto fix the whole validations section goes blank and still does not let me upload.

waxen estuary
#

@sudden jewel sorry for the ping but please check your private messages (you do not have to respond though).

calm stream
proper grail
waxen estuary
#

I feel like on my avatar I am forgetting to delete some parts of each mesh that eventually gets hidden when I combine other mesh’s into it permanently for uploading into vrchat.

#

So when someone walks inside of my avatar they may see the raw lewd base that I cover up with the clothing on it instead of stripping out what is being covered up.

random finch
#

Hello everyone! By any chance does anyone know where to find the tools to make a 2D fallback version of an avatar? I have seen some avatars that are like 2D (still 3d) waffles that look hilarious but are very useful as fallback. And I can't find it by googling so far.

tulip rose
random finch
ivory sluice
#

Wha

heavy knot
#

It’s a scammer, just ignore these people they have the same script

ivory sluice
#

vrcChicken i wanted a custom vrchat

smoky trench
#

Any reason my poly count would double from blender to unity?

stray tangle
#

Poly count refers to the amount of (tri)angles making up a mesh. when working on models, you usually use quads, which are essentially two triangles

smoky trench
#

I am looking at tris, 49k in blender and jumps to 150k+ In unity

stray tangle
#

or do you maybe have a Subdivision modifier on your mesh in blender?

smoky trench
#

I can check that, actually. Ill look in a bit Thank you!

smoky trench
heady smelt
#

if i want to edit a mesh in blender, to make it smaller, can i somehow bind it back with the unity prefab so i dont have to attach everything again? or is this not a option

#

smaller as in file size

calm spade
#

You can try editing the fbx file in the Unity project itself in Blender

heady smelt
#

hmm let me launch it and see if i can find them. im still kicking the learning curve

ivory sluice
heavy bison
#

Is it best to keep the head and body separate or should they both be one object? (the head ofc has blendshapes)

I've been seeing a lot of conflicting information on this so it'd be great if someone could clear it up for me, thanks!

calm spade
#

Best if you have a ton of blendshapes localized on the head specifically yes catYes

heavy bison
#

Thank ya!

tulip rose
#

When you export from blender you need to make sure you apply scale and transform. If you don't do this, stuff will be ±100% in unity.

Here are some export settings to make sure you get the best output to unity. #avatar-help message

obsidian path
#

how does one fix this?

heavy knot
#

remove unneeded physbone colliders

obsidian path
#

that's it? thought it would've been more complicated

heavy knot
#

you can put t:vrcphysbonecollider in your hierarchy search to find them easily

spring sun
#

how the hell does me making the images smaller cause the file size to go up

spring sun
#

so

#

4096 texture size

#

11.96 mb

#

I cut it down to 512

#

13.83 mb

somber raven
#

Your Texture Compression settings plays an influence on File Size.

#

Cubemaps are also expensive on size too.

spring sun
#

yes

#

but the more I compress and make smaller

#

the bigger the file size

#

also in other news as this is a seperate avatar from the one I am currently having troubles with and was made as more of a joke

#

hows my optimization

#

this is mostly a joke

velvet crow
#

Is there a bug with the texture memory calculation? The VRAM calculator is saying 175 MB but the SDK is saying nearly 1.2 GB

velvet crow
# spring sun 13.83 mb

Did you accidentally make it RGB or something? Make sure you're only using DXT1 for non-alpha (RGB) and BC7 for alpha (RGBA) textures.

#

I also recommend using the manual override tabs for Windows and Android rather than the generic setting

heady smelt
#

But I can't quite place what is correct about it

#

The hair and the turquoise top

#

But it's mostly garbled decimated volume

#

The volume and direction of the hair almost looks decisive

heady smelt
#

Hm I guess but even more abstract

spring sun
#

the lod model for n64 games

#

aka me cranking the decimate from 150k to 3k poly

spring sun
#

it was unity being pretty stupid

spring sun
#

I will end up trying decimate properly at some point to have it be more intentional

#

rather than a funny test

calm spade
velvet crow
vapid elm
#

I got a question, I've managed to get this pc avatar optimized for quest so I can upload it, but I'm having troubles making it more optimized without making it look to bad. I managed to get the texture memory down to 0.59, but the avatar download size its self is still 9.85 and it drops quest users' frames by a fair amount. How can I fix this?

calm spade
vapid elm
#

ill try and take a pic, one sec sorry😅

#

the numbers on the polygons is a bit fuzzy but its just over 300k

#

would the best bet for me to lower the download size be just removing more toggles?

ivory sluice
#

The biggest performance drainer here is the polygons

You need to have at least 10 times less than that to not cause performance issues on quest

vapid elm
#

what would be some good ways to lower the polygons on the avi

ivory sluice
#

Removing non-important meshes and dissolving polygons in blender

vapid elm
#

ill try just removing meshes, its not my avi just a pc avatar I got and Iq'm trying to optimize it for quest

#

hopfully I don't need to take to much off lol

ripe shore
#

@drowsy fjord

#

oops, meant to type a msg first

#

I'm really proud of the textures on my model, spent forever changing a jacket to a picksheet to cut down on vram usage

drowsy fjord
#

Oh? What is the total use?

ripe shore
#

I think it's something stupid like 11MB, one sec

drowsy fjord
#

Impressive.

ripe shore
drowsy fjord
#

I personally try to keep my avatars at ~25 MB texture use.

#

whenever possible.

drowsy fjord
#

Didn't use to care, til I found out... About the new statistics xD

ripe shore
#

it's all UV mapped so that the lines are super sharp on the jacket

#

high quality compressed 1k texture for shoes, shirt, pants, hair and jacket

#

in fairness though the pants and shirt are solid color

drowsy fjord
ripe shore
#

I think that was also AI denoised by blender

drowsy fjord
#

Ahhh

ripe shore
#

much of the normal detail gets removed 😭

drowsy fjord
#

Honestly I didn't even know Blender had such feature, because I have not really used it that much outside just general avatar fixing.

ripe shore
drowsy fjord
#

Oh yeah that definitely has texture

#

pretty nice looking

ripe shore
#

still have space for extra stuff

#

all solid color UV maps get shrunken to the solid color areas and seamed so they have the super sharp lines

drowsy fjord
#

Yeah that's pretty good, I did zoom further, and it's just very crisp.

#

even my own handiwork isn't that good haha.

#

lotta effort right there.

ripe shore
#

there's some oddities every now and then because I ran a smooth modifier on it and it messed with UV maps slightly

drowsy fjord
#

Yeah that tends to mess stuff up but usually it's so minor it you can just open UV editing in blender

ripe shore
#

it took me several hours of just hand placing UV faces 😭

drowsy fjord
#

and essentially blend it with rest of the texture to make somewhat decent looking outcome

drowsy fjord
#

you actually do it by hand?

#

👀

ripe shore
#

had to for this

#

unwrapping was the easy part lol

#

all of like the stitching textures and stuff are repeats

drowsy fjord
#

Aaah

ripe shore
#

I wish there was some way for me to legally share my work

drowsy fjord
#

@ripe shore Btw, mind if I send you friend request?

ripe shore
#

go for it 🙂

drowsy fjord
ripe shore
#

the original is KC's Parka Coat

#

It had a massive 4k texture and the lines were blurrier than what I've got right now

drowsy fjord
#

Well, clearly it's huge improvement.

ripe shore
#

yeah, it's just a shame I can't even share it 😭

#

I mean, unless someone else already owns the coat

#

but then how do you distribute that or advertise it

drowsy fjord
#

Technically, you could sell it, if the license allows it.

#

Some may allow re-selling modified textures/parts.

ripe shore
#

the problem is it's a modified UV too, so mesh has to come with it

drowsy fjord
#

Oh right...

ripe shore
#

also heavily cut down on polygons from the original

#

so I really can't redistribute it without distributing the whole thing

drowsy fjord
#

Shame

ripe shore
#

if someone bought the jacket I don't see a problem sending it to them but it's such a shame just having weeks of learning experience and work be constrained to a single avatar that only I can use

heady smelt
ripe shore
#

excited because I made something cool

#

made the lines sharper than they came with, halved the polygon count, vram usage is extremely minimal

heady smelt
#

Nice nice

#

Don't get too ahead of yourself though or else ya gonna spend too much time fantasizing about a storefront or making an avatar world etc

#

Make sure you spend time on making even better work and continue iterating

#

The recognition will come in time, definitely don't want to get distracted and waste time

ripe shore
#

it's been a massive learning experience for me -- I've learned several new things every day going on weeks now

#

feels like about 3-4 different college courses crammed into weeks, but I have oodles of time at my disposal and motivation because I get to show it off ingame

#

that fantasy does kinda get broken though looking back at how much work I've put into just my avatar

#

if I didn't put this much effort into all of them I'd be releasing something low quality with my name on it

#

it irks the hell out of me how many avis for sale are low quality, unmaintainable and have zero optimization put into them, like literally zero

#

I know someone that's bought like 20-30 avatars and we were going through them trying to find one that they could change the hair in blender and add a toggle for practice

#

so many of them are unpacked prefabs, fbx files that don't load right in blender, 200k+ polys, just complete mess of animation folders and menus, poorly named textures, seperate materials for literally every object even if they're solid colors

heady smelt
#

goes to show optimization is not everything

devout marten
#

Hello I have a question.
How are certain stats like polygon count actually influencing performance? I am generally trying to make my avatars perform as good as they can while still looking nice. But I always found the VRChat performance rating questionable when it comes to actual performance changes.
A classic example would be an avatar with 69.999 polygons could have a good performance rating. Adding 2 polygons would make it 70.001 polygons. This would make VRChat consider it Very Poor. Even though it would not really effect people any worse than before.

So what I am wondering is how many polygons would still be considerd good by the standard of an average PC user. How many meshes and materials are still fine. How many bones. How much texture mermory usage and so on. Can people who understand this better than me explain?

ivory sluice
#

the poly count is as uncertain as guessing a shader's performance and what you are rendering at that moment

For a normal pc capable of vr (ex: 1060 6gb / i5 8400 / 16gb), 70k polygons per avatar would be enough, both for performance and detail, gpus can render a lot more very fast but keep in mind the world and other users are additional polygons

To say it briefly, poly count performance depends on your vertex shader, how many passes you have, and how many things are on the scene that will cause your polygons to be redrawn

Because in most cases you won't be rendering 70k polygons but maybe thrice than that or even more, if someone spawns a point light with shadows, all meshes on your view will have to be rendered 6 or 7 times more

well that was not brief

example: your avatar is 70k, there are 6 more users with 70k avatars -> 490k polygons

the map is 140k polygons -> 630k

now, the world has a realtime shadow sun and someone tought it would look cool to add a point light for their gun and "forgot" to turn their shadows off

now you have to render the shadow caster + 1 pass for the sun + 6 passes for the point light -> 5.040k

now your gpu is rendering 5 million polygons, at that point the framerate will be noticeably low

if you are on vr, you have to render one scene per eye

so your gpu will have to render 10 million polyons

this with no fur shaders nor outlines, and on a 6 person instance, with one sun and a single point light

#

Obviously the renderer has a smart way to exclude out of bounds polygons but the vertex shader will still have to be rendered for all the polygons, and there are less gpu cores dedicated to proces vertices than pixels so be careful

heavy knot
#

it mostly depends on what settings you're usually in, if you're in small friend instances with like 5 people it's honestly fine to go a little bit past the polygon ranking as stereo said the perf ranks are basically based off of mid tier hardware and an instance with like around 20 people

devout marten
#

Hmm. Very informative but I am still not sure what I should try to achieve when it comes to stats?

#

Let's say an avatar with everything medium/good, but a polygon count of 90.000. Would it still be a well optimized avatar when it uses a simple shader?

heavy knot
#

oh yeah, 20k higher is honestly not too big of a deal

#

modern GPUs are really good at displaying these things

#

you'll probably not budge GPU usage by too much honestly, unless the avatar is coated in blendshapes which you should probably look into using something like VRCFury to bake unused/static value blendshapes

radiant shadow
#

yet to see an av with good stats except over poly , its always a giant mess with lots of meshes/mats

devout marten
#

Are blendshapes problematic if they are unused?

heavy knot
#

yeah they'll still take up skinning calculations iirc and sit in VRAM

#

actually I don't think skinning calculations if they're at 0

#

but they'll still take up mesh VRAM

devout marten
#

So if I would remove the Blendshapes that I do not use in Blender, it would make the avatar peform a bit better?

heavy knot
#

it can, especially booth avatars

#

some booth avatars have like 500 blendshapes

#

that VRCFury blendshape optimizer costs nothing and really easy to put on any avatar

devout marten
#

I do not know VRCFury, Is it a Unity add-on or Blender add-on?

heavy knot
#

Unity

devout marten
#

It will decetct unused Blendshapes and and remove them for example?

heavy knot
#

yep and also bake blendshapes that don't move from their values

#

after installing it, add a VRCFury component on the root avatar object and then add a blendshape optimizer subcomponent inside of it. That's it, VRCFury only applies non destructively meaning it only applies on play mode or avatar upload so it doesn't have the ability to mess up your avatar/project

devout marten
#

Thank you a lot. I have heard that other big performance eaters are material slots, VRAM usage, and physbone transformers. Is that true?

heavy knot
#

yeah material slots and VRAM are pretty big as well

devout marten
#

What numbers would you go for each of them and be able to say it is decently optimized?

#

Assuming everything else is fine.

heavy knot
#

me currently I have like 30 material slots, and a lot of those objects are disabled unless toggled, though I'm usually just around a small group of people. for VRAM I would really be mindful of that in any cases as most cards only have 8gb of VRAM and personally follow 110mb of texture memory max

#

if I were to be in a lot of public spaces I usually try to get my material slot count down to like 10-18

devout marten
#

Ah so going for 80 MB VRAM and 16 material slots max each is decent?

heavy knot
#

those fit in the medium rank already so yeah

devout marten
#

That is great. One more question.
Does lowering the amount of physbones make the avatar perform better if the amount of transformers stay?
As an example a hair might have 8 physbones with 60 transformers. Putting them all under a rootbone would lower the number of physbones to 1, but the transfoerms would stay at 60.

radiant shadow
#

then it would do calc on one core instead of 8 , 1 component - 1 core *Because of the multi-threaded nature of PhysBones, it isn't always the most efficient to put all bones into a single chain

#

if any of my av go over 5 mats / 2 mesh / 50 vram ive done something wrong, rare i go over that

devout marten
radiant shadow
#

id just parrot what they wrote, use up to whatever amount of components rank you'd want to be, mines usually 8 max

ripe shore
#

I don't want to permanently cut chunks of my avatar out to hit a polygon limit but I'm probably gonna have to if I want to keep my clothing toggles and everything

stray tangle
stray tangle
ripe shore
#

currently just too low on geometry for my joints to look good and not clip, stuff needs to go

stray tangle
#

the only reason my main avatar is VP is because of the poly count (clothing toggles, disabled meshes) and Contacts (bHaptics support). everything else is perfectly fine

ripe shore
stray tangle
#

well, that depends. if you can get your avatar with just the basic clothes to be Good, you can simply mark all of the other things as EditorOnly on your VP copy

ripe shore
#

I'd ideally like to cut out the skin mesh beneath the clothes

stray tangle
#

these are my stats

ripe shore
#

the problem is that's destructive since my body is 1 skinnedmeshrenderer

stray tangle
#

including hoodie and pants?

ripe shore
#

those are seperate because of material toggles and I'd like ability to take off the hoodie seperately and leave just t-shirt

stray tangle
#

alright cool

#

can you SS a wireframe view of your body?

ripe shore
#

yknow

#

I could join my hands to my face skinnedmesh

#

then just not export the body or feet

stray tangle
#

are the hands separate...?

ripe shore
#

can be

stray tangle
#

hmmm

ripe shore
#

they are joined with the main body mesh atm

stray tangle
#

I mean, that could work

ripe shore
#

the rest is covered up by clothing

#

I'd have to seperate the arms too

spring sun
#

why not just

#

combine the entire body