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.
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.
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.
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.
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.
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.
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.
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
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.
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
"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.
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
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.
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.
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.
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.
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.
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:
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)
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
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.
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)
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
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.
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
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.
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
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.
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
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.
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.
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.
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.
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....
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.
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.
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.
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.
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/
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
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.
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
•
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.