【Optimizers】- Easy to use and functional components to optimize any other components!

I updated package lately with small fixes, check new version. If it’s still problematic in your case, write to me pm with console log, I will put it on my priority list then.

Does this asset create LOD of meshes from lets say 10k polygons to 5k or its only for disabling components?

Disabling the component in the editor, even without playmode still applies culling. Also, I would like objects to not be completely disabled for having some scripts running. Do I have to make my own LOD system?

It’s operating on different components, not creating LODs for meshes :wink:
I added note in asset description on the asset store, sorry if you didn’t notice that:
"Don’t get it wrong! Package is not generating lower LOD levels for meshes or so, it’s changing parameters of components/disabling/enabling to give more optimization"
[quote=“manurocker95, post:23, topic: 774151, username:manurocker95”]
Disabling the component in the editor, even without playmode still applies culling.
[/quote]

I was surprised by this, but I checked it on unity 5.6.0, 2017.4 and 2019.3 and component is disabled properly after entering playmode, but disabling during playmode not stops it indeed, I can send you quick fix for that in pm if you need :wink: I wasn’t excepting someone will need to stop optimization component, when it’s working already.

[quote=“manurocker95, post:23, topic: 774151, username:manurocker95”]
Also, I would like objects to not be completely disabled for having some scripts running. Do I have to make my own LOD system?
[/quote]

I’m not sure if I fully understand, because you can freely define which scripts should be disabled in which LOD level or choose to deactivate or not deactivate whole gameObject in last LOD level.
If you mean deactivating scripts when target is out of camera view, open “Hidden” LOD, untoggle “Same as culling” then customize LOD settings when camera looking away from target object.
If you don’t want to change anything when camera is looking away and work only on distance ranges, you can untoggle “Cull if not see”

Could you give some more tutorials that are in depth on the different options for each optimizer?
I am an artist and don’t fully understand the manual as to the functions or exactly how to set it all up. I’ve read the manual several times and watched the videos. Maybe you could do a detailed video? :slight_smile:
Right now all I can do is the basic culling setup. Adding components and the different options are a bit confusing to me.
Sorry I’m not well versed at scripting. But I could understand it better with an in depth tutorial. :slight_smile:

1 Like

Great you mentioned it, then I will work on that :wink: I will try to finish it for next week.
Quick tip: if you know/was working on parameters of component you want to optimize (light/particle system) then you have it’s parameters (ones responsible for performance) inside optimizer window (sometimes names can be different because Unity Editor draw them different inside inspector window, for example in light render mode, “Not Important” = “Force Vertex”, “Important” = “Force Pixel”)

2 Likes

Thanks
Looking forward to it!:slight_smile:

hello, maybe you can do a video for “advance” feature, because i really don’t understand the process of creating custom CS script to manage custom script. The renaming, removing line etc. do a simple exemple

you should also mention that terrain optimizer is ONLY for multiple terrain setup and that it doesn’t give any terrain optimization for single terrain scene (which is probably most popular case)

And i have to make the optimizers even work. It return LOTS of console error on many type of object without any valuable information. Many of them complain about particlerenderer component is null (even when component to optimized does not contain any particle system script).

so far, 0 star and 0 gain

I could do new example but I would do it in text version.
Simpliest implementation you can find here:
https://drive.google.com/open?id=1_x9Lk2AoRAwTdy56RN5EzXJ16EQT7feu

Sorry for incomprehension, yeah writing “Terrains” not equals “Multiple Terrains” I updated description but waiting for approval.

What version of Unity you use?
Are you sure you imported all files from package?
Maybe you’re switched to use shared settings and assigned wrong LOD Set file?

hi,

Don’t know if it’s relevant :p, but do you plan to add some “mesh combine” or “material combine” features to your tool?
A lot exist some are free i know but having everything in one tool would interest me and i trust your products.

btw : i played few minutes with it and i was amazed to see my terrains culled with the camera!! :stuck_out_tongue: great tool!
thanks!
Will definitely rate it when i know it better!!

1 Like

you definitly need to explain how to set everything correctly in the documentation and produce clear tutorial video.

1- once i have apply the script on the prefab in the folder (and not the one in the scene) it created files and the console error went away
2- should be clear in product description that “terrain optimizer” doesn’t serve any purpose unless you have multiple terrain. I personally thought i would get better performance for my terrain, which it isn’t the case

there are some really robust solution for that already on the store, he should concentrate on doing his own black magic to get the most of out it, but should certainly keep an eye to stay compatible with popular solution

Don’t worry I will keep updating asset and try to improve it to make it help in as many situations as possible.
Maybe terrain optimization will be the case but for now there are some things which really needs to be done before working on that.

As requested, new tutorial videos:

https://www.youtube.com/watch?v=emW8HUpmsow

And also shared settings + obstacle detection explanation:

https://www.youtube.com/watch?v=qZJisODUDuo

3 Likes

Thanks!
Looking forward to getting deeper into this! :slight_smile:

If i may add a comment, it’s annoying that a gameobject is created automaticly because you have to manually delete it if you use a scene structure where you first load your controller and then load the level. It should automaticly delete itself if it detect 2 controller to avoid console error

so far i havent seen any improvement on my side after “optimizing” lots of prefab and particle. It’s in fact even worse since i get cpu peak when moving around the camera as if it took forever to do the culling.

thanks for the video !!

You mean Optimizers Manager?
I done it already for upcoming update, I had to separate detection of it during edit and playmode.
(In playmode new detected optimizer will be deleted so one which is working will remain)
Warning log is just warning, I prefer log it every time in case someone not notice that.

How many object you have on scene?
If you use optimizers like on single mehes it can make higher cpu usage because unity is culling them by default so you doing two same things in the same time, meshes should be culled just as addition to culling particles/lights etc. or culling groups of meshes, when doing it like that is more beneficial.
You can try using “Dynamic” optimization method, it will take much less cpu for sure but it can react slower for objects’ visibility in camera (then you can set higher value for “Update Boost” inside optimizers manager), dynamic optimization method will have much more to say when DOTS will be implemented (it may be recommended method then (I’m starting with work on that) )

Edit: I just found one thing with is making culling tens of thousands of objects not take any load on cpu with effective and static methods by doing this.

Edit 2: I finished it and effects are great, new version (1.0.2) is waiting to be approved, make sure you update to this version when it’s ready on store. (but very wide tests are needed, probably there will not be issues with it but you never know :wink: )

2 Likes

Version 1.0.2 Released!
Full Changelog since 1.0.1:
(1.0.2)
IMPORTANT CHANGE: Implemented CullingContainers logics which are significantly boosting performance for culling detection calculations for tones of objects if they’re using same count of LOD levels and same distance values (if you were using more than 1000 optimizers you should notice difference, also now you can freely use like 100 000 optimizers at the same time! ) Feature needs to be tested a bit but seems to be stable.

● Now light optimizer “Render Mode” enums will have same names like ones inside Light component’s inspector window
● Changed drawing for multipliers in light and particle systems LOD settings from 0-1 to 0%-100% (“FPD_Percentage()” instead of “Range()”)
● Static Game Object automatic detection for “Static” optimization method + dialog to allow for it
● Small bug fixes
● Disabling optimizer is now fully supported [optimizer.enabled = false] (probably you will not need this but some projects could make use of it)

(1.0.1.3)
● Fixed transform scale detection sphere radius preview in scene view during editor mode
● Light transitioning fixes when not using (“change intensity”)
(1.0.1.2)
● Added toggle in first LOD level window to unlock disabling and editing parameters (experimental)
● Now disabling optimizer component during playmode will prevent changes on optimized objects
(1.0.1.1)
● When using nested prefabs (parent object having optimizer and child objects having optimizers) optimizer will not try adding component onto “To Optimize” list when the same component is in use by other, child optimizer component.
● Added LOG warning about creating optimizer inside prefab mode - it’s not yet supported

Roadmap In first post Updated
Important Tip:
Some game objects sometimes needs a lot of time for unity to be deactivated, if you experience lags when rotating camera that’s probably it, then you can try to just deactivate components instead of whole game object.
(this info will be displayed in culled LOD settings in next small update)

2 Likes

Hey @FimpossibleCreations , does your plugin manage enabling and disabling objects inside drawers or closets when they are opened and closed?
If not, that would be awesome for walking simulators and adventure games.
In a walking simulator, there can be tons of objects inside closets and drawers that don’t need to be enabled until the drawer or closet is opened (not the just the renderer but the whole gameobject).
Also, the drawers and closets can be opened and closed either by animation or by direct physics (like in VR), so managing this would be awesome :slight_smile:

1 Like

hi,

Of course let’s wait for the author answer:)
but i suppose there is no problem with your “closet” mecanics.
1-The tool can cull objects by distance so when your character gets close object will appear “maybe even if the locker is closed”…
2-you can cull it if it is seen by the camera or not…

So to me (i own it but didn’t try this yet) it’s a perfect solution that will cover many many “gameplay” mecanics

Maybe the way you spawn your objects is important??? Just some thoughts…
The author will tell us;)

1 Like

Thanks @eaque_1 but I wonder if checking if the camera can see the objects would be too much overhead, since I suppose it’s using ray casting for that.
I’m targeting the Oculus Quest, so performance is REALLY scarce. (on android, 72fps rock solid is HARD to keep)