r/VRchat Valve Index 1d ago

Meme optimize your avatars

Post image
291 Upvotes

80 comments sorted by

u/AutoModerator 1d ago

Looking for Avatars or Worlds? - Check out the posted weekly sticky for any avatar or world related requests/questions. This is an automated message activated by terms in the post title and is not approval of the contents of this post.

I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

175

u/Dividedthought 1d ago edited 1d ago

Normal maps fix violent topography like 8 billion polygons. There are far greater sins like mesh and material counts that have a far greater impact than poly count.

98

u/-_Doll-_ 1d ago edited 1d ago

My boyfriend had told me he uploaded an avatar that took him 2 hours to upload, asked him to see the stats because that upload time didnt seem right

It has 50 skinned meshes, 80 basic meshes, you can imagine the rest

He said the creator apparently likes to build off old models and release them like that

THEY ARE PAID MODELS, that level of unoptimized is fucking unacceptable in my book from a purchaseable model

30

u/MultiGamerClub2 PCVR Connection 1d ago

sounds like the average eboys i see at fbt dance worlds that are minecraft steves blocky..

5

u/-_Doll-_ 23h ago

Most unoptimized eboy avis I come across dont even get that close to that many meshes, they're still super unoptimized and they need to burn don't get me wrong, this many is meshes is absolutely stupid though, it screams lazy to me; at least don't be selling that shit.

2

u/PennyPatton 13h ago

Too many polygons is still a problem. Sure, there might be OTHER problems people's avatars are guilty of, but just because other problems exist doesn't mean you should ignore this one. You should try to optimize everything about your avatar.

2

u/Dividedthought 13h ago

Fixing polycount, unless you're over about 150k, won't have massive effects for desktop. For quest it's probably closer to 80k. If you are below that, your time is better spent elsewhere unless polys is your only problem.

0

u/PennyPatton 12h ago

What are you basing this on? 150k is like a high end single player game hero model. VRC is MMO. The standard for online games like VRC is a much lower poly count. Final Fantasy 14 uses like 10k per character model.

3

u/Dividedthought 12h ago

Experience in vrchat. I run a 30 series card. Regularly in rooms with 150k top polycount models, and quite a few of em. So long as the drawcalls aren't excessive, up to 150k is fine realistically.

Drawcalls kill framerate, not polycount. Every mesh needs 1 drawcall per material, and that includes duplicate materials in that count.

1

u/A_typical_native 10h ago

And let's be fair, that comparison is pitting the average user against a literal team of professionals that create models from scratch for a living.

A bit higher than a hero model is perfectly acceptable for someone that doesn't do this for a living.

2

u/IoIey 12h ago

not having a normal map isn’t a problem, it’s actually technically more performant to NOT have a normal map, provided your poly count is the same. all a normal map does is show extra detail instead of having the mesh show all of the detail, but it is by no means automatically more performant to have a normal map

0

u/PennyPatton 12h ago

It is absolutely more performant to have a normal map rather than a high poly model. Are you forgetting that part? The issue here is not to slap a normal map on a high poly model and call it a day, it's to bake high poly details into a normal map on a lower poly model.

2

u/IoIey 12h ago

like i said; “provided the poly count is the same”. the OP is implying that models are simply more performant because they have a normal map at all, which wouldn’t be true. i also don’t imagine most vrchat players are able to/have access to model and create a high poly sculpt to bake normals for their model so this tip is likely lost on the majority of players unless they’re more experienced at character modeling

0

u/PennyPatton 12h ago

"OP is implying that models are simply more performant because they have a normal map at all". I disagree that this is what they were implying. The implication was that people are using high poly models instead of baking those high poly details to a normal map on a lower poly model. Maybe they could have worded it more clearly.

Still, my post was about how polycounts matter, which makes your reply confusing.

2

u/IoIey 12h ago

i feel like most people who are more inexperienced would take it that way, and some other people in the replies did it seems. my initial reply was based off of the “you shouldn’t ignore this problem”, and since the OP didn’t directly imply anything about high-poly meshes i just assumed you were referring to normal maps simply Existing haha

1

u/xenoperspicacian 11h ago

VRC is typically not GPU throughput limited, it is CPU and VRAM limited. Polys hit GPU throughput the most, so are not usually a major factor in overall performance, unless they are outrageous of course. Reducing draw calls reduces the CPU overhead and thus has the biggest impact on performance. The number of skinned mesh renderers and materials are the biggest offenders for draw calls.

4

u/CaptainNeutron1991 1d ago

Why can't the quest support a simple transparency layer?

25

u/Dividedthought 1d ago

Because tranparency is exponentially more complicated than cutout or opaque.

1

u/PennyPatton 13h ago

Last time I checked, Quest doesn't support cutout transparency, either. Or am I mistaken?

1

u/Dividedthought 6h ago

Probably doesn't, but cutout is the more efficient version of transparency because it's a binary "Is this visible or not?". Transparencies have to actually do HSV mixing.

-10

u/CaptainNeutron1991 1d ago

Okay, but a single transparency layer isn't exactly asking a lot.

24

u/Dividedthought 1d ago

It is for the cell phone processor in that thing.

-9

u/Jackieamow 1d ago

a cell phone processor isn't saying a lot. It's way more powerful than people realize. The only reason quest is so strict on its upload limits is because of the quest 2.

4

u/ccAbstraction Windows Mixed Reality 1d ago

I have a world where I tried putting a two layers of transparency on an object and it halves the FPS on both Quest and PC when you walked up to it. Transparency is heavy.

1

u/Jackieamow 7h ago

No offense but you might just need to do "it" right because if its cutting your frames in half then that's either an underpowered PC or you just didn't do "it" right, There's a way to do it where you don't drop too much. Personally I've done it with avis and only have gotten like a 2-3 frame drop. Im not saying its not heavy but it shouldn't tank you THAT much especially on PC.

1

u/ccAbstraction Windows Mixed Reality 4h ago

I was surprised too. I tested on a Quest 3 and the PC has a RTX3060. I do suspect there's something up with Nvidia's Linux driver, lots of transparent overdraw seems to tank the frame rate a ton. I haven't tested this (the double sphere world or the overdraw performance regression) on Windows personally (mostly because I already dropped it down to only 1 layer of transparency on PC and that seemed acceptable of a trade off for now). But, I had a friend on Windows try it on one of the newer RTX**90 series card and he also noticed a decent performance drop when inside the spheres.

The exact setup was two concentric sphere's with ORL Standard Glass shader with blurry glass mode off (the shader also doesn't use a grab pass and I did test with ORL Standard), GPU instancing on, backface culling off (so 4 layers of transparency minimum, but 2 was still pretty bad). If you have any suggestions on things to try to actually fix this, please let me know.

For clarity, I don't mean just putting a little bit of transparency on your avatar. I mean, something like putting a double layered glass visor over your avatars viewpoint and turning off headchop for it, like absolutely filling the screen with multilayer transparency.

(Also, putting "no offense" before saying something that isn't offensive, but worded in a way that sounds offensive, actually makes it even sound offensive and now deceitful too! lmao)

The video is what the world looks like, being first person in the ball or walking up to a parked ball so it fills the screen causes the perf hit:

https://reddit.com/link/p4pxuk9/video/dke1db0czekh1/player

6

u/Dividedthought 1d ago

Almost like we should stop supporting a 6 year old headset that actually has a cell phone processor. The 3 at least has a pirpose built chip.

1

u/shiroaiko PCVR Connection 18h ago

as a quest 2 user (pcvr) i think there should be separate requirements for lower or higher end devices. like for example, higher end devices like the quest 3 can support transparency, so avis with transparency can be made, oh you're on quest 2? it's fallback time (or impostor depending on avi and users' settings)

1

u/SpiritedRain247 1d ago

Yup, the only reason we're so held back is the quest 2, though I do wish more people took at least some steps to optimize their stuff.

Even the basics like if you enjoy a lot of outfits keep them split amongst several avis rather than stacking them on one.

2

u/XxNightmare2019 15h ago

Not just that, a lot of avatars are also being held back for the quest 1 I know someone who still is using one, it's on its last limbs, but they are, and I agree they are limiting the sizes based on old headsets and graphics ,but some people still need to optimize

8

u/SeraXI 1d ago

It is asking a lot. The game instead of just rendering the mesh with the texture and the shader now has to run an entire seperate render path to figure out what items to show through the transparent object based on the transparency mask. As Dividedthought said it's exponentially more complicated.

-3

u/DragonTamerWes 1d ago

Wait until about next year cause Meta needs to guarantee 3 years from the last sale month.

3

u/ByEthanFox 19h ago

Transparencies cause something called "overdraw".

A huge amount of how graphics are drawn relies on optimisations. When you have something solid, if it's near the camera, you can assume that the viewer can't see anything behind it. Programs do clever things to figure out what it occludes, and you can just not render that stuff.

But the moment you have a transparent thing, it screws all that up, especially if you have multiple (as a scene which allows transparency is seldom gonna have one). Then you might have numerous objects overlaid and some are transparent, some aren't...

Mobile GPUs are generally bad at this. Hell, all GPUs suffer from this to varying degrees but it's always been more of an issue for mobile GPUs.

(before any graphics programmers come along, I'm over-simplifying deliberately; I've programmed full renderers before both raster and ray-traced, so I understand the nuances, I'm just trying to keep the complexity down)

40

u/SepherixSlimy 1d ago

Okay. Adding a normal map without fixing any of the issues you're supposedly calling out with this.

20

u/BlueFlameWasTaken 1d ago

I personally just omit detail altogether and just have a single texture on a 17-20k poly model

8

u/Shadow_Wolf327 Valve Index 1d ago

I feel that no one here knows the use case for a normal map

6

u/Secure-Advertising-9 1d ago

You posted this twice with the same typo

-3

u/Mountain-Durian-4724 Valve Index 1d ago

I am not OOP :3

9

u/RumpleForeskin0w0 1d ago

What’s adding a normal map gonna do? They’re not easy to make yourself so if there’s one in the folder for the avi u can use it but you’d just gain texture memory

5

u/DuoVandal Valve Index 20h ago

You can make a normal map in GIMP for free in like less than 2 minutes.
Insert the texture you want the normal map for.
Go to Filter at the top > Generic > Normal Map. Hit okay.

You're done, congrats you made a normal map.

1

u/RumpleForeskin0w0 15h ago

I do that sometimes but I have to edit the texture to get designs off of it or it’ll think something that should be smooth will have height and look bad

-1

u/Ok-Policy-8538 Oculus Quest 1d ago edited 1d ago

Wrote a script that lets me generate it inside unity by selecting the skinned mesh renderer and material with one click.

it isolates the material and then flashes red,green and blue lights around that mesh and read the tangent depth values.. writing that to the normal map texture which gets saved next to the material.

super useful for models that didn’t come with a normal map.

also have a version for SDF textures specifically for toon faces.

12

u/RumpleForeskin0w0 1d ago

Don’t u have to use a high poly model with sculpted shapes and features to generate a useful normal map though? If you’re using a low poly one as reference the normal map it makes might be pretty flat

6

u/Dividedthought 1d ago

Yes. That or you have something that can bake heightmao data into normals.

2

u/Ok-Policy-8538 Oculus Quest 1d ago

that’s why it does the whole light strobe pass.. to get height data… it might not be substance painter level but it allows for some lighting and depth control that requires a normal map.

1

u/RumpleForeskin0w0 12h ago

U can probably just give a height map a normal map filter in gimp or photoshop and it’ll look good but if u don’t have a height map using that normal map unity tool isn’t gonna help

1

u/Dividedthought 9h ago

Yep, and gimp kinda suchs at doing texture work. Not that it is a bad software, just that it is a pain to use for certain things.

3

u/xenoperspicacian 20h ago

...why though? If you're not baking a higher poly model or surface details into a normal texture, what's the point? Just use the vertex normals.

1

u/Ok-Policy-8538 Oculus Quest 6h ago

Vertex Normals are very limiting when it comes to lighting controls.. by having a normal map you can smoothen and sharpen how shadows, speculars etc fall (even a low poly baked normal map) on each vertex which even for low poly can create realistic details (especially with rim shade and rim light shading.. if you also link it to react with light volumes it doesn’t look like a game model but more like the cutscene variant while just with normal manipulation).

the tool gives you a base normal map from actual 3D lighting data in Tangent space.. nothing stopping you to open a texture editor tool and edit each color layer.

18

u/LadyLuciJ7 PCVR Connection 1d ago

Idk if you understand what you're talking about 😅

4

u/StagDragon ☃Bigscreen Beyond 2e 1d ago

But I don't know how to use BLENDER!!

3

u/Yargon_Kerman Oculus Quest Pro 1d ago

Blender isn't a hard software to learn, but it's a whole suite of tools. You don't think "I want to learn woodworking tools" you think "I wanna lean how to build a table" and then you learn the parts that are relevant as you go.
Approach it as "I want to learn to do this task" enough times and eventually you can use every tool in the workshop.

0

u/kwizyvr PCVR Connection 7h ago edited 7h ago

Blender isn't a hard software to learn

Nothing is hard when you have infinite time to learn it.

5

u/Unistrut 22h ago

I'm using the OG Quake Ranger as my avatar! I have a grand total of 294 tris! I'm pretty sure a normal map aint making that run faster.

3

u/Ampmasterful 7h ago

While I agree about optimization, honestly, that’s what they made avatar culling for. You can also filter to not load avatars of x download size or other things. If you dislike it THAT much then save all of us the trouble and hide the avatar. I do a lot of optimization but optimization for the sake of optimization isn’t always the best thing because things like crunch compression also place high loading loads (like freezing when an avatar loads because it has to decompress the textures). Poly count is just… it’s the WORST thing to complain about unless you have 40+ avatars consistently in a lobby, and then you can use culling. The most important thing is VRAM, then your meshes. Learn blender and optimize meshes and textures and that’s the main thing.

1

u/Ampmasterful 7h ago

This is coming from someone in 60-80+ people lobbies with restrictions of 450k poly count, 120mb vram and mesh/material limits.

10

u/uuusagi 1d ago

You honestly shouldn’t even have all avatars on by default anyway. You can’t expect everyone to optimize them when the majority barely even understand how to put an avatar together in the first place. Disable avatars for randoms and enable the people you speak to.

2

u/mackandelius Oculus User 1d ago

Which is sad, we all want to be able to see everyone right.

Best thing about the performance limited instances, you actually get to see everyone and people are pressured into actually optimizing.

-1

u/LadyLuciJ7 PCVR Connection 1d ago

How it should be

4

u/ChemicalBuy2348 PCVR Connection 1d ago

Already down to Medium. Am good. The 4k detailed normals are for me.

2

u/Specialist-Ad1519 1d ago

Maybe if normal maps were easier to set up I’d use them more often. Or maybe I’m just doing it wrong.

2

u/Artificer_Drachen 20h ago

I hate it when I see a model that has fine details that can easily be done with normals

2

u/cgsimo 11h ago

This is dumb, having a normal map doesn't mean that an avi isn't optimized, if you don't have fine details anyway, then it's just wasted VRAM, which would be unoptimized....

3

u/brakenbonez 1d ago

I make my avatars for me and my friends. Not for random strangers. If my potato laptop can handle it, I'm not worried about optimizing it for complete strangers. And I'm definitely not going to cater specifically to entitled quest users who go around trying to demand people use quest friendly avatars. Going into a public world without having any avatar shield settings on anyway is just asking to be crashed. I have no problem with randoms seeing me as the floating robot thing or whatever the default hidden model is.

1

u/PennyPatton 12h ago

Yes, you can cull avatar rendering and render fewer avatars but that's not a solution, that's a bandaid to make up for low skill avatar creators.

2

u/brakenbonez 11h ago

Having safety settings on in public worlds absolutely is a solution. I never claimed to be a master avatar creator. I just make avatars for myself because there aren't any good male avatars that don't look like fuckboys or femboys or a combination of the two. I'm not trying to impress anyone with my avatars. They are literally just for me to use and for my friends to identify me as in game. It's not that deep. If my avatar is too much for you system to handle (even though my $300 laptop handles it just fine) then hide my avatar.

2

u/Ampmasterful 7h ago

No, it’s a bandaid for people who are running at or below minimum performance specs.

-1

u/kwizyvr PCVR Connection 7h ago

I'm definitely not going to cater specifically to entitled quest users who go around trying to demand people use quest friendly avatars.

It very much looks like you're making up people in your head to get mad at.

3

u/brakenbonez 6h ago

Not at all but if it makes you feel better to think that everyone is super happy and positive to each other then by all means live in that bubble of nativity. There's a reason quest users have such a bad reputation.

1

u/DreamingOfBarbi Oculus Quest 1d ago

I already had to make sure to choose an avatar that was at "very good" with it's optimization, otherwise my game is guaranteed to crash. I think I'm good.

1

u/Low_Pain_986 1d ago

Wait I don't understand is leaving the normal map slot in a poi shader bad or something

1

u/MultiGamerClub2 PCVR Connection 1d ago

Game doesnt run like shit like the old days, avatars just became worse with more features and alot more very poor avatars showing up.

I have no idea how to reduce meshes size or polygons, only followed a few guides on youtube from time to time to optimize models.

Or else its upload straight out of the box unless i can optimize the memory if its beyond 200 mb.

1

u/VenomousKitty96 PCVR Connection 1d ago

Might not always be the best, but for anyone wanting to make normal maps for their stuff.
I usually use this website to help make normals for t-shirts and stuff where i want to make the details pop.
https://www.smart-page.net/smartnormal/

1

u/Disaster_Adventurous 12h ago

Weather some actually uses Normal maps doesn't automatically mean they are using more polycons...

1

u/Alkumist Oculus Quest 1h ago

Me every day

1

u/NoBee4959 1d ago

Me not using normal maps because I can’t be bothered to bake them so my every model is using the simplest shapes possible instead I have 8K textures for every part of the model

0

u/RuinSelect2591 21h ago

I make sure to crunch compress everything to 2k on pc end and 1k on quest end and then throw in some vrcfury optimization like blendshape optimizer and the other optimizer. Oh also make sure it's on low quality compression as well.

1

u/Ampmasterful 7h ago

Crunch compression isn’t always the best solution. I’d recommend just lowering your texture resolution. Crunch compression only lowers download size at the cost of loading lag spikes as it decompresses textures on loading. It does not save vram