#world-optimization

1 messages · Page 15 of 1

midnight vine
#

Can someone reccomend a good third party terrain tool to use in unity for my worlds given the terrain is still rendering black for me?

versed lichen
#

when light baking ?

fierce seal
#

Hello again, i need some help optimizing this thing im trying to do . I added some avatar statues to my Blender worlds and im posing them in there so i can delete the skeleton after. My issue is that when i try to do an expression, i can't have it stay there.... if i set pose as rest , it resets the expression and then i can't place it again because all the visemes becauses skewed

#

After setting the rest pose and redoing the expression with same values

versed lichen
#

you need to delete all other shapekeys and leave that one as the last one left

fierce seal
#

im using more than one

#

it's a combination

versed lichen
#

then make a shapekey out of the two

fierce seal
#

so make a new shape key to recreate the expression , set as rest pose , then delete the remaining shape key and armature ?

versed lichen
#

i believe so yes

fierce seal
#

ill check on how to make custom blendshapes

cold prairie
#

If you press the down arrow on the right of the shapekey panel there should be "New Shape from Mix"

fierce seal
#

@1 it's still becomes skewed as soon as i apply the pose

#

alright fixed it by also deleting the basis blendshape

#

thanks for the help !

fierce seal
#

@versed lichen is there a way to delete the armature and bones without deleting the mesh in the process ?

cold prairie
#

There should be a apply button in the armature modifier

#

I think that should do it

fierce seal
#

armature modifier.... i have no idea what that it

#

is*

versed lichen
#

The wrench icon

fierce seal
versed lichen
#

You have to select the model first

fierce seal
#

ok , i did apply it but the pose and armature is still there .

versed lichen
#

Now you can delete the armature

fierce seal
#

Aaaaaah ok ... ty

#

hopefully this will make my world a lil more optimized

versed lichen
#

If the model is atlased yeah

fierce seal
#

it will be in the end yes

midnight vine
#

When I bake the lighting all looks fine in Unity but when I upload and actually enter the world in VR Chat the ground and vegetation is black with no shader.

#

I was able to fix the ground by changing the default shader to a custom material but the plants are all still black.

versed lichen
#

Can't bake grass with terrain

midnight vine
#

Got it. I'll give that a shot.

#

I'll try duping the terrain and only delete the terrain itself leaving the grass layer

grave eagle
#

How to set render distance in my vr world?

fierce seal
#

I managed to bake some parts of the lighting in my world but one of the 2 models is having an issue .

#

do you know why the shadows are acting up like that on the red one ?

fierce seal
#

im using the same shader for both

#

What good shaders do you guys use when doing Baked Lighting ?

cold prairie
#

@fierce seal do you have generate lightmap uv's turned on for it?

fierce seal
#

yes

#

both models share the same mesh

cold prairie
#

Same mesh 🤔

fierce seal
#

hum

cold prairie
#

That's interesting then

fierce seal
#

well.... i joined them in blender

#

i can't get the atlas to work though

#

it breaks a few of the texture on the red one

#

this is the blender file. theres no weird tris or anything

cold prairie
#

Send a closer picture of it in unity

fierce seal
#

its only weird on the skin , the hand and hair seems to be fine ... or better at least

cold prairie
#

What shader is it?

fierce seal
#

poyomis

#

i already asked him about it

#

he doesnt know why

cold prairie
#

Yeah poi did add support for lightmapping

#

You could try doing the bake with standard to narrow the problem

fierce seal
#

standard doesnt work for the skin

#

it breaks it hard

cold prairie
#

How does it break?

fierce seal
#

same way

cold prairie
#

You did say theres no weird tris or anything but does anything happend if you do remove doubles on the vertices

fierce seal
#

could you guide me through that , i don't know about it

cold prairie
#

Select all the vertices in edit from the body then from spacebar search search for remove doubles

#

I haven't used 2.79 in a long while so google it if you can't find

fierce seal
#

got it , it remouved quite a lot

cold prairie
#

Okay that was most likely the problem then

fierce seal
#

well ill redo the material and check how it looks.

fierce seal
#

Same issue

#

@cold prairie got any other ideas ? do i have to set something specific in blender to make shure light is reflected the right way ?

cold prairie
#

I'm in bed about to sleep so can't be more of help currently

fierce seal
#

Oh so sorry . nvm

cold prairie
#

I'm still feeling it's something about the mesh

#

But no ideas on top of my head

#

If you are still having the problem tomorrow when I get off work I can try baking the lights on them myself and see what happens

fierce seal
#

ill see about asking others tomorrow. thanks again a bunch for the help

dense rover
#

Do Mirrors, Models and/or Particle Systems effect Frame Rate when they are turned off? In one of my worlds I get frame rate of 90+ everywhere I go, except when I'm in front of a mirror, then it drops to 46 - this seems normal to me - and in one particular room a turned off mirror. When I stand next to this mirror (when it's off) at one particular place it drops to 46 fps.
The only difference between the rooms is this particular room has two turned off particle systems and more furniture.
Thanks!

teal turtle
#

you can check the mesh in Blender and make sure your normals are all facing out

#

if they arn't then select the mesh and recalculate normals

#

also make sure you dont have extra geometry z fighting

versed lichen
#

@fierce seal Did you generate lightmap UVs for those as well ? You may have to tweak the settings

fierce seal
#

When you mean generafe laightmap uv you mean check that one box right?

#

All the normals should be facing outwards i had back culling on and it didnt create any holes

#

As for extra geometry i made sure do delete doubles

hollow elk
#

@fierce seal Is there a reason you aren't just using lightprobes instead?

fierce seal
#

you're not gonna like the answer but it's because i don't know what i'm doing .

hollow elk
#

thats okay lol

#

if you add lightprobe components to your scene they will light up dynamic objects based on the baked lighting

fierce seal
#

my objects are static

hollow elk
#

I wouldn't recommend trying to bake lighting for avatar models

fierce seal
#

oh but their not

#

they are only mesh

#

no skeleton inside

hollow elk
#

yes but the character models i mean, with or without skeletons

fierce seal
#

well.... it's like a statue

hollow elk
#

complex geometry is more effort than its worth to try bake lighting to

fierce seal
#

im trying to make the world run better ....so i was trying not to use any dynamic stuff

hollow elk
#

Using lightprobes would probably be the most performant method

fierce seal
#

have any tutorials for setting them up or is it easy and you could just tell me

hollow elk
#

light probes are just a component you add to your scene and when you bake the lighting they take the baked data and light up non baked objects

#

you could also just use realtime lights on the character meshes so long as the lights only affected those models via layer culling

fierce seal
#

my issue is that looking towards the model drops the frams in half. was really trying to optimize them more

chrome anchor
#

I don't know if this is where I go to ask for help but uhh

#

is it just me or does OnDrop not work?

analog kraken
#

it should work

slate bear
#

Hey, I'm trying to lower the file size of a map. Does Crunch Compression on textures even work in VRChat? It feels like it doesn't, since my map is still over 200 MB.

torn crypt
#

It does, yeah. It can be challenging to audit your build with just the editor log alone imo though. Could be all sorts of sneaky stuff causing build bloat :/

#

There's a free version of A+ Asset Explorer on the asset store that might help. It's helped me track down unused assets, stuff that isn't crunched, meshes that might benefit from mesh compression, etc. You'll have to run a standalone build to audit iirc which might require you to briefly remove the VRC SDK and then reimport after it's done

vagrant oar
#

@fierce seal I had that issue with flipped normals too. If you havent found the solution yet, here is my tip. Look at your material for your avatars/objects texture. If you have a normal map texture for your object/character make sure its color space is set properly and set it to normal map in its properties.
To show you what I mean here are two reference images of my custom Lara Croft avatar with Non-Color Colorspace and RGB colorspace.

modern elm
#

You can also recalculate normals in Unity iirc

wind nest
#

Is there an easy way of making a world smaller in terms of its file size? I am making a world for a friend and he doesn't have the greatest internet

analog kraken
#

use crunch compression on your textures, lower the quality on audio files, bake lighting at lower quality

toxic stag
#

compress mesh in import settings

twilit belfry
#

I have this cabin I built out of individual logs, etc. Would something like this typically cause such heavy performance issues? Anyone know what I can do to fix it?

#

I've never made a map before so I have no idea what I'm doing btw so explanation in the most basic form would be ideal

cold prairie
#

If you have never build a map before it's important that you set everything as a static and also baking the lights is important since realtime light performance is very bad

median stag
#

Need i worry about audiosources in many different places? They activate only one at a time, but i'm wondering because of the Quest requirement, if it causes performance issues

twilit belfry
#

Already did those two

#

Lighting is set to baked and the logs/most everything in the cabin is static

cold prairie
#

@median stag there's a limit how many audio sources unity can handle active at once and if you go overboard peoples voices can't be heard anymore, the performance issue is much lower on pc though

median stag
#

If there's like 20 audio sources that exist and only play for 0.2 seconds on awake, that wouldn't be an issue then? It's not the physical presence of the audio source but the fact its in use?

twilit belfry
#

Do I need to have a camera placed for the stats to be proper

cold prairie
#

From what I remember it being active in scene as well takes some performance

#

@twilit belfry yeah have a camera placed properly

median stag
#

What about an animator that as a part of turning on, plays its audio source, then turns itself off with a button? Inactive is inactive right?

twilit belfry
cold prairie
#

Oh god that batch count

twilit belfry
#

Okay so if that tells you something what does that mean lol

median stag
#

holy $hit XD

torn crypt
#

you got real time lights going on there

cold prairie
#

Yeah that looks like you got realtime lights

median stag
#

every new light that's not baked adds every material on every mesh to another round of batches XD

twilit belfry
#

Really? How do I change it then

#

Do I need to toggle more than the option on the actual light?

cold prairie
#

Post more pictures of your project

#

What are the settings on your lights

twilit belfry
#

Most of them are pretty much this

cold prairie
#

Are you sure everything is baked?

twilit belfry
#

I'll check them all again

#

Pretty sure I had set them all to baked

#

Oop no I had one set to realtime still

#

But all the rest are baked

#

I changed that one now

torn crypt
#

did you go through the baking process in the lighting window?

twilit belfry
#

I don't believe so, how do I do that

#

Oh I think I see it

#

Do I have to generate the lighting

#

This thing right?

cold prairie
#

Yes

#

Otherwise I think unity can think of baked lights as realtime lights until they are baked

#

@median stag you should be fine if the audio sources aren't actively playing something at the same time

median stag
#

Thanks. Mostly for a directionality reason i would want multiple sources-- don't wanna go about repositioning the audio source on every single one if i don't have to.

cold prairie
#

I haven't experimented enough with having a large amount of sound sources though to give a good answer

#

It can also depend on how many people you want to have in the map since people speaking is also a audio source

#

https://johnleonardfrench.com/articles/unity-audio-optimisation-tips/ I've looked at this before and even though it all doesn't apply for VRChat it does give you some insight how it works @median stag

twilit belfry
#

Dang this is taking a hot minute to generate the lightmaps

cold prairie
#

Yeah it takes long esp with the unity build in lightmapping

#

Consider looking into bakery if you really want to get into making worlds

twilit belfry
#

Okay so that definitely fixed some things

#

But uhhh

#

My lighting is all wonky now

cold prairie
#

Post a picture

twilit belfry
cold prairie
#

What's wonky about it?

#

Making lights look good lot of times is just experimentation depending on the effect wanted

twilit belfry
#

It's completely different than before

#

The floor and windows and things look much shinier than before

#

Oh wait a minute

#

I think I fixed it

#

I just gotta change some settings

cold prairie
#

If you are using unity terrain it takes some doing to optimize it properly and make it work nice with lightmapping

twilit belfry
#

Aight I'll have a look at it, gonna hop in and see if that really fixed the issues

#

Thanks a lot, appreciate it

cold prairie
#

Np

twilit belfry
#

So I just hopped in game it certainly is better, but how would I go about having day/night time lighting cause it clearly does not update unless it is realtime 🤔

cold prairie
#

There's some ways of doing it with your map the best way might be using post processing or shaders to darken stuff

#

But I don't have much knowledge in doing day/night cycles

#

It's a hard thing to do in vrchat properly

#

On small maps there's some tricks to baking multiples of the map and moving them in place but with the size of your world that would make the size pretty huge

twilit belfry
#

Okay just gonna have to figure that out another day I suppose

midnight vine
#

Is it possible to use OctaneRender to render the baked lighting in my worlds? I see there is a free Unity plugin available.

versed lichen
#

lol no

#

bakery or unity's lightmapper @midnight vine

lilac saddle
#

importing lightmaps would be nice
if only, amirite?

hasty merlin
#

I second this ^

#

Would have saved many months worth of issues with my projects if it was possible

little hearth
#

how to fix people spawning on roof of building

modern elm
#

Does occlusion culling activate automatically in game or do I need to do something for that in Unity?

versed lichen
#

Are your objects set as static and did you bake occlusion correctly ? @modern elm

modern elm
#

I think I got it but I'll let you know if anything weird happens

versed lichen
#

I don't think there is much to occlude in this map

modern elm
#

?

cold prairie
#

There's nothing really occluding other stuff in that map so just frustrum culling might be fine

#

If there is something that could benefit from occlusion culling follow this to optimize it's performance:

#

"When should you use Occludee Static? Completely transparent or translucent objects that do not occlude, as well as small objects that are unlikely to occlude other things, should be marked as Occludees, but not Occluders. This means they will be considered in occlusion by other objects, but will not be considered as occluders themselves, which will help reduce computation."

#

Like for example the houses in the back don't seem to be occluding anything or getting occluded by anything you might wanna turn off both occludee and occluder in them

#

The smaller your occlusion culling file the better since the larger it is the more computation it causes

modern elm
#

Ah ok
So it's more for something like a dungeon map where there's a ton of rooms

#

I thought OC was a general performance helping tool so it doesn't render everything at once

cold prairie
#

Frustrum culling already does that by not rendering stuff out of your view

modern elm
#

Is that a setting I need to activate?

cold prairie
#

It's on by default

modern elm
#

ok cool

cold prairie
#

@modern elm do make sure you have batching static and lightmap static on though those are more important

modern elm
#

I'll look into those, thanks!

pallid gale
#

frustum culling would still render stuff behind you if it's pointing the direction you're viewing so that's why you need the occlusion culling

cold prairie
#

Frustum culling exactly that it doesn't render stuff out of the viewport

#

The map that he has in the picture has no need for occlusion culling

#

Though I'm not quite sure what you mean by stuff behind you pointing the direction you are viewing @pallid gale

pallid gale
#

if a big rock is hiding stuff behind it the stuff behind it would still be rendering by Frustum culling

cold prairie
#

Yes but looking at his map there isn't anything that would benefit from that

pallid gale
#

yeah having a double look at the map good point

cold prairie
#

All good 👌

pallid gale
#

just wanted to be clear on the differences between frustum and occlusion culling for any future Maps they make

cold prairie
#

Yeah fair I did post the explanation on them a bit up but not a proper explanation on frustum culling

#

This one's a bit higher quality 😄

pallid gale
#

thank you

#

but yeah you can cram a lot more stuff on a map when you design it to have lots of nice line-of-sight blockers so that occlusion culling can do its thing

cold prairie
#

Yep ^^ open maps are much harder to optimize properly

pallid gale
#

darn that supposed to be a gif

cold prairie
#

I gotchu

#

Honestly best demonstration on importance of occlusion culling in large worlds

pallid gale
#

yes it's a very important gif

versed lichen
pallid gale
#

cool we managed to get a pin

old iron
#

Hm I tried out occlusion culling on my world but decided to leave it out. It caused the objects to disappear and reappear rapidly as soon as you started moving.

#

Doesn't seem to work well if you're on the backside of a mesh's faces.

#

I see, occluder and occludees would probably solve that problem without having to get rid of the see through effect when outside of a building (normals point inwards and no faces on outside)

versed lichen
#

Settings need to be adjusted for sure

severe trout
#

@old iron in the occlusion settings, set the problem meshes such as a transparent window to occluder static. This will make it so it won't cull objects behind it when you look through it.
Occlusion culling is huge when it comes to reducing draw calls. Definitely try giving it another shot 👌

old iron
#

I'll see if it'll come handy now, might not even make noticeable difference because of the way the world is made but definitely will be useful with bigger worlds

gleaming yarrow
#

Hey, so I added in some optimised mirrors, but, I don't know how have it so only one is on at a time, right now you can click both buttons and have both showing

hollow elk
peak flower
#

It gets pretty choppy, there's also a mirror. I have all of the particles set to Water so they don't reflect but it still seems like they are being calculated by the mirror just not drawn?

#

Also are there certain particle shaders that are generally no-no's for optimization?

#

Mostly curious about the standard set

lilac saddle
#

@peak flower could be overdraw combined with blending, which means it has to write a pixel multiple times, and in case of blending read it back each time too, if you have a large number of particles or huge size of the particles your gpu has to read/write a lot of pixels over and over before it has blended all of the color

#

the 'fastest' particle shaders just use a blend mode and a texture and no fancy things, the built-in unity particle shaders are fast and simple except for particles\standard surface and particle\standard unlit, those are a little heavier

peak flower
#

thank you!

#

Right now it is Particles/Additive

lilac saddle
#

there's some other stuff too: even if you use the faster particle shaders, too many really big particles will just eat GPU

peak flower
#

And the particles are very large

#

Okay that must be what it is

#

So I take it there is a happy medium in there somewhere?

#

between many small and few large?

lilac saddle
#

another tip is make the particle texture use an image with more 'white' and use less particles

#

so it fills into a white shape with way less particles

peak flower
#

Do you mean a textured mesh w/ many fewer particles running through it?

#

A particle texture with more white and less particles... wouldn't that make the particles bigger?

lilac saddle
#

are you using the unity default particle texture or something custom?

peak flower
#

Default

lilac saddle
#

ah okay that's good, the blue neatly fills the texture

peak flower
lilac saddle
#

yep that's good and fast

#

no lights, no shadows, no sorting

peak flower
#

Yeah it must be because they are so big then

lilac saddle
#

how many are on screen?

#

'alive' when you run it

peak flower
#

Hmm I dunno, is there an easy way to tell?

lilac saddle
#

click the particle system(s) in the editor and hit play in the editor view

peak flower
#

Oh I see, 115

lilac saddle
#

that's nothing

peak flower
lilac saddle
#

when you turn them off the fps is fine?

peak flower
#

Will test that next

#

It might also be the shattered crystal thing in the middle

#

Lots of split uvs

lilac saddle
#

if you want to be sure you can use the unity GPU profiler and see what each object on screen costs in ms

peak flower
#

Yeah I was trying to figure out how to do that

lilac saddle
#

and find out what material or shader is causing the most gpu load

peak flower
#

Couldn't figure it out per object

lilac saddle
#

particles would show up in the transparent queue

#

but it's good to learn the profiler basics when you're not sure what objects are causing fps drops

peak flower
#

So wait, am I just supposed to turn objects on and off to see how it is affected?

lilac saddle
#

that works too

#

you can turn on the stats gizmo in the game view window and turn things off and on if the profiler is too technical

peak flower
#

Oh is there any way to fly around while in the game tab / camera?

lilac saddle
#

you can manually move the main camera

peak flower
#

ah, so no. Okay

peak flower
#

it's saying transparent is getting 1000+fps

#

omg, thank you for the camera tip I have been going crazy

lilac saddle
#

Select your Camera , GameObject->Align With View from the top menu bar

#

yus yus

peak flower
#

omg. hahaha

lilac saddle
#

what's even better that not only works with cameras but any object

peak flower
#

I dunno why I went all this time without googling that for myself lmao

#

Alright so vsync and gpu/other are my biggest

#

It really only appears when I have my headset on though

#

I take it Vsync is just filling in the gap to make for an even framerate?

lilac saddle
#

the particles should be in camera.render > render.transparentgeometry

peak flower
#

Thanks for showing me this!

#

I am at 67 draw calls / ~4%

#

The mesh has a higher %

lilac saddle
#

then it's not the particles killing the frames in this but the meshes, yup

peak flower
#

coooool

#

Would an animated texture be game over?

#

Thought a mesh with a moving water texture on it would look amazing

lilac saddle
#

shouldn't be a problem

peak flower
#

Awesome, I am gonna try that soon

#

Also do you know what Other usually is in the profiler?

lilac saddle
#

just look at the fps, the drawcalls and the profiler

peak flower
#

okay cool

#

Is there a target draw call that I should shoot for?

lilac saddle
#

really depends, could even be waiting for vsync, you can test that by going into edit > project settings > quality and change 'every v blank' to 'don't sync' to turn off vsync in the game window

#

but that's the CPU profiler you're looking at now?

peak flower
#

it was

#

I was on every v blank

lilac saddle
#

in case of other in the gpu profiler it's uploading textures, updating custom render textures sometimes too

peak flower
#

Now I can really see the fps lol

#

So should I change the vsync back to every v blank before uploading?

lilac saddle
#

doesn't matter for vrchat, it will lock onto the headset max framerate if it can

peak flower
#

cool, alright

#

Any reason to have sync at all? It's great with it off because I can see the real fps

lilac saddle
#

one warning: the best and only really important fps is what you yourself and other people report in vrchat in vr

peak flower
#

That makes sense

#

I meant for testing which objects are increasing it

lilac saddle
#

but on the whole the profiler is the best way to find bottlenecks and reduce them

peak flower
#

I am definitely understanding it a lot more now

lilac saddle
#

for cpu problems too, having colliders or physics will spike the cpu load

#

and the profiler will show you where it's coming from

peak flower
#

I keep getting these spikes in Other

lilac saddle
#

batching and occlusion culling are ways of reducing mesh load on the gpu, look into that aswell

peak flower
#

Maybe when the particle system loops?

#

I have done occlusion culling but I didn't know about batching yet

lilac saddle
#

if opaque geometry takes the most time in a frame, make sure all the meshes are static

#

and ideally share the same material

peak flower
#

Yeah at one point I had imported some new meshes and forgot to set them

peak flower
#

Great, thanks

#

OKay it was definitely not the particles

lilac saddle
#

keep an eye on the performance while turning stuff on/off will pay off, unity is janky but it does have enough options for making it waste less time drawing all the objects and figuring out where they need to go

peak flower
#

Yeah this is super helpful

#

Thank you

lilac saddle
#

no problem, have fun with it, the profiler info works on avatars too, and you can set the game window to headset or 4k res too to stress test gpu 😉 good luck

peak flower
#

Awesome thanks again!

steep parrot
#

Hey, what's that thing I keep hearing about that lets me check the draw calls/causes for lag? It's something in unity...

#

I think it's part of one of the gizmos, or something?

west zinc
#

profiler

steep parrot
#

thanks!

peak flower
#

also stats in the game viewport menubar

harsh geode
#

So, one of my newest worlds, I'd like to further optimize through lighting.
It's currently using Realtime lights, and I've tried to bake them (as a baked directional light), but then it
would cause the stylized/caustic shader to no longer work. (shown below)
https://gyazo.com/713f82a5fd18d3aea675e5cc3bd70bf1
Is there any way I can further optimize this through a means of lighting? Also unsure if I should either
statically batch or use GPU instancing instead.. I'm not sure if the batching is even working properly

#

Also I'd like to think there's the option to code the shader to ignore lighting and have its own color gradient in unlit form, but I'm not sure

#

how it affects lightprobe placement and dynamic lighting

red scaffold
#

What does the OnNetworkReady trigger do exactly?

harsh geode
#

once all of the things are properly loaded in to your world, It would allow you to trigger something to happen

#

for example all the pickups to be loaded in properly in the right spots

#

and then a use of that was a door

#

that only opened when everything was properly in place

#

everything properly networked and broadcasted

#

then the door opens

red scaffold
#

Oh okay, I’m just trying to figure out if there’s a function for triggers activating when a player looks a certain direction

#

Like it won’t activate unless you turn around for example.

#

Is there one? Or would I have to make a custom one?

harsh geode
#

my only guess is a playertracker collider invisible in front of you

#

and then onenter trigger

#

thing

red scaffold
#

Hmm

#

I presume OnSpawn is for respawning pickupable objects?

versed lichen
#

@harsh geode Your world ran extremely well for us during the community meetup, i don't think you need to trouble yourself with optimization tbh

#

unless your realtime lights are affecting all layers

harsh geode
#

thanks @versed lichen ! Right now the layers affected are everything except pickup and UI, but what uneeded layers can I get rid of? all the environment and fish are all default

versed lichen
#

then you can only keep Default, player local, player, pickup and UI

harsh geode
#

is there noticable impact for those other layers to be off?

#

and thanks!

versed lichen
#

no idea, i've always been told to remove them if not used

uneven vault
#

I want to make a world like Rainbow Six Siege. I have a destructible house and a hammer. I want the hammer knock down the wall(s). I don't know how to configure that. Can someone help me?

Maybe when the hammer hits a wall. The hammer deactivates the kinematic on the wall(s).

versed lichen
#

Sadly there's no way to enable the kinematic

#

BUT

#

you can definitely disable the non kinematic object and at the same time enable the same object with the kinematic check

#

so it's the same wall, but in two different objects, one is kinematic and the other isn't

uneven vault
#

oh srry.
it said ask questions about optimizing a world. So i thought.

versed lichen
#

no problem iris

blazing fog
#

quick question: like avatars, there is a material limits for worlds?🤔

pallid gale
#

well you're probably going to have a bad frame rate if you have way too many materials but there's not a explicit limit

paper sparrow
#

is there a way to tell how many materials you used then? I haven't atlased my world because frankly it was so hard to get looking right that I'm scared to, lol

#

it's small and I haven't compressed any textures yet or shrunken the lightmaps yet, and it's 36 MB

#

so I'm kinda wondering if I should bother

pallid gale
#

honestly you should get around to trying to compress the textures as that's going to help with the file size

paper sparrow
#

oh, yeah sorry

pallid gale
paper sparrow
#

I meant specifically atlasing

pallid gale
#

that's not going to potentially help with file size that's more just for cutting down draw calls

paper sparrow
#

ohh interesting thank you

#

and yeah, I'm using assets I didn't make so there's several individual objects that use two materials

pallid gale
#

yeah you definitely would want to look into texturite assets tools for your props

paper sparrow
#

well

#

I spent 25 days putting it and my avatar together so working on it further and potentially messing up UV maps and stuff (none of the materials even have human-readable names, I started with no experience so I didn't think to change them)

#

is a little nauseating but

#

I will at least compress textures and shrink lightmap resolutions and gather my strength to atlas later lol

#

it wouldn't be so bad if it could be done in Unity, the atlasing, but I suspect it's all Blender work and I imported my cabin from Blender all as one FBX because I was a fool

#

😩

paper sparrow
#

hmm. if one object calls the same material twice, is that still two draw calls?

#

because there's this one, for instance, with like five material slots and each one uses the same material

#

which is kinda baffling but not my doing

pallid gale
#

okay that's confusing considering that should be one material slot?

#

are you sure it's using the same material and not five copies of it?

paper sparrow
#

yeah, it's a game asset from the early days when the devs made a flower pot have as many polygons as a player character

#

no I have no idea what they were thinking

#

but it's not that bad performance wise

#

it IS however five separate objects with their own material slots all glued together and referencing the same material with each slot

pallid gale
#

is that early Final Fantasy XIV

paper sparrow
#

yes.

#

I have no idea wtf 1.0's devs were thinking

#

I can see the difference in assets from early on and newer ones lol

pallid gale
#

you're probably going to need to do some mesh optimizations if you want that running on the quest

paper sparrow
#

but it's five bottles on a shelf with five slots and I'm just not sure how draw calls work is all. its polycount isn't bad at least

#

yeah, noted. I'm not too unfamiliar with that at least, I had to "repair" a couple items

pallid gale
paper sparrow
#

ahah, thank you

#

I'm so new to this it's hard to know what to google sometimes, but I try to be as self-sufficient as possible lol, thank you

pallid gale
#

I would recommend going through all the pinned messages on the world's sections and giving them a read

paper sparrow
#

i

#

good point

#

I have been thus far

#

but now that I'm "done" aside from optimization (read: not done) I was just thinking about it idly at work

#

appreciated lol

winged sinew
#

Oh no, that's wrong though

#

The flower pots didn't have as many polygons

#

Just shaders and draw calls

#

FF14s renderer has a batching and instancing stage before it does the rendering; depending on what tools you used this isn't going to translate to Unity

#

Similarly, if an object references the same texture several times, it might be because it uses different properties for each invocation.

paper sparrow
#

oh, that then. i'm new to 3d art and heard that long before i ever knew about how all this works, so i misremembered it

#

and yeah, i know it won't translate, at least. i was able to ask someone who's already done a lot of ffxiv-to-unity work

#

i never would've figured out that "delete green, mask blue with red" RGB channel nonsense for converting the specular textures otherwise lol

winged sinew
#

Mask blue with red? That's a bizarre workflow

paper sparrow
#

it's just that ffxiv handles specular textures very differently

winged sinew
#

Oh, trust me, I have very deep knowledge of how this works

#

If you have any questions, feel free to DM me!

paper sparrow
#

well my original question was just about draw calls anyway, since i think i've got the specular stuff all done. even if it was done in a weird way, you can see in the video up there that (imo) i got a look that's pretty faithful to in-game, if a bit prettier (at least i'm proud of it, don't hurt me lmao)

#

but these bottles (not fully rendered here) have five material slots, and i put the same material in each one, and i wasn't quite sure if that was a problem

#

but documentation seemed to say that unity will just batch draw calls when a single object uses the same material multiple times, unless i misread

#

so, should be okay

#

now i'm just onto compressing textures and shrinking lightmaps since 78% of my map is textures

winged sinew
#

As long as the batching works it should be alright

paper sparrow
#

i'm secretly reluctant to return to blender

#

not that i dislike blender, but

winged sinew
#

Working on these maps in Blender is quite a struggle.

red scaffold
#

Is there a way to make Audio Sources lower their volume via VRC_Trigger?

versed lichen
#

lowering would be a slider, unless you want a specific volume ?

red scaffold
#

Like I want to click on a button and have it lower the music slightly.

#

I don’t think AnimationTrigger works.

#

@versed lichen Do you think something like this is possible?

versed lichen
#

by the same amount each time ?

red scaffold
#

Like clicking the button will lower it from 1 to 0.8 for example.

#

Clicking the same one again/or clicking another one will lower it to 0.6

#

I want to decrease the volume by 0.2 each click.

versed lichen
#

Yeah in that case doing that through an animator shouldn't be very difficult

#

creating a lot of substates, and basically enabling parameters between states, and those states just have an event that changes the value on the component

red scaffold
#

Hmm.

#

I’ll give that a try, thanks.

olive mauve
#

hmm, could one of you help me out, everytime i put generate collisionand apply, unity gets stuck on "hold on". i would leave it alone for couple hours and it still be on "hold on"

versed lichen
#

You mean generate lightmap uvs

#

How many million polygons is that mesh ? @olive mauve

olive mauve
#

both, also how do i check how many polys it is?

versed lichen
#

I don't think you want to generate collision

#

You should be able to see if you click the arrow next to the asset in your project

#

Then click on the mesh object inside, it'll show the poly count in the bottom right corner

#

@olive mauve

#

If it is multiple millions, which I suspect, generating could take hours

celest forum
#

Hello everyone 🙂 i have just a question ^^
This tag mean that I need to optimize my world ?

#

please ^^

cold prairie
#

That means someone reported your world for performance issues but it doesn't mean it has performance issues since people can report worlds for whatever

#

Unless your report count is unusually high it doesn't really matter

#

Hard to say though maybe your world does have performance problems 🤷‍♂️

celest forum
#

@cold prairie Thank you very much for your answer ^^ i make an update this afternoon (UTC+2) for enhancement, i think lightning kill my world (Apo's World) it's a coaster park with lot of togable animation. 🙂

cold prairie
#

If you have realtime lighting that's a real performance killer you should look into baked lighting

celest forum
#

Thank you again @cold prairie ^^

#

@cold prairie Sorry, just a last thing, What about emissive textures, it's the same ?

cold prairie
#

Most of time you should bake emissive textures with the lighting as well so there's no performance impact

celest forum
#

Thank you, ^^

proud cove
#

Not sure why that is but mirror is causing a drop from 90fps to 20ish while in vr.

versed lichen
#

How performant is your avatar ?

dreamy drum
#

also how big is the mirror. with larger mirrors camera has more to render.

proud cove
#

Avatar is good, mirror is a reasonable size, also should add it's been fine for months. Made updates to the world in terms of images and more avatar pedestals but didn't touch the mirror or anything near it.

#

But I also added a button to turn off pedestals and it's still eating frames

versed lichen
#

can you show what the mirror reflects ?

proud cove
craggy dust
#

can anyone recommend a good water shader? I need to make an open ocean but don't want to lag my world.

versed lichen
#

Silent's water shader is great

craggy dust
#

I'll give that a go, thank you!

wild bronze
#

Im sure this is pretty noob to ask, but when you export your level to vrchat from unity, does it upload all the assets in your unity project or just the ones being used?

willow spoke
#

just the ones being used

hollow elk
#

If future proofing is disabled

willow spoke
#

should never use future proofing though, it's no longer a supported feature

craggy dust
#

I'm trying to add audio to my world, I have looped sounds for 2 spots in my environment, but I'm not trying to add the 3d effect to them (I don't want players to hear where they are coming from). Just hear them when in range of the sound. Any advice?

versed lichen
#

@untold stirrup We visited your world earlier, really nice ! Have you thought about baking lights to help with performance ?

west crag
#

I have some objects which are cloned from a prefab and just translated to different locations and unity is not batching them for me

hollow elk
#

@west crag Does the frame debugger show the reason its not batching?

west crag
#

different reflection probes 😦

#

so that's a thing

#

yeah, turn off all but one reflection probe, bam, batches goes from 42 to 39 ... still nowhere near enough

#

ah a lot of it is post-processing of the world itself so I might actually be ok

#

I guess I just sit tight then

hollow elk
#

40 batches isn't an issue, or is that just a small part of your world?

#

Usually not worth fighting with unity to get things perfect

cold prairie
#

You can also use anchor overrides to help with thing batching when there's multiple reflection probes in the area

#

Or even turning reflection probes off if the material is non reflective

west crag
#

ahhh yes, I forgot about that trick

#

but

#

in this case it doesn't matter

#

the small part of the world I'm making will transplant into an entirely different place

#

so that stuff is all in their control I imagine

#

some other objects are saying "Objects are lightmapped."

cold prairie
#

That's usually I think them being on different lightmaps from each other

west crag
#

that .. would be a completely different sentence

#

I guess maybe turning off shadows for some of these things might reduce the whine

cold prairie
#

English is my second language sorry if it's not understandable at parts

west crag
#

nah, I don't think that's it

#

I think I'm complaining about unity's message not being useful heh

cold prairie
#

Ahh gotcha

#

Unity 2018 does improve batching of lightmapped objects though

#

But we don't currently know when we are gonna update to that on live

west crag
#

but I know it's before the event I'm doing this for

#

well, unless some major disaster occurs

cold prairie
#

Yeah 😅

#

In that case you could disregard those not batching for now

west crag
#

what happens when I turn off "lightmap static" on these things

cold prairie
#

But even with 40 batches you should be good as long as the final thing that you guys are making is properly occlusion culled

#

They would be light up with light probes in that case and not have shadows

west crag
#

that's what I thought .. so theoretically worse performance, but it might let it batch them

cold prairie
#

Light probes shouldn't really be worse performance but usually it would look worse depending on the object/lighting of the scene

west crag
#

nah it just found a new reason not to batch anyway

#

I guess I will give up at this point and wait until the proper tools come out to check my stuff

cold prairie
#

Is it for Vket or something?

west crag
#

yeah

cold prairie
#

Ahh

#

Do they have some specs on how low you have to get your stuff?

west crag
#

yeah

cold prairie
#

Do you have the numbers I'm interested to hear them?

west crag
#

depends on the world

#

SetPass calls < 20, batches < 30

#

in my case

cold prairie
#

Yeah explains why you are trying to get them so low

west crag
#

whether that's with postprocessing on or off is another thing to wonder about right

#

🙂

cold prairie
#

You won't really be able to add post processing though since you won't be able to control their reference camera though 🤔

west crag
#

yeah the question is will they be using it

cold prairie
#

And it's kind of hard to test with since you prob won't know their exact settings

west crag
#

yep

#

so there's a tool to test it, it's just running late

cold prairie
#

Oh yeah I've seen some tweets about the tool but since I haven't participated I don't know much

west crag
#

what I do know is that a bunch of stuff I wanted to do was adding draw calls and wasn't able to be batched 😦

cold prairie
#

If I could see pictures I might be able to help more

west crag
#

this is shader hell stuff

#

the shader assumes the object coordinates so it explicitly turns off batching

cold prairie
#

You could atlas and combine all the normal geometry depending on if you have something else in the booth

west crag
#

I'm very light on actual geometry. there is a place I can do that though I think

#

the bit where I have the remaining problem is a complicated issue

#

ah except that place is batching properly yeah

#

so I can reduce draw calls by a further 2 if I really have to

#

I'm hoping that I'll actually be well under so that I can restore some of my decorations

cold prairie
#

Good luck on getting it down

vale dock
#

im guessing diffuse just draws with simple shading

#

and standard lite is exactly what it sounds like

#

standard shader stripped down and gunned for mobile

#

i didnt know th3r3 was a standard lite

olive zenith
#

diffuse is very lightweight. standard lite is pretty lightweight but the additional normal map (and additional textures) can incur some small but not insignificant perf costs, which are wasted if you don't need it

onyx kernel
#

Hello guys I have a question about the bloom...I want to make a toggle button to toggle it on/off, I made this it works only in unity but doesn't work in vrchat I don't know why😣

#

the bloom itself works fine, but I can't toggle it on/off in vrchat

#

I tried to check/uncheck the bool in play mode in unity and it works

versed lichen
#

don't put post processing on the main camera

#

Also that could literally be a single OnInteract SetComponentActive

onyx kernel
#

ahh i see!

#

but where do I put the post processing then?

versed lichen
#

On an empty game object

onyx kernel
#

ohhhhh

versed lichen
#

also make sure you have the correct layers

onyx kernel
#

default?

versed lichen
#

and that your vrc world has the camera reference

#

nopr

onyx kernel
#

Thank you!! I'll go check it

#

ah but does v2 work?

#

I tried v2 but it kicks me out of the world every time I try to load it

#

so I switched back to the first version

versed lichen
#

V1 isn't very good for a few reasons and won't be supported in 2018

onyx kernel
#

I seee

#

Thank you!

south socket
#

came across this useful tool

gray minnow
#

hey, I need a transparent mirror for a glass plane, how do I achieve this?

versed lichen
#

Use glass shaders instead ?

winged sinew
#

@gray minnow Does it actually need to reflect people?

gray minnow
#

that would be even more nice, but since I only would activate a thing like that with a button it's rather optional

#

so if you have a shader that allows to do that I'll happily take it :D

#

@winged sinew

winged sinew
#

It's complicated actually

gray minnow
#

I've seen it in the spirited away train world and have been looking for something like it since

winged sinew
#

If you just want to reflect the room, use the Standard shader and set it to Transparent. Then set Smoothness to the maximum. It will be reflective as glass. If you want to reflect people the setup is a little more involved and I'll have to write something up on how to do it this weekend

gray minnow
#

Just setting the standard shader doesnt have an option to make it a certain percentage transparent

#

but someone gave me a shader for it that maybe works

winged sinew
#

The standard shader lets you change the colour and opacity

gray minnow
#

only reflecting people is still interesting 👀

winged sinew
#

So you can make it fully transparent

#

There's also my glass shader I'm working on

gray minnow
winged sinew
#

Next to albedo, there's a colour field

#

That's actually multiplied against the colour of the material

#

When you click that it'll show RGBA sliders. A is for Alpha, or transparency. Reduce that to zero.

gray minnow
#

Oh I never noticed x)

#

thank u

gray minnow
#

for some reason my screen space reflections isn't working in my new world :/
worked before in other worlds I uploaded

#

post processing is working though, except screen space reflections
rendering path is set to deferred
even more strange, it's visible in untiys game window, but not in vr chat

cold prairie
#

Most likely something to do with the fact that VRChat is forward rendering not deferred rendering

#

You can't really use screen space reflections because of that in VRChat

winged sinew
#

Yeah, screen space reflections are not supported in Forward mode, and Deferred mode is not supported in VRchat

#

If you saw reflections on other worlds, those were just reflection probes

lilac saddle
#

or custom (and heavy) grabpass screenspace reflection shaders

gray minnow
#

argh

#

:c

delicate halo
#

Hi there. was wondering if anyone could give me some tip on getting the world size down?

hollow elk
#

Crunch compressing textures is usually the way to cut down filesize the most

delicate halo
#

oh cool. how does one do that?

hollow elk
#

when you select textures in the project folder theres this option

delicate halo
#

Got it

hollow elk
#

it does decrease the quality of the textures by a little bit and can be pretty hard on your cpu to compress them but does help a lot with file size

delicate halo
#

Sweet, thanks lots for the help!

hollow elk
delicate halo
#

Ok. thanks!

glass phoenix
#

Every world I upload doesn't wanna load, in game. I used the SDK and followed the tutorial on vrchat YouTube but it just won't load (on PC) and one of the worlds is an unmodified homekit I'm using unity 2017.4.28f1

versed lichen
#

@glass phoenix What's the world ID ?

glass phoenix
#

@versed lichen is that on the website

versed lichen
#

from the thumbnail i'm going to guess your vrcworld is probably under the floor, and that's why it's booting you out of it, since you can't spawn on anything

glass phoenix
#

I'm on it

glass phoenix
#

was it the right move to move the map up

versed lichen
#

nope

glass phoenix
#

Oh.. where does one find the word ID

versed lichen
#

it's on the URL of your link up there, or in the world descriptor component on the VRCWorld object in your world

glass phoenix
#

ahh

#

so how would i go about fixing my world

#

im a noob when it comes to comuter stuff

versed lichen
#

raise the vrcworld object above our ground

glass phoenix
#

ok i moved it up abouve the floor

versed lichen
#

yeah

#

the less materials the better it is

glass phoenix
#

it didnt work

glass phoenix
#

I'll try anything

glass phoenix
#

I just know it's going to be something so simple and when it finally works im going scream

glass phoenix
#

wrld_6a8d69a0-b2e2-4c75-89c3-503fb980650e

#

thats the id

versed lichen
#

@fluid wharf If performance is terrible to begin with, disabling a lot of things won't do much, because they're most likely not the culprit for the bad performance

versed lichen
#

@fluid wharf Do you have realtime lighting in your scene ?

glass phoenix
#

The world is loading theb kicks me to home

versed lichen
#

@fluid wharf Is it set to baked ?

versed lichen
#

In that case removing the objects should only really remove the drawcalls tie to them, you can check that with the frame debugger

glass phoenix
gray minnow
#

How can I estimate a good guess of performance for lower GPU than my own? Is there a way to simulate GPU power of different graphic cards below the own performance or is is this done another way?

versed lichen
#

Not really, asking people with different PC specs is usually the best way, or showcasing worlds at the community meetup for example, to get a wide variety of hardware

#

Do the best you can, but you don't need to go above and beyond to optimize, vrchat has minimum required specs still

ocean ibex
#

@gray minnow use steam vr performance monitor, use some other worlds as base line

toxic stag
#

I use oculusDebugTool to check gpu time of each frame and improve it as much as I can

lilac saddle
#

Better check batches and tris

#

Under 300 batches and 5 mil tris should be oki doki

limber thunder
#

Would 107 planes cause frame dropping? and like, be unoptimized?

versed lichen
#

frame dropping is unlikely, but if those could be one mesh instead then yes it's unoptimized

orchid stratus
#

so do i need to chagne unity version for VRChat 2019.3.2p4 for create the world?

rocky osprey
#

@orchid stratus no read the damn update, 2p4 is a build number

orchid stratus
#

ah i'm not good at english no need to be aggressive just asking because i still don't know i should change unity or not after i read it.

rocky osprey
#

we arent even on 2018 yet it would be a huge jump to go to 2019

outer zodiac
#

hello

glossy wraith
#

hi I have a problem there is a place in my map where culling culling makes walls disappear why

versed lichen
#

Either bake again after increasing smaller occluder size or use the visualization to see what causes it

sweet steeple
#

question, i have a model ripped from a game that is a house question is when i put it into a world that house cant be walked on it would just let me o right through it, any solutions? Im new to world making

lilac saddle
#

it's best to use static primitive colliders (box, sphere, capsule) as building blocks to map out an invisible shape that people can stand on

#

Here's a quick tutorial if you're interested! ^^

Step 1: Go into the unity editor and click on the object. In your case, the house

Step 2: click on "Add Component", as highlighted in the picture below.

sweet steeple
#

following u

lilac saddle
#

Step 3: Type in "Mesh Collider" and click on it

Step 4: Profit! Now it should be set up and done! (:

lilac saddle
#

if that doesn't work you need to enable colliders in the fbx

#

i think its called generate colliders or something like that

paper sparrow
#

how expensive are simple colliders performance-wise anyway?

#

my world has some tiny avatars up for grabs and a powerful jump in it, so i kinda wanna map out some of the more complex surfaces of the furniture there with just like, boxes and capsules

cold prairie
#

The primitive colliders have almost no performance cost compared to mesh colliders

#

Since you only have to calculate the colliders that are touching something it get's pretty cheap having a lot of primitives versus one giant mesh collider

#

Even more since primitive colliders have optimized math

paper sparrow
#

because that tiny chest in the top left has little puppet avatars in it

#

and i don't really want people who're suddenly small with big jumps to be like "wow these colliders are so lazy" lol

#

thanks

cold prairie
#

As long as you consider them a bit it's pretty hard to notice as a player

paper sparrow
#

ye

glossy wraith
#

you had some advices to optimize my map i already put some oclusion culling

versed lichen
#

First advice is to download ShareX

vale dock
#

next, occlude those desktop notificatons, or disable them whent aking screenshots lol

#

i am not a world developer. i amnot a world developer. i am not a world developer.

cold prairie
#

Shift + Win and S is also good to use 😉

vale dock
#

from research i've gathered in prep for when i inevitably work on worlds, your best friend is the unity profiler and frame inspector. use those. heavily.

versed lichen
#

@glossy wraith We'd need to know what your current drawcalls/batches situation is to help

cold prairie
#

From the limited info they atleast have the basics down

vale dock
#

you are building for a VR platform. remember this and plan around it, you can do research for what's best. generally,
-plan for your scene to not exceed 1-2 million triangles and 500-1000 drawcalls, that includes avatars (players) so budget wisely
-compress everythinggg. or the stuff you can. textures and audio bloat filesize very quickly
-you do not need the fanciest shaders for worlds. use mobile shaders where possible, next best choice is standard.
-bake your lighting. set your lights to baked or mixed. some exceptions, of course, such as worlds that have a primarily outdoor environment, but you should only need one real time light for a sun or moon

#

others:
-atlas your textures and maps wherever possible
-batch stuff that can be batched like trees
-take advantage of LODs

glossy wraith
#

@versed lichen already the map weighs 73 mb and then in vr bc of person lag and seux in dekstop not lag would have wanted to be able to lower the weight of the map first

versed lichen
#

Then follow the steps given above

lilac saddle
#

better use gpu instancing on trees if u wanna save on memory

#

static batching for big meshes that dont appear everywhere

limber thunder
#

Anyone know the best mirror optimisation settings?

lilac saddle
#

@limber thunder use the culling mask to reflect only what you want to show in the mirror ... other avatars are on the Player layer, the player's own avatar is on the MirrorReflection layer, so you need to reflect only those to see avatars, put the background wall or whatever on a special layer too, so in the end you have the culling mask Player, MirrorReflection and one custom layer with the wall/background on it.

#

also turn off pixel lights, but ideally don't use pixel (realtime) lights at all in a world, use baked lighting and just one directional light (sun or moon light etc)

ocean ibex
#

-plan for your scene to not exceed 1-2 million triangles and
@vale dock

So your scene should have 0 triangles for 20 people 😄

#

1-2kk is for 90 fps with 970 reccomendation for rift.

In reality you cpu will bottleneck long before gpu

#

People will use models with at least 30k so 35 people is already more than 1kk

#

30k is very optimistic, safe assumption is like 60-70k per person

vale dock
#

well yeah

#

i dont understand what the "0 triangles for all people" is for though

#

it sounds like were talking about and moving towards the same thing 0 0

ocean ibex
#

20*100k

#

so 0 left for world meshes 😄

#

If you want to keep scene within 2kk for 20ppl

vale dock
#

i didnt say anything about avatar sizes initially >u>

ocean ibex
#

-plan for your scene to not exceed 1-2 million triangles and 500-1000 drawcalls, that includes avatars (players) so budget wisely

@vale dock

vale dock
#

im just taking oculus's numbers cuz its the best advice i can give, i havent actually tried "simulating" a reasonable scene in the unity editor with the profiler yet

#

are you trying to say that those constraints are much higher than i think or that im suggesting that one has to be a lot more constrictive on their worlds (cuz i also agree that most avatars approach 100k triangles cuz gay >~< )

ocean ibex
#

It will not matter much or at all

vale dock
#

i know that you can apparently push 10 million triangles in a unity scene under conditions that i dont even remember

#

because of bottlenecking?

ocean ibex
#

it will be on cpu no matter what

#

unless in some edge cases

vale dock
#

that makes more sense then

lilac saddle
#

can I add one?

  • make everything that doesn't animate or is a pickup static
ocean ibex
#

My world has like maximum of 250k triangles visible at same time

vale dock
#

cuz vrchat is pretty CPU heavy right now and doesnt use a lot of GPU

ocean ibex
#

and maybe max of 50 draw calls

#

I am more afraid of triggers and networking, when working on stuff

vale dock
#

im not

#

i want the game to work lol

lilac saddle
#
  • avoid overbroadcasting, make triggers local and put objectsync on the object that changes instead
#

(don't broadcast a button press, sync the result)

ocean ibex
#

if it is moving object and not disabling sure

#

unless animation sync

lilac saddle
#

yeah, disabling is an exception

narrow ember
#

Is it currently possible to load a scene into another scene or do we have to put everything in one scene? Because I would like to separate scenes this way so I can toggle their state (on/off). If there is any other way which would be better than this, may it be possible to let me know how to do so? Thanks in advance.

versed lichen
#

one scene

narrow ember
#

ok thanks Ruuubick

vagrant axle
#

@lilac saddle What triggers should be always be local and what triggers should always be broadcast?

lilac saddle
#

goodmorning everyone, i was wondering if anyone could tell me what i am doing wrong i am using a theater prefab which the screen works just fine but there is no audio playing

dreamy drum
#

@lilac saddle im assuming your ingame world volume isnt down or that the video is quiet. have you tried multiple videos to make sure?

sweet steeple
#

does anyone know why in unity i cant get close to things without it disappearing

#

the closer i get the more it goes away

cold prairie
#

Press alt + middle mouse while aiming somewhere

#

Your scene view cameras clipping got messed up

sweet steeple
#

how can i fix it? doing that still makes my world disappear 😦

#

@cold prairie

cold prairie
#

Did you aim at visible geometry?

#

You can also select a object and press F

lilac saddle
#

Click the object you wanna focus on and press f

frosty nymph
#

hay i haw proplem whit a skipt

versed lichen
#

@frosty nymph Check the steps on how to update your ask in the VRC documentation

lilac saddle
#

Pretty simple question - is there a recommended max texture resolution?

versed lichen
#

4k

lilac saddle
#

ah great, thanks!

#

way higher than I expected tbh

versed lichen
#

Crunch compress at the end and you'll be fine

hollow elk
#

@placid shuttle Do you mean the field of view or something else?

#

The default desktop view in vrc is 60

#

Pretty sure that's also 60

lilac saddle
#

Component > Mesh > Text Mesh

#

that's how I'd normally do it at least, not sure if that's the "recommended" method

dreamy drum
#

I prefer ui text over text mesh but i think its whatever you feel comfortable with using.

lilac saddle
#

Yeah, depends what you're going for I guess

vagrant axle
#

Is it a problem that I have to make multiple materials for small variations of color for different objects? Does it all become one material in the compile or will it have a performance cost?

vale dock
#

whatbdo you mean

#

i dont follow what youre trying to do

#

if your model is just flat colors you can just do vertex colors

#

then if you want to add details later - real textures- or just have texture maps on hand

#

you can always bake those onto a diffuse texture for later

#

and have one texture for the entire thing

#

or better yet, to make it real light: pixel palette UVs

vagrant axle
#

My example is if I want to have 7 cups in 7 colors, I'd have to make 7 materials. Is that bad?

past imp
#

that will make seven different materials
one thing you can do is if you're using the standard shader, make the cups the same material and enable GPU instancing on it.
then create an animation to change the colors of the cups

vagrant axle
#

ohhh an animation on the colors!

#

that will save me a lot of materials!

lilac saddle
#

Yeah, it's not necessarily a problem, but it's definitely not efficient

#

For the same reason that atlases are a thing

timber apex
#

I have a lot of materials in my scene, many are used across different meshes. If I enable GPU Instancing on all my materials, will it help with performance?

versed lichen
#

Only if the meshes are identical afaik

cold prairie
#

And only if they are not static

#

And most cases static > instancing

#

Instancing better saved for cases where you need a lot of identical dynamic objects

versed lichen
#

trees > bubbles

lilac saddle
#

Combine all meshes + gpu instancing > all

cold prairie
#

That sounds like a terrible idea in most cases 🤔

lilac saddle
#

Why

cold prairie
#

If you combine all meshes gpu instancing doesn't really benefit you in any way and you can't really do occlusion with everything combined

lilac saddle
#

Lol u misunderstood

#

Combine all meshes up to the unity mesh limit then gpu instance

#

Use cubic areas e.g. 50x50x50m areas r occlusion

#

For*

cold prairie
#

GPU instancing still wouldn't be doing anything in that case 🤔

lilac saddle
#

Are u sure

cold prairie
#

Yes for GPU instancing to work it needs to be the same identical mesh and same material on that mesh for them to get instanced

lilac saddle
#

That applies to mesh combining aswell

cold prairie
#

If you are combining meshes in 50x50x50m areas you would rarely end up with identical meshes

lilac saddle
#

If u mesh combine its like static batching or better

cold prairie
#

I'm not arguing that you shouldn't atlas and combine close by objects which is a pretty important step in optimization I'm just saying GPU instancing won't work with that

lilac saddle
#

If u do ur models properly with atlases then u can combine most objects

cold prairie
#

Yeah ofc

#

Still doesn't make GPU Instancing start working with that workflow

lilac saddle
#

Combine up to max mesh size then turn on gpu instancing 4 the combined meshes

cold prairie
#

So all your combined meshes would be identical in the end?

lilac saddle
#

Idk why it wouldn't work lol im doing it

#

Its easy to turn on gpu instancing

cold prairie
#

Because it doesn't 😔

past imp
#

You might be misunderstanding what GPU instancing does

#

you can check it on but if you're not using it correctly it's just a checkmark you turned on

cold prairie
#

"GPU Instancing only renders identical Meshes with each draw call, but each instance can have different parameters (for example, color or scale) to add variation and reduce the appearance of repetition."

#

😔

lilac saddle
#

U can still have identical meshes

#

Houses etc

cold prairie
#

Yeah ofcourse and after you start combining meshes they won't be identical anymore

lilac saddle
#

Thats not always true

cold prairie
#

Ofcourse it's not

lilac saddle
#

But u can use static batching if u prefer that i dont care lol

#

I combine as much as i can then use gpu instancing

cold prairie
#

I use everything 🤷 just instancing or static batching won't solve your problems

#

And from what you are saying your gpu instancing isn't working

#

I atlas/combine > static batch > GPU Instance depending on the objects in the scene and everything else

lilac saddle
#

Static batching and mesh combining makes ur world file size bigger fyi

#

Try static batching a forest vs gpu instancing

cold prairie
#

Yeah it does that's why you need to know what to use and when

lilac saddle
#

But 4 fps ultimate thing to do is combining and gpu instancing methinks

past imp
#

there's isn't one set "yeah just do this"

cold prairie
#

There isn't that many cases of combining meshes and doing gpu instancing that would work for everything expect if your world is just the same group of meshes repeated everywhere

lilac saddle
#

Occlusion culling can also kill your fps if u have too many objects

#

Better not use it in open areas

cold prairie
#

That's why you also need to know how to optimize occlusion culling and not just turn it on

versed lichen
#

you'd need tens of thousands of objects

#

in which case your perf is already dogshit

lilac saddle
#

Not when i tried it

#

Idk maybe too many lod levels

versed lichen
#

yup that makes it worse for sure

lilac saddle
#

Better use Frustum culling and fog

cold prairie
#

You just don't mark everything as a occludee and occluder and call it a day, you should go trough every object and mark it right

lilac saddle
#

Or disable parent object

versed lichen
#

frustum culling is basically worse occlusion culling

#

especially since FOV differs from headsets

lilac saddle
#

Collider streaming then

versed lichen
#

AkkoShrug occlusion culling is great

cold prairie
#

It is if you do it right

lilac saddle
#

Na occlusion culling is overrated

versed lichen
#

if you like performance and stuff not disappearing in your view, then occlusion culling is better

lilac saddle
#

Scene streaming > occlusion culling

#

But this is vrchat

versed lichen
#

yup

lilac saddle
#

I dont like having to bake

#

Every time i change something

versed lichen
#

we don't usually bring up stuff that isn't relevant to the platform kermit_tea

cold prairie
#

If your occlusion bake is taking forever you are doing something wrong

#

"When should you use Occludee Static? Completely transparent or translucent objects that do not occlude, as well as small objects that are unlikely to occlude other things, should be marked as Occludees, but not Occluders. This means they will be considered in occlusion by other objects, but will not be considered as occluders themselves, which will help reduce computation."

#

If you mark everything in your scene with everything enabled static you are doing something wrong

lilac saddle
#

lol you dont even know how my world looks like

#

but do whatever you want i dont care tbh

#

whatev works 4 u

cold prairie
#

I think I multiple times stated that it depends on everything in your scene all my tips was general on what you should take in consideration on optimizing

winged sinew
#

@cold prairie The first thing you said was wrong though, Unity's occlusion cache can become bloated and make all future bakes take 2-3 hours. Deleting it helps, but of course, it needs to regenerate it

cold prairie
#

Never ran into that myself thanks for the info, it does help with the bake times when you setup your occlusion properly though

#

I did have my umbracache files bloat into 800k files at one point which was a pain to clear out

#

I guess a good pointer would be clear your umbracache files once a while before they bloat up too much inside the Library\Occlusion folder in your project

smoky kindle
#

I did have my umbracache files bloat into 800k files at one point which was a pain to clear out
@cold prairie Sorry, offtopic but are you finnish?

cold prairie
#

@smoky kindle yes I am

harsh shadow
#

Can I get some help on how to setup a movie player in my world

quaint mango
#

guys I got question how do you optimize floors without being too tiley and too crappy texture

hasty merlin
#

What kind of texture are you using? Can we see it? @quaint mango

coarse cedar
#

secondary maps with higher tiling

dreamy glade
#

how do movable object react to occlusion culling?

#

will you see them move? or does it ruin it?

#

like if people are moving stuff behind you and if you turn around will they be moved?

versed lichen
#

they need to be set to static to be part of occlusion culling afaik

dreamy glade
#

but objects that are not static still disapears

#

im moving the main camera and everything disapears but just not lights

#

of does it work differently when in game

versed lichen
#

during the visualization ?

dreamy glade
#

yea

versed lichen
#

Then i'm not sure, if they're not marked as occludee static then they shouldn't be hidden

dreamy glade
versed lichen
#

ah yeah probably !

dreamy glade
#

hmm still dissapears

#

how do you mark something as occludee static

#

or is it just static object?

coarse cedar
dreamy glade
coarse cedar
#

yeah.
what are you trying to solve?

#

" if people are moving stuff behind you and if you turn around will they be moved?"
yes, as objectsync will move them even if you can't see them

dreamy glade
#

the pickable objects should they dissapear or not ?

#

ah ok then 😄

#

thats what i wanted to know, so its ok if they disapear

coarse cedar
#

even if you can't see them they are still there
it's only their visibility that changes

dreamy glade
#

ok gocha thanks

coarse cedar
#

np

dreamy glade
#

alright baked lights , occlusion culling, texture compression, whats else? 😄

versed lichen
#

meshes joined and atlasing

#

low quality colliders

dreamy glade
#

alright! 😄

#

musst optimizze

versed lichen
#

What do the stats look like for you currently in play mode ?

dreamy glade
#

there are some not really optimized models

versed lichen
#

That's pretty good !

dreamy glade
#

what are the main numbers?

versed lichen
#

CPU main, batches and drawcalls

#

CPU main is the most important usually, you can always lower the batch/drawcall count

#

but there's a point where the effort isn't worth the gain

#

if you think you can do more, you can, but there's a limit to optimization

coarse cedar
#

my cpu main is 14ms with just a skybox. that's because of vsync.

dreamy glade
#

well even before optimizing i got full fps so i guess its kinda enough for now

versed lichen
#

in desktop mode ?

dreamy glade
#

and vr

versed lichen
#

cool, perfect then

dreamy glade
#

but if high mirror it was like - 10 fps

versed lichen
#

All layers enabled ?

coarse cedar
#

idk what you map is but 560 batches sound a lot depending on what you're doing

versed lichen
#

that's without any occlusion culling

dreamy glade
versed lichen
#

not a big deal

cold prairie
#

And how many drawcalls is that?

dreamy glade
#

the water thing is probably heavy

versed lichen
#

uh

dreamy glade
versed lichen
#

yeah that's a lot of batches for that lol

#

are you sure your lights are off ?

coarse cedar
#

water can be a single batch but still heavy for the gpu

cold prairie
#

I would also check the profiler for drawcalls

dreamy glade
#

i have one directional realtime

coarse cedar
#

shadows?

versed lichen
#

Get rid of that !

#

Ruins the point of baking

dreamy glade
#

if its off/baked the water doesnt show anymore, cuz its like moving and stuff

#

but water soo nice

coarse cedar
#

oh yeah, it needs depth

dreamy glade
#

so i guess ill have that big minus for it

versed lichen
#

is it only on a specific layer ??

coarse cedar
#

make sure the realtime light's culling mask only affects the water's layer

dreamy glade
#

oh ye prob should do that

#

ok then it should be good

coarse cedar
#

you can also make the water toggleable along with the light for it

#

to make people happy

dreamy glade
#

hmm yes yes

half delta
#

Does anyone have any suggestions for world optimization?
I have already used occlusion and low quality mirrors.

versed lichen
#

Can you take a picture from your world in Unity in play mode with the top right button Stats opened ?

half delta
versed lichen
#

Is your lighting baked ?

half delta
#

no

#

@versed lichen

versed lichen
#

That has the biggest impact on performance out of all things

half delta
#

alrighty@versed lichen are there any other suggestions?

versed lichen
#

Did you change the layers on the mirror ?

half delta
#

@versed lichen layers? like low quality mirrors?

versed lichen
#

Yeah, if you don't want to bake lights, you can change the layers on the light as well

#

You should only need Default, Player, Player Local and Mirror Reflection

dreamy glade
versed lichen
#

backface threshold is complicated, try 100, then use the visualization

cold prairie
#

@versed lichen shouldn't use player local in mirrors

versed lichen
#

aye true

half delta
#

i already have lq mirrors

versed lichen
#

adjust light settings a bit, that's the easiest thing

smoky kindle
#

Is it better use 3-5 box colliders on an object than using a mesh collider? Or does it matter that much?

smoky kindle
#

3000 tris is the mesh

versed lichen
#

Definitely

winged sinew
#

Boxes are almost always better

#

Collision check costs are like
Box: 1 check
Sphere: 1 check
Mesh: Each triangle is checked

#

So a box collider vs a mesh box collider is 12x more expensive? I might be wrong on the exact numbers but that's the idea

sleek mortar
#

so decimating a mesh and using that for colliders would still be an improvement

versed lichen
#

yep !