#world-optimization
1 messages ยท Page 10 of 1
thats the oppposite of what you want
you want multiple meshes so you can properly cull them
If you want optimized you want separate meshes so things can be culled separately when you aren't looking at them but otherwise use the same material so they can be batched or instanced
If you get that right there's almost no performance cost to the extra meshes but all the performance gain of only rendering what is visible
still confused as when it comes to the batches thing and instanced but i'll get their with determination with a hint of hard work and study
Yeah it's just something unity does for you if you meet all 10 criteria. Someone recently had a list of them . You can look around this channel for information on that when it comes time. But you will want to use a profiler and fix the worst offenders
ok
There is nothing in between the chairs.
Question: how would i go about optimizing a world best if it has a day night cycle (which requires realtime lighting)?
most day night cycles u would find use scripts so not good for VRchat , you can however record the game objects and setup everything in to an animation looping i see just last week the master runtime recorder has been updated and the limit FPS bug was supposedly fixed , not certain if your question is about setting up or optimizing one you already did ?
thanks @fierce kernel that is great info
hi guys, i added fog to my world but once i upload it the fog get's kinda broken
is there a specific way to add it?
what's broken/what do you expect to happen? In general unity fog isn't going to work with most avatars except those with fog support enabled (most avatar authors don't know they have to turn on fog in their unity project for avatars to render correctly in fog so it doesn't happen)
I already have a working day night cycle it uses a shader that uses the rotation of the main directional light as the sun, i just use an animation loop to make it rotate. I need to figure out how to make it as optimized as i can but i have no clue how
@flint spruce A single directional light is processed for free in the base pass, so you get one directional light with no overhead. For each additional directional realtime light, it has to effectively renderi all avatars in the scene again.
Oh ok, but what if i use realtime lighting on point lights? Or emissive materials?
All point and spot lights will add a draw call. shadows also add extra draws, though it's not so bad if you keep them hard shadows
emissive materials are pretty efficient (AFAIK) so that's a good way to do day/night cycle if you can get it working with the VRC Custom Render Behavior etc
because they get mixed in with baked lighting
what you really want to avoid is the ForwardAdd pass.
not too in depth but this is a good overview of how Forward Rendering works in unity: https://docs.unity3d.com/Manual/RenderTech-ForwardRendering.html
Ok so what im getting from this is that i can keep the directonal light as it is and change the shadows of all lights to use hard shadows, and then check up on that link
Base Pass is one per object so everything in the base pass is going to be ok
well when you say "all lights" that has me concerned. though you will probably be ok if you keep extra lights to one at a time
I have 1 directional and 2 point, will add another point soonish as that room is too dark
yeah that's no good
why can't you bake those lights? I understand you are doing a day/night cycle but when you say it's too dark it sounds like you mean night time
if so, why not just make them Area Lights or baked point lights and bake the lighting
Well it's an indoor and outdoor map, i want to be able to turn on the lights at night
the lights are going to be a lot less bright at daytime than night, so you should be ok with visually turning off the lights but baking them as if they are on
the directional light is going to overpower them
but i see what you're saying... the only alternative I know of is to use realtime emission
the other trick worth trying if it's like overhead lighting is using a single light with a Cookie texture instead of a bunch of point lights. It's hard to make things work and I don't have a really good answer for you. Just try to keep down the maximum number of point lights hitting anything
Going to see if i can get emissive textures to work as i have no idea how to use cookies, if i cant get emissive to work I'll try them tho
good luck with emissive. Check out Rokk's post in one of the groups recently. he has a list of the settings you have to enable for that to work
Thank you
@flint spruce i did a day and night cycle https://youtu.be/cMk-_S27D8E . To keep it optimized i used hard shadows and set the resolution to low. For people that have low computers i also put a button that would turn off the light. But the ambient light would still light everything up. Then to optimize other objects you can turn off cast shadows for non important objects. Hope that helps a bit.
In the final version, the day will last 10min and night will last 7min. I sped up the cycle for presentation. For those in vrchat will recognize the map as a...
I also animated the emission for the building to come on at night.
Baking is soo hard to do everytime i try it my unity ether crashes or takes forever to load that i give up
Thank you jetdog, will take a look at it once I've got the time
I'm slightly confused about LoD settings, and the scale setting. Currently my LoD groups are only showing at seemingly somewhere around half their intended distance.
Anyone know what LoD bias setting I need to use to make it simply match the editor exactly? The Unity documentation on it sounds backwards when I read it.
I believe the ingame quality settings may differ from the ones in the editor, meaning that LODs are a bit inconsistent
I don't think the ones used ingame have ever been posted here, but if so they should be pinned
Would be very good to know right now. Trying to make a wide area safari world, and balancing being able to see the animals without rendering all of them at once is quite important for it.
they are pinned in #development-advanced
Brilliant. Thankyou.
Did you just try to ping 20k people for that ?
@past summit lod is tied to the quality settings, pinned in #development-advanced
at vrlow your lod is tuned all the way down
@lilac saddle sorry for the late ping was a way for a bit. i dont know if pp v2 fixed that issue. that is usually caused with with high bloom or high emission.
O
I have a question. Is there a way to increase performance in a level due to the number of people in it? Like I know time scale helps a lot, but would increasing the maximum players also help?
@lilac saddle the v2 stack has an option to prevent NaN propagation but usually thats not enough - at extreme angles values can get generally really high if unclamped in shader
o ok
Iโm using the newer Video Sync Steam and is there a way to stop it from loading videos when they are not in the room to help with performance
I don't think so, you can locally disable it but then if it get disabled for the master it won't work for anyone. Imo if you don't need a video player in the room then I don't think it should have one
is there a RPC thing i can use to release ownership
someone always has to own it, you can only transfer it to somebody else but someone will always be in control. By default its Master
ya i know that, thats why i was wondering if there is a known way to "release" or transfer ownership to another user when a user leaves a room. I was thinking of a big colider but don't know whats a good way to keek it from spamming
I've always assumed ownership is transferred automatically to someone else when they leave the room, is this not the case?
well i am trying to manualy trigger that when they leave the room where the video player is simular to how i handle cameras
oh you meant leave the room and not the map itself
@snow karma in my prefabs i have a custom url video player that switches ownership when you enter a url. You would still need to make a system that transfers when the owner leaves the room but the player is set up how you want it.
Okay, so I test out a world, only to be unable to move or look left or right. Only looking up and down and bringing up the menu. Any way I can fix this?
It would be a testing world that I would have no plans to publish.
@dreamy drum sorry to bother you, trying to hunt down an elusive bug i have with my video player and i'm comparing setups. I noticed for your owner setup you also have vrc_pickup and a rigid body on the object you call transferownership to get control of the video player, is there a specific reason for this?
in previous projects the transfer ownership wasnt working and needed the pickup script as well. not sure if its still needed but i decided to keep it on. and the rigid body is on cause you have to have it with the pickup.
guys is it possible to make a vrcaht world cycle itself? like yume nikki?
Yes, you want something like the yume nikki world in vrchat? though not really an optimization question basically you can make use of a combination of triggers to set game objects active and turn other game objects off, or even better, use an Animator Controller state machine and AnimationTrigger actions to trigger various changes in the world state.
Or, you can make a lot of similar looking rooms and teleport the player between rooms when they do something
@knotty elm
thank you, ill try to do that
also i was kinda aware it was not an optimization question, but i didnt see the feature requests section
thanks a lot
is there a way to compress my world?
Crunch compress the textures and turn down the quality on any big audio you may have
Try not to crunch normal maps though
how do i crunch compress the textures
Go to the textures in assets and enable crunch
Alrighty
You can crunch a mesh too if it's like half a million polygons or more, but it has lower mesh precision.
Not meant to use crunch compression in VRChat because whenever they upgrade to a new unity it might break it. Just reduce the max size of the texture until it's not blurry. I usually settle for 512. Default is 2048.
you can also try to atlas your map, will also reduce draw calls in some cases
You should crunch anyway
I'm not familiar with that, how would you atlas a map?
Pretty much no world entirely survived 5.6 to 2017 simply because of the baked lights
@lilac saddle depends on a structure of map, through blender with combining separated small peaces if amount of polys not high, then atlasing ๐ค๐คท
Don't go crazy and make your whole map one mesh and material though
Only atlas small parts together that make sense
If you have a bar with some static bottles, you could consider putting the bottles and the shelves on one mesh and material for example
how would you proceed with a large map of 50k objects and 6k textures?
Holy
You would turn one room on at a time maybe.
For my Museum world each room has a 500.000 mesh with 4k texture.
Unity splits the mesh up so it's not all in one.
I use the teleporter on a door to turn each room off and on.
You will also need an OnEnterTrigger next to the respawn location to turn things off. So if someone respawns all but one room will be off.
If it's an open world then you would use Occlusion culling and LOD, i guess. In the past, LOD has been a bit iffy in that it works at different distances depending on if you are on desktop or VR. They might have fixed that in 2017, not sure.
yes it's an open world, i decided to combine them into big chunks 30 in total, with little camera's view distance+fog, also have atlased all texture into 30 8x8k for each chunk, but it still run in 90fps for vr users, but yeah 5+millions tris for each kinda high, i'm also using unlit shaders to not bake that for weeks, and it uses 2gb of memory just like a hub and low cpu usage
Whatever you do don't put mesh colliders on those . Tried that on a 500.000 polygon mesh, framerate would drop every time i moved around on it.
Instead, make it out of box colliders, takes a long time though.
you also start to slide when you stay in place if the mesh collider was too high, but i can't use standard unity's colliders because it will took few month or more, heh
if to split it under 65k tris that would be 210 meshes that what i got in old unity
how do i make it so mirrors dont lag my world
Reduce the number of things they render
Set the layers to only MirrorReflection and Player, and optionally "Default" after that if you also wanna render world geometry
I believe some maps have a special layer (copied from Default) that doesn't render in mirrors
So any other geometry isn't rendered
thankyou
@lean lodge sorry for tagging u but do u also know how i could add a toggle to the mirrors.
vrc has example scenes where you can see what you are able to do
These examles are very rudamentary and only show a glimpse of what can be done...
For mirrors i usually set anything the mirror can reflect to environment layer, then set the mirror layers to nothing but 'environment', 'mirror reflection' and 'player'.
That's just for small rooms.
How do you make a world where mirrors and cameras turn off when you spawn in?
have them disabled in your scene when you upload the world.
that works yes.
how do i add occlusion culling to a world?
this has a good description at 'Setting up Occlusion Culling', you need to set up all your objects before you bake ideally
it only turns off individual meshes, not parts of meshes, so you need to split everything up in a sensible way
set all mesh objects to occluder static except objects that are fully transparent like a glass or a window mesh, make those occludee static
unity will then bake what meshes it can turn off when blocked by other meshes and do that for you each frame automatically saving drawcalls and frames
effectively turning off everything that's not seen by the player camera each frame
Tyvm
Would someone be able to help me with unity, Ive got all the right betas for the unity and the sdk and everytime I try to drag in the sdk, I get the moving file access denied error, No matter what I try it gives the same error, Dk if anyone else had this issue or could help me, Thanks, Any help is appreciated
where are you dragging it from Desktop ?, is that a windows error or a Unity error
try dragging it directly into the project folder window xxx/Asset , then open project
how to add clock on world
If I leave the Main Camera active on upload, will that cause any issues? Particularly performance
It has no render texture assigned and is otherwise unused
Do emissive textures count as light? I noticed my frames going back to 90 after clearing the emissive orbs in my world. I don't know if its just me.
Or do emissives require a higher load on the cpu/gpu
I do have like 100 emissive orbs.
real time emissions?
For real time emissions they're not as costly as a real time light, but they definitely do incur a higher performance cost than just baked lights or emissions i believe
emissions are not counted as lights no
but they do require a little more oomph to render yes
real time video emisisons require quite a bit of oomph because of the vrc script that updates the texture used for emissions every tick lol
oh yeah that reminds me, can VRC avatars have scripts on them?
nope
well, there is a whitelist
but its very limited
Here is a list of the components you are allowed on avatars VRChat - VRC_AvatarDescriptor - VRC_IKFollower - PipelineManager Unity - Transform - [Animator](ht...
aw man, tho i guess thats understandable
So what is gpu instancing and should I apply it to everything. Most importantly, what shouldn't I use gpu instancing on?
I get it copy and paste calculations, so shouldn't I just check it off for everything?
Or just static items
GPU instancing is where the GPU stores a mesh that is usually used in many instances, so for example if you want to pour out a big barrel of bananas, you would GPU instance the bananas to help improve performance, otherwise the GPU has to render each and every banana from the beginning
I am just trying to figure out in the end, when shouldn't I use it?
I have a dungeon randomizer that reuses a lot of prefabs
yes so when i say many i mean many
like hundreds
also
this is for when there's a lot of the same mesh on the same screen
GPU instancing is used then
otherwise, not worth it much
So is there any reason NOT to have it checked off?
Only in specific circumstances
Right now I have a randomized dungeon where the ground tiles, the wall tiles, and railings all use the same texture.
Keep in mind that Unity will disable instancing if it can't instance, so instancing problems will generally only pop up when making a shader with instancing support
I havent looked too much into it, but I imagine you could clog up unnecessary uses of the GPU and actually suffer in performance
Texture has nothing to do with it
It's the entire material and mesh that must be identical before it will be used
You won't "clog up" the GPU with just instancing.
So, don't worry about it!
Turn it on everywhere. In most cases, your issue will be "how do I get instancing to work", not "thing is broken because of instancing"
Sidenote: Emission is for all intents and purposes practically free.
Is that so? then how is it not pre-activated on everything?
er why is the better question
Instancing requires a special setup and initialisation process that is unnecessary and wasteful if it can't be used.
For example, static batching will combine many meshes together into one. If you have static batching and instancing on, then only static batching will apply, because static batching replaces many identical meshes with one unique (combined) mesh.
Right now I am trying to squeeze every bit of frames for my world. The lights are baked, render distance is reduced, occlusion culling is done. Is there any way to playtest my vrchat world to check the numbers under the hood?
If I have the option to remove skin mesh renderers, should I do so even if the monster is not animated?
From the same place you submit a world in Unity, the VRC window, you can also launch a playtest. You can also use the Profiler to see the performance cost of the objects of your scene in Play mode and the Frame Debugger to see the rendering load.
If you have an object with no animation, a mesh renderer is cheaper than a skinned mesh renderer.
Another note...
Only mesh renderers can be instanced.
oh yeah, instancing a skinned mesh renderer would be pointless lol
and thank you for the explanation, that was super helpful!
Objects that ate turned off would not cost cpu power or load, right? I had a issue with the framerate when i was creating multiple floors, so i am wondering if setting the unused floors as inactive would work.
And turn the floors on as needed
nope, they arent rendered or are considered at all
They take some amount of cpu, but it is small
Would they still be considered even if i put them 10000 miles away?
miniscule yeah
well they wouldnt be rendered since thats way outside of the far clipping plane
for all the cameras
idk what bakery is but yeah you'd have to bake with everything on
I have to do more testing, i lose frames when my friends are faraways. I dont know if its more dynamic monsters or ai scripts taking more power
ya it could be that more things are rendering since each camera is culling more things
er, other way around
hey, will multiple video player but without a render texture effect the performance much? gonna use it just for music to save some MB
isnt culling
I havent used video players much but i would look up how optimised they are
Logically i should maintain 90fps, but when enough monsters spawn i lose frame, even when they are out of render distance
A lot better than they used to be
I am trying to figure out what affects frames outside of the render distance
unity has something called a profiler
it can be used to find things that cause lag n stuff
Any videos on how to read it? I got stuck there lol
Very amateur right now, but i am asking
Watch this video in context on Unity's learning pages here - http://cms.hq.unity3d.com/learn/tutorials/modules/intermediate/editor/intro-to-profiler The buil...
Thanks!
3secs of googling my guy
@lean lodge VRChat can definitely stress the GPU even without especially expensive shaders. If a world creator isn't careful it isn't difficult to accidentally end up GPU bound from overdraw.
any game can stress the GPU enough to make it GPU bound
it is just a matter of what is being drawn
VRChat will more likely be bound by CPU but doesn't mean the GPU doesn't play a part in regards to fps to some degree
VR is technically drawing the scene twice and then if you slap a mirror on top of that you can potentially have the scene being redrawn 4 times
so 1 mil polys can turn into 4 mil
VRC uses single pass stereo so it's not quite as bad as that
Mirrors use a single camera to render the scene twice though rather than using stereo-optimized rendering
i seem to have mistaken TCLs response as a question i should probably sleep ๐ค
That's why it's probably a good idea to have a mirror reflect only the layers you want it to reflect.
Yes
Why does my framerate go up when i disable the baked lights? If i turn them off for VRChat will it save performance?
Depends on how you setup the baked lights.
I just leave them at default values. Not recommend to change them around unless you know what you are doing.
Baked lights are alot better than realtime, which really kills your frame rate as well as using alot of resources
@lilac saddle if you haven't baked them yet, they might still negatively affect performance
Baked lights essentially don't do anything after baking. I heard some people take them out of the scene entirely, even.
Yeah, they're just baked lights.
Is it normal to lose 10fps when enabling one audio source while it's playing in unity?
I've lost about 50 fps with some audio sources and i think that's what's causing it.
guys, i need some help
im making this world and its not too big, but it just hit 140Mb
i've seen bigger worlds much lighter than this, any ideas on how can i make this lighter?
im still new at this
That water shader isn't compatible with VR. Use this one instead... https://gitlab.com/s-ilent/clear-water
how do i do that?
select your texture/s and on right side enable crunch compression and set it to 100
for audio, select audio and top right checkmark "force to mono"
So is it okay to turn off light probes as well since they are baked?
You should leave those on. I don't recommend turning off your baked lights to begin with
kk
Does Occulusion zones and portals work?
Normally, in an occulision zone with a portal it'll De-render whats not infront of the camera
do they work?
in VRC
They both work in vrc. For portals you will need to use an animation or button event to open and close it.
Yes i meant occlusion portals.
when using the default chairs in vrc sdk my chairs always end up with a big block that says sit. is there a way to make this block smaller?
maybe the size of my seat rather than a big invisible cube?
add a box collider. if there isnt one on the chair then the game adds one which ends up as the big collider you dont like. you can shape is as you want.
if you want to not collide with it then yes.
atm VrChat uses Cpu and memory and barely gpu. hence why shaders etc causes massive frame drop
Hmm? Shaders are gpu so I don't understand your point. Also it depends on the world and how you use it. You should be checking with a profiler before guessing
Cpu is going to be way better with the dynamic bone limits
Question, how do i limit how many items can be spawned when i click an object
You could have an animation count how many time you click it then deactivate the spawner.
Ive been trying that
but i cant seem to get it to work
it seems to instantly trigger the animation and im not sure why
How do you have the animator/trigger set up?
a few questions. What is triggering the animationintsuntract. And why do you have a vrc label.
ignore the label
im tired
and it's an onInteract
im trying to make a vending machine of sorts
ive been trying to figure this out for the past like 2 hours
and i havent slept in about 16
Getting some sleep might help. Also onspawn i think only triggers on the spawned object that would need to be checked. How is the animator set up.
I just have it set to enable then disable the object
Are the transition conditions right?
The arrows that transition between animation you can set conditions that only when true will move to the next animation.
Idfk im still pissed about the vrchat team not using playmaker
From what ive been told its a good thing they didnโt go through with it.
how do i add parameters to controllers
On the left top side should be a tab you can click.
Donโt have it in front of me at the moment.
Make sure its an int and the name is correct between it and the triggers.
this animation thing is god awful
every time i set a value it sets across both of them
Once you get use to animators they can be powerful. A lot of people use them as logic systems.
Im not sure what you mean by that unless you have two animators on the same gameobject.
I have animation objects yes
They both have the same values and change values
2.anims
but they both change whenever i change one
In play mode they should hold separate values unless you are setting it for both.
One second
So this is normal yes
How do i make another one that isnt just a clone of it
Because if i add just straight anims, then it duplicates the value across all the animations
unless there's something im missing here
I feel like im missing something or not understanding.
How do i add more animations
once i add one
i cannot make more
without making another .anim file
and i cannot write values to it
without it editing the original .anim's values
On the top left of the animation window should be the name of the animation you are changing the values for. Clicking that will have a dropdown with the create option.
oh
why is this so needlessly complex
why not just make it so it changes when you click on the animation
if you cant tell i dont like unity lol
Its alright it can take some getting use to.
๐
If I have too many lights on my world, could that cause weird results with baked lighting? Things like light shining through flat planes and shadows not showing up where they should be for example. Im using Bakery too in case thats important.
yes if you have too many lights overlapping it could be problems , for overlapping lights try to keep them less than 4
for shining thru issues try using culling layers
for shadow issues look at the material settings for casting and receiving shadows
@hasty merlin depends on how many. If they are baked it shouldn't matter how many you have
as @hasty merlin indicated he has some shadow issues i was thinking he may have shadowmask used or mixed , if you have more than 4 lights overlapping on one object with shadow mask it will not bake correctly, @hasty merlin do u get any console warnings when you bake bakery "out of channels" ? .. turn off shadow mask and test bake again
ya other than that the qty shouldn't matter
Thanks guys I'll give that a try when I get home from work
Is 'terrain' more efficient than, say, one large 3d object?
depends what you want to do with it. unity's terrain makes it easy to create terrain.
I'm wanting to make a massive tree, with 'play area' on top. As its not 'pillar' shaped, I don't know if terrain can be made in that shape, but as it's going to be large enough to run around on top of it, i don't know if a large object will cause performance issues.
So I just got the status back on a world im trying to upload and I had to do some quick fixing to do it, do I have to reapply it with the form or?
Not anymore
So I just update the world with the fixes and they will check it again? since its never been public before
If you already submitted a public world request, they will check it whenever.
If you didn't submit one yet, it won't become public
If you submit and quickly fix something in-between, that usually does not matter.
Hi, i have ran into an issue with my world. Playsers seems to slowly drift to the side. Is this a know issue and if so is there a way to solve it?
Are you using mesh colliders? And how far away from the world origin (position 0,0,0) are you?
Yes, mesh colliders are beeing used. the area where players drift is quite far away.
that area is part of a separate mesh. 32,44,238 away
Uganda Ebola Crates EbolaKola
My occlustion data file is like 24 MB, the maps is pretty large but is there anything i can do to decrease that size
If all you have is one giant mesh, i don't think so ?
Setup occlusion areas, or make sure the giant always-visible terrain is not "occludee static" @snow karma
Occlusion areas restrict OC to just the areas
should i leave my main box one for the entire map and add ones for each house
that being occultion areas
hey @lean lodge i hoped you could give me some insight on the issue from last night, is the slow hoover because of the distance to the centre of the world?
I was hoping someone else with a bit more knowledge on the subject could chime in. Unfortunately, your issue is just something that can happen with mesh colliders. That's one of many reasons to avoid mesh colliders and build your world collision out of primitive-shaped colliders instead (such as boxes)
There's also the issue of being far away from the world origin that seems to make it worse
Make sure your world is as close to 0,0,0 as possible
Appears that placing the VRCWorld element on 0,0,0, solved the issue ๐ thanks for the help!
Ok so my world is being lagged by a thing called
Packet Latency
or "setup notification hide element"
@sly summit The further away from 0,0,0 you go the worse it gets (floating point errors) And when you start hitting 2,5k meters, the objects at that point start to display floating point errors and shake (barely noticeable at this level)
So i guess your area is 32k meters away.
@sweet sinew What I found was that the WRCworld element (spawner) was not on 0,0,0 and the float was terrible just a few 100 meters away, having this fixed the problem gone :)
I assume that if the spawner is not centred it gets worse a lot quicker.
The spawner can be anywhere really, it's all about the mesh location.
oh... well, i guess the meshes were moved as well in relation to the spawn that i placed on zero ^^
@sweet sinew isn't the shaking fairly noticeable at like 5k?
was supposed to be 2,5 but yea
Ah yeah typo'd
mobiles ๐
Which is why I want something that can "pin" the players avatars to the world, so you can move the world around instead of the player moving
That would be fun to implement
.
Please don't post the same thiing in two groups!!!
"
KattsuneToday at 1:48 PM
open up the console tab and see if there is any red text displayed
Kanna-sanToday at 1:48 PM
okay!"
Please reply in #world-development with the answer to that question
@hidden gulch Update your SDK. It is not recognising the newer VRChat protocols.
Does anyone else have this component VRC_OscButtonIn working?
It's broken at the moment
Is it normal for any of these actions to take a long time when building? I've been building for the past while and was wondering if I had messed something up.
-culling
-changing the lighting type on point lights
-changing objects to static objects
Currently stuck on light transport in the build player
I think you can choose to bake your lighting manually instead, if you uncheck Auto Generate in the various tabs of the Lighting window
Will i have to bake again for each build if i don't?
I don't mind the auto bake, but if manually baking means i don't have to bake again i think it would be worth it
i guess that's kind of a silly thing to say since if i add objects to the scene of course it's going to have to rebake
i've been baking since 7 XD
If you don't auto, you can choose when to bake
If you're changing lights around and want them to actually work you'll need to bake. No way around that
that makes sense
i guess for whenever i want to launch something quick to test though i can always bypass baking
by unchecking auto generate
Is there a place where I can learn how to bake lights manually? I seen manuals that talk about it, but they don't have screenshots of where manual baking lives
I want to say it has to be somewhere in windows>lighting, but I haven't found anything in there yet
Basically you set all your lights to "Baked" instead of "Realtime", then go to Window->Lighting, turn off auto generate, and hit "Generate Lighting"
You also need to mark all non-moving objects in your world as "static" in the top right of the inspector
Ahh perfect. I've done just about everything aside from unchecking Auto and hitting generate lighting.
Thanks @lean lodge
Once you hit that button you'll see a blue progress bar in the bottom right
And once that's done, your scene should be baked and you can find your lightmap textures in a folder next to your scene file
But you probably won't have to touch them
How bad is reflection probes on performance?
Okay, thank you!
will baked lighting affect avatars that enter the world?
Have some lower res hybrid light sources to help light non static objects, such as avatars.
Use light probes to light up non static objects, like avatars. That is the recommended optimization option.
@oak flume Baked lights will set a base overall lighting area for everything that is lightmap static, this does not include avatars.
In order to bridge that gap, just use Light probes like @spring kite specified.
Additionally, if you want to have much better bounces with even further optimization invest in reflection probes
Thanks, i'll look into it ๐
Hello
I made a minecraft world in Blender and wanted to know how to transfer it to unity.
when I do that it goes "not responding" (also thanks for replying)
I guess it's just for the minecraft scene. Some my blender files worked.
@thick musk Okay! So this process is actually rather simple to be performed. You must do the following:
-
Export different parts of the world as separate objects (Basically break things up like "Tree" "House" "Mountain1" etc. Also, make sure you divide up the files around equally, as this will save you plenty of time in transferring them to unity, and will also give you plenty of room to manipulate and move objects around if need be.
-
Import the separate Fbx's into unity, dragging them onto the hierarchy, then basically just put them in the correct spots once again!
Hopefully this helps.
Also, just incase you aren't aware. The way we export objects separately rather than as a whole is by doing the following:
- Select the Mesh/object you wish to export, and go to the export menu as you normally would. Now, before you complete the export you will see on the bottom left that theres a small menu with options to choose from. The only aspect you need to worry about in this situation is the checkbox labeled "Selected Objects" Make sure it is ticked, that way we're only exporting the objects that we currently want to take into unity, rather than literally everything at once.
Noted on this one, Thanks! @lilac saddle
@thick musk press window>console to see the process of exporting, 1m polys is not quick to export/or you has not enough ram, most blender' inner addons have a habit to "dying" when not enough ram, so yes separation/etc will help you
@icy ferry Thanks!
what shoud i do ? nothing is working
Contact support@vrchat.com or try in the #user-support-old channel
This is the wrong channel
Sometimes I wonder why I will change 2 things and one moment the file size will be HUGE then the next it will be normal again .-. I am bouncing back and forth between 240MBs and 168MBs. So strange. Editor log doesn'e help a ton
Have you guys encountered this: Assertion failed: Assertion failed on expression: 'j - i == terrainChunksInfo.numChunksInX * terrainChunksInfo.numChunksInY' I just keep on falling down my world.
The terrain and other stuffs disappeared
@thick musk you have two scenes loaded which isn't gonna work. Put it all in one scene.
Additionally, use a box collider for the floor
@lean lodge Got it working, thanks! ๐
How to control the post pruocessing vรญa ui?
Answered in #world-development
sooo i uploaded my first world and noticed for vr users its rly laggy.. what reasons could that have and what could i change to prevent it from lagging ?
What kind of special things are in your world? How big is it? How many objects / what kind of music does it play, etc.
uhm my world is 70 on 60
only special things are a mirror that u can toggle and a vid screen with bout 5 songs that u can toggle as well . even with toggling its laggy tho
for objects id say around 30-50
If anyone has some time, im having some issues in a world im making, its like 300mb and i have a few mesh issues. If someone could help me reduce the mb from things like textures/songs, and if someone can really take like 30min and walk me through making things with baked lights or whatever is better than real time.
Please dm me if you dont mind helping Dx
How are the songs played? What happens to the world if you test it out without the vid screen and songs?
what u mean how the songs are played? sry for stupid questions just new to it :S
It can be hard to tell how to help with just saying there is a problem. Including images of how things are set up will help. We might notice something you could have overlooked.
@hasty marlin i cant help you through the whole process but if you click on the files in the assets window there are options in the inspector window to compress the files to reduce the file size. Textures and audio usually take up a-lot of room so compressing those will help.
awesome, thank you!
If you open the CONSOLE tab go ALL the way to the top right of it, and click the button that is a down arrow and 3 lines, click OPEN EDITOR LOG and scroll down to the bottom, you can find (somewhere, the ones on the bottom are your latest builds) it will break down for you exactly what is taking up space, how much space it is and give you a run down of each item IE meshes, Textures, Audio Etc and finally a final size before and after compression.
@hasty marlin
hi... I am currently making my own world and I am having troubles adding a day/night cycle to it. I already made one that when I play it in unity it works perfectly fine, however on vrchat the cycle doesn't want to play/activate. if anyone can help me please maybe DM me to give me the help if possible. I'm kinda retarded when it comes to some of this stuff so a DM will help out a lot so that i can better understand.
@safe karma
If you are trying to use a script, then it's not going to work, you will have to use the animator/animation from unity.
@lilac saddle
So thats my problem... so can you do the animation with the script still on the object? I've worked on the script alone for about a hour and a half.
no you have to make an animation loop for the directional light(s) to rotate around the world sadly, unless it's a whitelisted script from vrchat
@spartan.allen#3178
I need help with placing two working audio sources in my world using the a VRC_Sync Video Player. I want my world to play a playlist on loop but in two different locations. Is that possible using a URL? I don't know much about video players. https://gyazo.com/b5d164bd6fa9e36c6a0231dadb56a033
Yes and no. The video players audio tracks are for separate audio tracks in the video file. For videos loaded from youtube its only going to use the first audio track but not any more. The video stream allows for multiple audio sources to be connected to it.
I got a question for people who know how to create a URL tabs for a "VRC_Sync_Video_Player" ! ๐
@lilac quest what is it?
Whats the best way optimization wise to add tree's? Unity terrain tree's or do static mesh tree's with lod?
Both are same technically i guess but unity does fancy stuff
You can make a simple model of a tree with a low polygon count (like 1000) and just paste it around the world, try to make this model have one matrtial and one texture.
What Iโm gonna probably do. And Iโm going to make my whole word use a texture atlas so there isnโt multiple textures.
The unity trees wonโt work since the billboard issue still exists for some reason
Might not in the newest unity havenโt done any be stuff on that but canโt use newest for vrchat anyway
can anyone tell me why a spotlight would disappear when it gets baked?
Explain what you mean by disappear. It will not shine on objects like avatars which were not baked. you set up lighting probes so that other objects can receive light from the baked lights
Seems to be realtime and not baked
ya .... right now .. i know that
Lights disappear if you have too many realtime lights. Please make sure all the lights are set to baked, make sure you have lighting probes set up and you have baked them
when it bakes it doesnt shine at all
Do you need to make sure objects are marked as static to bake properly?
theyre marked static
might have to many lights... but i literally need all the lights i have right now
You can't have too many lights if they are all marked baked and you bake them
Select your meshes and make sure you checked "Generate Lightmap UVs"
well i had them all set to bake... and when they were done baking they dont even show up anymore
could someone please help me?
I made a vrc world, everything seems to work fine but when i click on the upload button nothing happens...
Make sure theres a main camera
i have an updated vrcsdk but i have not updated unity
I have no idea why but without it it wont let me upload
wym?
The scene needs a camera
i did notice the camera was acting weird, the display scene was always white no matter what i did
ye theres a main camera
OH if you have one then it could be something else. Thats may hvae not been the only issue i had then.
I got around it by making a new project
I basically started from scratch. But with you looks like youve done quite a bit so thats gonna be hard.
yeee T-T
once my unity opens ill screen shot. For some reason the unity for vrchat hates keeping things in one place and needs a reimport every day
No problem and only thing i can see diffrenct is the vrcworld for you is vrcworld(1)
OYu just had multiple at some point and shouldnt cause a issue since you only hvae one now
what could be the problem then T-T
Did you add any compontets to any of the objects on your scene
what does that mean XD?
im new to making worlds so maybe
did you use that button
yup yup
It could be something with that dpending on what it was.
Not really sure tbh I just know things that i think may have caused it for me and that was componets and cameras. but make sure playermods componet is on vrcworld
That ones always there
wym playermods components?
But with how it looks nothing should be wrong and its probably vrcsdk or unity bugged
i have a mesh collider on base but i think thats about all i really aded
What does the upload ui look like
Mesh colider shouldnt cause anything i wouldnt think
Like when you click build and in the scene it changed to where you name the world etc
Cause my sdk looks co,pletley diffrent before i made a new project. Which honestly could be a sdk issue that causes this
Yeahh thats way mine looked before i restarted now it has a green communiy labs bar at the bottom with the logo
Probably the only way to get it to upload that i know of
it has to be a new scene?
Completely new project yeah
you could make you scnee a prefab
and then just drag and drop and do all the mirrors and such
ight lemme see
Nicee. So its something with the sdk updating i guess
Same thing happened to me when i first made my world, it wouldn't upload so i added everything bit by bit into another scene by process of elimination. But it ended up working with everything the exact same lol
@dawn vale doesn't look like you have a spawn point?
I can't really see because the 'spawns' droplist isn't down. But usually that droplist should be down if you've added a spawn point.
Vrcworld is the spawn point though. But they issue they had was the sdk wouldnโt update and therefor had a different/older version which for some reason wouldnโt allow for upload no matter what they did
Anybody know what would be causing shadows to flicker when moving around in a world I'm working on? It only pops up in certain spots mostly inclines. I tried changing the near plane settings but that didnt help.
It uploaded and everything works! Thank uu
Having some trouble with some buttons that's all
Ill text in here if I need any more help you are all so helpful uwu
saw this video on reddit hope it helps it was pretty interesting.
https://www.youtube.com/watch?v=w0n4fuC4fNU&list=LLvoJrjqJWBQSOV-3EtOPRZg&index=2&t=29s
Join our community on PATREON! https://www.patreon.com/user?u=711561 And follow me on social media (: โณ Twitter: http://twitter.com/_lucasrizzotto โณ Facebook...
When baking light, is there a way to do the bake in parts?
I don't think so. But you can cancel the bake process and it will resume when you hit generate again. Just make sure to have auto generate off.
@misty olive What exactly do you mean by "bake in parts"
Because depending on what you mean, then yes you can
I have a few point lights that I use in my world for lighting. When I set them to bake I get 1K jobs which I get the feeling will take a week to do
Sounds like you have bad baking settings
bakery asset can bake in parts but that cost a bit of money
If you send a picture of the scene you're baking lighting for, I might be able to give you optimized settings for it
Now that I think of it, I'm using the default settings and not what jetdog recommended
Will come back with new settings
Aight
Baking lighting at most should take no longer than 15 minutes
Unless you're baking over an extremely large scene with multiple lighting setups (an open world scenario, for example. But Im not sure why you'd have such intricate lighting for such a scene.)
Baking lights can definitely take more than 15 minutes.
It depends on the complexity of your scene and how well you have everything set up.
As well as how large your scene is in surface area, and whether you're using Enlighten or Bakery.
And if you have done any bakes before.
Enlighten caches a lot of stuff so you can rebake without too much time lost.
My friend once had to leave his pc on overnight and the world still wasnโt done baking when he woke up, like 12 hours of baking I think he said
Rip his pc
Oof. That's generally a sign of either a large world or an incorrectly setup one
Or a slow PC
Naw just a big world
Light baking can be severely slowed down by having meshes that are huge, too many individual meshes or
Ah
Lighting settings can increase bake times considerably. Don't use Final Gather, takes too long. Ambient Occlusion not needed if light range and Intensity is set up correctly. Indirect resolution set to 0.25, Lightmap resolution set to 40 (10 for quick bake)
Lightmap parameter set to "default medium" or lower.
Not a good idea to set lightmap static on big planes, the kind you would use for the background.
Decreasing 'scale in lightmap' on the mesh renderer can also speed things up.
Final Gather looks good though
I recommend using it once you have everything else set up and are basically doing a final bake
Also, having the lightmap resolution at 40 but the indirect resolution so low seems counter-productive.
I sometimes increase it to 1, anything past that and it'll be there all night baking. Can't say i've seen much benefit from Final Gather.
If i am using bakery, how would I approach baking multiple floors? I have a dungeon generator that makes a randomized dungeon floor. Do i just bake one floor, hide it, generate the 2nd floor, and bake it again?
@foggy thistle That won't work for what you're trying to do sadly
it needs to be static entirely
So i have to bake all 5-6 floors at once?
I was hope to bake in pieces
Nf4 try baking something smaller to get a hang of it, also the bakery asset works great but cost money
And ruuubick, i was hoping to bake the floor and then save the prefab, i guess that would not work
Thanks, then I just have to bake overnight lol
@foggy thistle you could also look into baking the light map into the prefab
How do I carry the lightmap over to the prefab?
The end goal is to bake my floors separately, since it takes 20min to bake one
but not certain if it would work in VRchat ?? could need testing .... look fort the prefabbake script in bakery ,, i haven't used my self but they have documentation on in in manual
Just looking to bake the world in pieces than all at once
If its more complicated than I just let it run for 4 hours
no for that use lightmap group script
yes its not too hard to set up just needs a bit of planning to think out what will be in what group
Kk
ya should not be hard bake a light map for each floor and use animation to turn on and off so you don't kill the FPS , if you use prefAB baked lightmap not creation if it will work in VRchat as the shader needs to read that from runtime, perhaps it may work should be tested
It took me like 45 minutes to bake flatgrass, while playing vrc in vr, on an i7 2600k
It should be a requirement to not have a real-time light in ANY world. They always kill my frame rate.
@lean lodge IIRC, "Indirect resolution" is a misnomer - it controls the resolution for Realtime GI only
So you can get away with setting it very low - in fact, if you're not making a theatre or world with dynamic time of day/switch lights, you should just turn off Realtime GI completely.
It does work with baked lighting, i've seen it increase the strength of emissive light.
Soo... My world size says its 110 MB, but there is nothing inside of it... At all. Help? https://i.gyazo.com/cce00c53a0e69fce150c15008125e743.jpg
Go to your scene descriptor and set dynamic materials size to 0 to clear them
Other place could be skybox
Click the tiny menu icon on the top right side of console and click Editor.log. Then search your Editor log for bundle and there should be one line that has like a table breakdown of your world size in MB
It adds any material you ever had in your scene to the vrc scene descriptor
HOLY!
That right there might be a problem. Clear those suckers
So... what's its purpose? And what puts them in there?
If i remove them from other maps, does it cause issues?
Sorry, I don't know enough to answer those questions. I've never had trouble so I have no idea why that list even exists. Anyone know?
My worlds are pretty big, and I never kenw about clearing this x.x
Me neither. Not even sure what it's for.
Looks like I need to look into finding that and make sure I donโt have any. World size went from like 15mb to 50 on last test
Dynamic Materials is included as a way to reference/change materials that don't have a hard reference
Because any materials that are not explicitly referenced in your scene, directly or indirectly might not be included on upload
Makes sense for dynamic prefabs but I don't know what the use case for dynamic materials would be
probably for either animations or the change material trigger
Anybody knows of Post processing v2 works in single pass?
everything works in single pass stereo (vr) except motion blur and some stuff should be avoided
Nice! Thanks !
Also by default Unity uses Forward rendering with 2x MSAA . Could this be used in combination with ppv2 SMAA?
I wouldn't use any antialiasing or blurring at all, people have their own setting for their headsets
it only makes things worse for vr users, like vaseline on the lenses
U mean for both ppv2 and and unityโs MSAA?
leave the unity default and don't add extra pps antialiasing
you can use them both fine, but it's bad in vr ๐
Thanks !
check silent's great post processing guide: https://gitlab.com/s-ilent/SCSS/wikis/Other/Post-Processing
oh i just spotted this Anti-aliasing: This has lots of bugs. SMAA will cause the screen to double up.
I guess SMAA doesn't work in single pass properly still
Ohh glad i didnt add that
is occlusion culling correct working for all vr players?
@oblique nova vrchat uses 8x MSAA by default. You don't need any more AA
@stark bay generally - yeah
@sick raven does that mean that I have to disable the MSAA even in the Quality Settings of my world project?
nope. you can't affect the VRChat settings for your world anyhow. It's just 8x on VRHigh and 4x on VRLow
I see alright thanks dude
I think you should set your quality settings in Unity to the highest ones, as those are closest to what VRC uses
the vrchat quality settings are pinned in #development-advanced
is there a max nomber of lights i can put in my world or something? i've got about 10 light objects in my scene and it's having some failed upload issues.
No, if you have them set to baked
You need a really good reason to have lighting not set to baked
i'm super new to unity, just taught myself this week. thanks for letting me know about that. lol
And you actually make sure to set up light probes and bake
Yep ๐ baked lighting will look way better too
baking the lighting may effect the fact that i want to be able to turn these lights on and off though, right?
You want to be able to toggle each light independently? Or all together?
each light independantly, but i can make some work arounds if that's not optimal.
at minimum i can just have about 2 or 3 total lighting toggles.
That might be an ok place to use realtime if you are considerate. There are ways to bake realtime GI and in theory you could bake lightmaps for on and off and swap them but I don't think vrchat gives us a way to do that
The issue for lights are the number of lights hitting a particular spot at a time
So if each room has one realtime light and they mostly don't overlap, it might be ok performance wise, though still worse than no realtime lights
hmm.. that's no good.
What's failing on the upload? That's probably a different issue
unity crashed when trying, but i deleted a few lights and now it's functional
i'm just gonna have to find a way to get those lights back nicely. i havent even gotten the LEDs i want in yet :p
thanks for the tip
The rule is you do not want more than one or two important realtime lights hitting a particular spot at a time.
Oh wait I forgot! You can use non important lights
non important.. as in set the render settings to that?
Unity supports up to 4 non important lights (they won't be per pixel)
The really bad lag is caused by realtime per pixel lighting as each light renders another copy of all avatars and object it hits.
You need to rethink a bit what you are trying to do. For example small LEDs should be using emission in the shader
well it is for sure that i wont have more than 2 realtime lights going at the same time.
And you then create overall halo or glow around it with a single light maybe, and make use of cookie textures to make it look as though it came from multiple individual leds
yeah, chances are i'm using emmission for the small LEDs.
what are the cookie textures?
๐
ah.. like projected textures. thanks.
Some triggers may need to be remade since a few were updated and possibly changed a little
Could just be a unity bug. I noticed yesterday that my scene that used to stay around 150-250fps was stuck around 71-90 bouncing back and forth
Or a bug with the new sdk
Try uploading and trying in vrchat and see if if itโs normal
Its probably a sdk thing then it might gto back to 91 in game
There's no hard limit on texture count, but avoid having too many materials. @lilac saddle
Materials?
Whats your file size?
Yes, occlusion areas and occlusion culling.
Build it locally and look at the editor log.
You don't necessarily need occlusion areas
Anyway, you should look at the editor log to find out how large the map actually is, and which files take up the most space
Keep the map under 200MBs and above 45FPS. Also keep your draw calls under like 500 or 600 max. Way less than that if possible.
That's just a general guideline. Even 500 drawcalls is a lot
Unity profiler
As well as the game window info screen
If you wanna optimize your map, set up occlusion culling, avoid realtime lights (set them all to baked) then bake your lights, and
Well that covers a lot already
If it's realtime you should bake it
Game > stats or in the profiler.
The 'SetPass calls' is the closest thing to a draw call
Ah
Other than that, mark every non-moving object as Static in the top right of the inspector.
The default directional light is realtime, by the way. You should turn off shadows on it or bake the lights.
Baked looks nicer and performs better
Realtime/Mixed can be used if done right and used sparingly.
Or at the very least mark it as static lighting and Static batching unless you are using GPU instancing.
GPU Instancing is generally almost always worse than static batching
It's mostly useful for dynamic objects with the same material and same shader
In some cases you have to use it though.
Yeah
Since his map is going to be moving, I guess
or spinning
he will have to rely on that more than batching
as batching doesn't allow for a moving object at all.
oh.
Then use batching
Only 117 setpass calls? That's pretty good
Is that while playing or paused?
You can improve that further by setting up occlusion culling (you can just bake it and test)
I need to get a faster GPU >.> I hate that baking takes like 20-30 minutes for larger maps.
What is your FPS>?
in VRC?
Oh
One day soon we will be able to run games like this at 1100 FPS lol
How not soon? There are already computers out there that can crush a game like this at 1100 FPS or more. Just not affordable for the masses yet - but prices go down very quickly.
I don't mean in the next year or two, i mean 3-6 years.
I need a 2080 lol
In Window > lighting
If you don't have the add on 'Bakery' you will use your CPU and not your GPU, which for large complex maps could take upwards of 2-9 hours. Small maps an hour or less.
My bird world use to take 4 hours to bake it's lighting.
kinda big map. yeah.
How many light sources?
And you are using a custom shader on your terrain?
I would, otherwise it may look dark (especially any painted details) in VRChat. couldn't hurt. Use the terrain > Standard I think it's called.
In terrain settings.
Is it not a stock unity terain?
If not you're probably fine. Word of the wise, though. I wouldn't bake your lighting until you're ready to step away from working on it for a little while.
Yes
Still own it
Wow.
Shh. We can't about ripping assets from another game in the VRChat discord
lol
There is a go kart asset pinned in the.. #world-development ..? chat of a working car in VRChat.
Oh. Not sure, never tried it.
What is
I told you, it can take hours;.
Yes, by default it bakes automatically. I would turn that off.
Window > lighting > lighting settings
Yeah.
You need a collider on the map if you don't want to fall through, and you also need to spawn up high enough that it won't put you under the colliders.
Box colliders and other primitives such as sphere and capsule work well, but mesh colliders can also be used (mesh colliders should be very low poly)
Well, you will have to set up collision somehow. You can tick "generate colliders" in assets or just add a mesh collider component to every mesh. This will result in mesh colliders being used for all your geometry, and unless your world is super low poly this is not recommended
I don't recommend mesh colliders for geometry anyway as you may get randomly stuck for example
If you add a box collider component to an object, the box will automatically try to expand to fill the object. If your object has a fairly simple shape this should work well.
My whole world is box colliders except for the roofs
If they're marked Convex, unmark it
But I do suggest using primitive colliders like boxes for performance reasons, or making low poly mesh colliders yourself
And for "getting stuck" reasons
Im trying to update my worlds cover photo and when I switch to the camera it has what appears to be a foggy look on it like you put a filter over, I cant get it to go away no matter what settings I use and its really bothering me
does anyone know how to fix?
yeah I'll show how the old image looks and the new issue looks in a second
old
new
i've toyed with everything I can think of
I havent updated it since I dont want to push a weird issue to my public build
I tried doing that, the filter persists everywhere on the VRCCam
I have the same issue ever since Unity 2017
It looks fine on the website and ingame
Only the preview in there is fucked but it's still a problem
It seems to get more and more white every time I upload it
dear god
it is version 104 lol
Guess i'll hope for the best
at least were not on 5.6.3p1 anymore
Hopefully they will switch to 2018lts in a few weeks
I have the same issue with it, it doesn't make a difference. I think its an issue with the GUI not the camera.
Sometimes the camera doesn't even show.
But on the site it looks fine.
@fallen delta you need an add on called Bakery
Yeah :/ Not cheap.. but it makes baking light go from 1-6 hours to like 10-20 minutes.. and the lighting can look better too as it uses Nvidia's AI to fix lighting artifacts..
And I find the file size is much smaller for the lighting.
Adjust the VRCCam clipping planes to extreme values solved that problem for me @steel sail @soft crag
Oh, cool. I'll try that. Thanks!
When world optimizing, any way in Unity to select all materials and apply GPU Instancing to all that are supported at once? Seems the instancing check box disappears on certain materials that have the check box in a different location in inspector or if the material doesn't support it when selecting multiple materials at once. Any help would be appreciated. Manually going through 120 or more materials is tedious.
Especially if your heading into optimizing 5 worlds (;
@midnight vine set the inspector to debug mode in the top right
Then you can tick "Enable Instancing Variants" on as many different materials as you want, even if they use different shaders/inspectors.
Awesome! Thank you c:
has anyone an idea, how big unity worlds affect performance?
Depends on lighting, how many polygons are in the models etc.
Also how open the world is
if its a large closed space, like a maze or a forest where lots of objects can block you from seeing the whole map - you can have a pretty big map, assuming it's under about 200MBs with great performance. If its a big open world where you can see across the whole map, performance will suffer regardless of optimization.
Well that depends because if you can see the whole map but you cull objects after a certain distance it will be the same As objects blocking the render of another but it will look really bad
But really how big the map is doesnโt matter itโs how many objects and draw calls
Hi guys, does anyone know what layers the vrchat players are on? I assume Player right?
@simple torrent The local player (you) is MirrorReflection(for visual in mirror/camera) and PlayerLocal (for personal collider) All other players you see (not you) are Player
@teal mirage Very likely that your world is very far away from x0, y0, z0
Does distance or object size have any impact on file size or other optimizations? I'm figuring out my options for having an animated planet in the background
as long as the poly count dosent change no it shouldnt impact. distance can depending on how many objects are rendered. normally why lods are used and culling etc to hide things at a certain distance.
can i use LOD Groups to hide a mesh when out of range?
@soft crag the pic you posted, how did you get that background?
Is it a moded SDK
๐
Click to see the message you posted -> https://discordapp.com/channels/189511567539306508/415412644682661908/568135727645458434
getting split views when testing world. no shaders that would this.
the post processing stack is working. would a setting there or on the reference camera itself cause this?
Means your using some effect from the stack thats not compatible with VR, this includes antialiasing
If you still get that even with no effects active, remove and reimport the stack from project
@lilac saddle you mean the clouds?
Because thats just my skybox
literally a fresh installed SDK just to update the world with
It uses your skyboxes as the background
If you have 200 different animation states that each have an any state leading to them, is that worse / laggier from a runtime perspective than if you were to have a hierarchy-- say from A to B if greater than X but less than Y
are all the primitive colliders the same towards performance?
For example, capsule vs box?
From what I remember hearing, the primitives are all about the same in performance for calculations. Specifically, capsules were the same or maybe a bit faster than boxes
Slightly faster with sphere being fastest.
How are capsules implemented anyway? Spheres are just distance checks, boxes are a bunch of comparisons with 4 values(?)
But I'm not sure how capsules work
It uses vectors and raycasts apparently.
yo, i made a game for vrchat and added post processing stack, added the post processed camera to my VRCWorld reference camera and now when i go test my world i see black but hear sounds. Please help Im desperate
@lean lodge capsules are a raycast distance check, just like spheres and boxes, and it's a little faster than boxes
how make move cube with pitch sound
Animator?
or do it like me, wriite editor scripts for generating an animatorcontroller
way easier if you do it on big maps
Can Anyone be willing to give me optimization Tips on Clubs? Cause i have a 150mb world which is still in progress needing Optimization after placing alot of stuff in it... I have like Plants, Video Player, Booths, Stage, Lighting (animated), Mirrors, bars... What can be optimized?
Use some kind of mesh combiner and make sure things that arenโt gonna move are static
This could help with ideas on world optimization
https://www.youtube.com/watch?v=w0n4fuC4fNU&list=LLvoJrjqJWBQSOV-3EtOPRZg&index=2&t=29s
Join our community on PATREON! https://www.patreon.com/user?u=711561 And follow me on social media (: โณ Twitter: http://twitter.com/_lucasrizzotto โณ Facebook...
any tutorials on how to make optimize mirrors
Tick "disable pixel lights", set the anti-aliasing level to 1, and only reflect the Player and MirrorReflection layers. You could also reflect the environment by adding the Default layer on top of that, which is what I prefer to do
The most important thing is to turn all those other layers off (unless you need one for a particular reason), because stuff like nameplates adds a lot of drawcalls while not adding value to the mirror.
@obtuse grotto Yes actually, because they're all rendering as seperate entities, rather than a single entity
This is why alot of creators of worlds will export a copy of their world, throw it in blender, and then export that as the final map
because rather than needing to know say 50 objects and their locations, it only requires like 2
So question, I'm trying to do occlusion. Now, this is fine. But how do I also make it occlude by distance? I've got several areas in my map, and they occlude fine when the camera isn't looking at them, but look in their direction and they render even when they are far away. So there will be lag, because not only are you viewing that room, but everything beyond it too.
How do I fix that so stuff in the distance is culled too?
thank you soo much!!! @lean lodge
Will the performance be better if I add a toggle button for a lot of chairs in a world? Must be around 90 stations in total...
Im not sure that those affect performance at all
A toggle for chairs is always welcome though
Another question maybe? What causes a delay after loading so people are stuck in a black screen for a few seconds? The bazillion of textures and models or the vido_sync panel or all the interactive stuff? Once the black screen goes away everything works fine and with 90fps...
Is unity decrunching all textures when the map is loaded or when you see them for the first time? If everything is decrunched after loading in I think I know what causes this delay?
Dunno. Maybe
I think I intuition was right... "Textures compressed with Crunch are first decompressed to DXT and then uploaded to the GPU at runtime."
There are hundreds of them. Guess I have to atlas more of them then... ๐ฉ
Saved me at least 100Mb download size, so - YES not only you....
A shame you can not compress lightmaps without massive quality loss. But the directional map can be compressed and went down to 5.something from over 20Mb.
also reflection probes. I did not see any difference but in size...
Compressing reflection probes is rarely worth it
Cubemaps don't crunch well, they become bigger at 100 quality
from 8 down to 5 is to be honest questionable but if you have a lot it may be worth it...
reducing the resolution is the better solution for reflection probes I guess.
so how can I make parts of the level that are far away get occluded by distance? Ive seen maps do this before, how does this work?
I tried using lod, but it did jack all
change the Far clipping range on your reference camera
ahhh, it was that simple... thank you
Oh shit, if GPU instancing is broken with different light probes I need to fix my pedestals
Does static batching work on meshes that are disabled by default?
Best to check yourself by using frame debugger while in play mode
quick question: should I create / set "Static Lightmap" on meshes that use the basic unity "Unlit/Texture" shader? they shouldn't receive lighting anyway, no?
@calm dirge You don't need to mark it as lightmap static because as you said, it doesn't receive any lighting anyway
thx
You do need if you you want those to cast shadows. In that case set lightmap scale parameter on them to 0 so they don't take up lightmap space
no, I'm just wondering if it would improve performance, or make no difference
I don't think unlit shaders can actually cast shadows?
They can
Mobile has an Unlit Texture variant that supports lightmaps
The default "Unlit" shader that is created does not have a shadowcaster nor a fallback, but nothing is stopping you from adding one
that would make sense
so I guess it makes no difference in performance cause it doesn't have light calculations in the first place?
Alright, apparently Mobile/Unlit doesn't have shadowcasters either
For unlit meshes, I recommend turning everything off.
No lightmap static, no light probes, no cast/receive shadows
reflection probes too?
you'd want static batching at least
Yeah
static batching?
The static checkbox in the top right, batching static
Unity will combine meshes for you if used
uhm... is the lightmap supposed to look like a uniform rainbow over my meshes when look at through the "Baked Lightmap" view? cause mine looks very fragmented
also it looks weird in normal scene view
If you did not make the lightmap UV's yourself, you have to tick "Generate Lightmap UV's" on the mesh in assets
ah... that explains things...
I'm quite new to the lightmapping thing...
also... what's the difference between progressive and enlighten besides the fact that progressive seems to work 10 times faster for me
Progressive is in preview/beta
Enlighten is generally better in this version and I think progressive doesn't support realtime GI or mixed light shadows
If you want a good lightmapper that isn't Synergy you could shell out for Bakery
But that may be too much to ask for just a hobby project tbh
I mean... I'm trying to make my first world. for now just home world but I want to try to make my worlds as efficient as possible right from the start, should I decide to make things public
For Mirror optimization, how do I make sure it doesn't kill frames and keeps most things or what you believe what should be kept
it's not a bad idea to have multiple mirror options, such as having one that only reflects the local player (MirrorReflection), all players, and then the heaviest performance is reflecting the entire world
I don't think you ever want to reflect everything
@warped crow start by only reflecting MirrorReflection and Player layers, and also tick "Disable Pixel Lights" if it isn't already ticked
These layers will make the mirror only reflect players
Then you can add the Default layer on top to reflect the world geometry
That's the three layers I pretty much always use. No need for UI stuff, it's only annoying and laggy.
@calm dirge progressive is generally better in my experience, enlighten works very quickly, but when the lightmap is compressed you end up with a lot of artifacts
Progressive lacks some features
No mixed light shadows and I think no realtime GI either(?)
is this the right place to ask for help?
I am having issues with lighting artifacts and materials not displaying correctly
question. i have a world that needs a sort of "on_player_respawn" trigger. is this possible? can i trigger things to happen when the player hits the respwn button in his menue? and how do i do this? im trying to optimize my world. it has teleports in it. i cant turn the spawn area off with any of the teleports, because if i did, if a player were to hit respawn, he would fall to infinity and have to alt+f4. if i could trigger the spawn on and every teleport location off locally on respawn, then only one area would be loaded for the user, saving precious computing resources and thwarting a bit of lag.
i can already toggle things on and off with a button. i just need to know if its possible to do/how to do it when a player hits their respawn button.
Two things:
You could move the respawn point when you turn off the previous.
You could put a small trigger collider at your spawn point to ensure that spawn is enabled.
We don't have a "OnPlayerRespawn" action, so you have to handle it manually. (They never responded to my feature request for it)
Also, be very careful when dealing with trigger occlusion. Broadcasts will fail when someone else has it disabled (making it difficult to sync), animators will reset on enable, and pickups will fall if the owner leaves the area.
i have no animators, or pickups. just buttons that trigger areas on and off and teleport you.
luckily only 2 areas can be loaded at once locally for each player
with the way i set up the rest of the tpp buttons to trigger off the other areas locally too, that is.
there really should add an OnPlayerRespawn trigger. seems like a pretty big missing feature. although i could see people abusing it.
It is super easy to abuse people in worlds as it is. This wouldn't provide anything new.
true
if they want their damn optimization they need to allow noobs like me to make optimizations lmao
upvoted
Trigger occlusion works, for now, but I suppose you shouldn't rely on it too much. At least look into occlusion culling too
what if i have a player fall through a box with no colliders when they spawn? could i make a trigger happen when they fall through it? or would i have to make an invisible platform inperseptively close to the ground at spawn, so that when they land on it, it triggers with colliders?
You could put a small trigger collider at your spawn point to ensure that spawn is enabled.
You can put a small box where your spawn point is, make it trigger collider, and add OnEnterTrigger to do whatever you need to enable the spawn area
The other option would also be to never turn off the colliders around the spawn point but only the meshes.
o so i made a transparent landing cube under the spawn, so that you land on it. added event trigger to the cube. onentercollider>local, and setgameobjectactive>true&false. set the workds i wanted to trigger off to false. set spawn to true.
when i load one of those areas and hit respawn, i land on the invisible cube, but it dosent do anything. dosent trigger that other area off like it should.
Make it a trigger collider and set it to OnEnterTrigger instead.
i enabled "is trigger" already for the cube
ill try changing it to on enter trigger
when i land on this invisable cube, i want it to triger the spawn on and every other area off locally for each individual player.
now i get to wait another 20 minutes to build/compress lul
and if this works i get to update again to change all 7 tp buttons at spawn to turn the pawn area (not the landing cube) off
so that when they respawn they land on the cube and the spawn loads
if im understanding this right. im drunk. lol
nope, didnt work
๐ฆ
fuckit
fix your shit vrchat, so i can actually optimize my fucking world like you fucking want.
insert middle finger here
it seems the collider trigger no workey.