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

Cull, deactivate or activate, adjust quality basing on distance or visibility.
Do it on anything inside scenes of your project!
Give your game more FPS and be able to arrange more details!

Optimizers can optimize almost everything, things like Lights, Particle Systems, Terrains, Renderers, NavMesh Agents, Script Components and more!
Just add optimizer to your game object, select components of which you want change quality. Define distances and percentage amount of parameters you want to change when reaching certain LOD levels, now your optimizer is ready!

For more check it on the Asset Store

MAIN FEATURES:

• Capability to boost game performance drastically
• Change quality of any component when it’s details are not needed
• There is no baking or any other complicating operations
• Various example scenes showcasing different features
• Clean and responsive editor window with built-in-like gizmos in scene view
• Optimize Particle Systems, Terrains, Lights, Renderers, NavMeshAgents and more!
• Progressive adaptation of system to game performance
• Templates for easy implementation of custom components to be optimized
• Full source code included

Demo Builds (Noticable differences and preformance depends on your equipement):
.Exe(64) WebGL .APK

ROADMAP (Future features)

V2.0.0

:heavy_check_mark: GUI Update
:heavy_check_mark: Joining obstacle detection and complex shape features just in one component
:heavy_check_mark: Essential Optimizer component which will not support custom components optimization but will work flawlessly with prefabing and without saving additional files in project
:heavy_check_mark: Multi shape component implementation for CullingContainers logics
:heavy_check_mark: Optimizers Manager debug browser
:heavy_check_mark: Auto Max Distance toggle to adjust it automatically for target camera FOV and detection sphere size, so max distance will end where object is so small on screen it’s almost not visible on high screen resolutions
:heavy_check_mark: Transitioning possibility for “Hidden” LOD level
V2.0.5:
:heavy_check_mark: Support for MeshRenderers fade in/out animating shader parameter value
:heavy_minus_sign: Limiting first LOD level count to maximum count, for example limiting enabled scripts with foot IK
:heavy_minus_sign: Experimental DOTS implementation for Dynamic optimization method and obstacle detection
V2.1.0
:heavy_minus_sign: Tools to set up optimizers on the scene automatically with simple GUI and buttons
:heavy_minus_sign: Stop raycasting from LOD (stop from distance)… for Obstacle Detection algorithm
V2.2.1+…
:heavy_minus_sign: Additional option to sync some parameters in presets with project Quality Settings
:heavy_minus_sign: Group Culling - Automatically finding groups of objects to optimize inside scene and dividing it to sectors (for giant and dense scenes)
:heavy_minus_sign: Performance boost for obstacle raycasting algorithm - Raycast Memory and overlapping

:heavy_minus_sign: Full Implementation of DOTS for “Dynamic” optimization method (Burst Compiler and Job System)
:heavy_minus_sign: Toggle to hide objects if they’re behind other optimizer’s detection shape - Similar to Occlusion Culling (DOTS implementation needed)

:hourglass: Delayed tasks (until someone would need):
:heavy_minus_sign: Changes in LOD settings visible in scene view during edit mode when tweaking them (Particle Systems)
:heavy_minus_sign: LOD Settings Shader Material DirectX version dependent option

1 Like

hi,

Another interesting tool from you!
can you tell me what it can do with terrain culling?

It’s useful when you use multiple terrains in your game, if not and whole game is placed on one terrain then you don’t need to use it.

i mean can you explain me what it will do that unity doesn’t do…Sorry i’m kind of noob:p
i have a big map with 16 terrain and a solution to disable the ones that a re not in sight would be great!

ill buy it anyway the price is cheap! and im sure it’s good stuf like all your assets

As I tested in newest version unity is handling terrains a bit better than around 2017 versions, but turning off trees/details and heightmap drawing when you not see terrain can help.
Also you can adjust pixel error wen you go far from terrain, adjust billboard start distance, you can divide resolution of heightmap if very far or replace it with custom mesh object etc.

tons of possibilities, can’t wait to test it ! just bought it!
:slight_smile:

Has this been tested in VR?

No yet but soon will be, I can send you raport from that when done :wink:

I just went ahead and snagged it because i like your other assets, I keep getting lod lost in prefabs though. Is there a way to prevent that from happening?

It causes indexoutofrangeexception on my prerfabs.

Update 1.0.1 for better support of unity 2018,2019+ is waiting for approval right now.
Each version of unity needed dedicated work to make it work correctly without using “SharedSettings”
(which are easier for unity to understand but less confortable in use because you would need to save separate files inside your project)
Are you using Asset Pipeline Version 2? (added from unity 2019.3 and in 2020 version) I reported some bug reports to unity because there was few incompatibilities, I walked around them, but needs some fixes for full correct workflow.

Updated to version 1.0.1:
IMPORTANT UPDATE

  • Improved compatibility with Unity 2019
  • Added component Optimizer Cleaner to remove unused sub-assets from prefabs generated because of issue with Unity 2019, I recommend to check prefabs with this component (just add to prefab (in project view, no in scene) and use buttons)
  • Many small changes improving integration
  • Some new icons to better understand which file is what
  • Entry integration for Asset Pipeline V2 (Unity 2019.3+)

So I’m still getting lod set lost, and the optimize cleaner says No prefab path!

When I hit retry it appears but it doesn’t save that information in to the prefab.

ullReferenceException: Object reference not set to an instance of an object
FIMSpace.FOptimizing.FComponentLODsController.SetCurrentLODLevel (System.Int32 currentLODLevel) (at Assets/FImpossible Creations/Optimizers/Scripts/Optimize Base/FComponentLODsController.cs:107)
FIMSpace.FOptimizing.FOptimizer_Base.ChangeLODLevelTo (System.Int32 lodLevel) (at Assets/FImpossible Creations/Optimizers/Scripts/Optimize Base/FOptimizer_Base.cs:462)
FIMSpace.FOptimizing.FOptimizer_Base.RefreshVisibilityState (System.Int32 targetLODLevel) (at Assets/FImpossible Creations/Optimizers/Scripts/Optimize Base/FOptimizer_Base.cs:282)
FIMSpace.FOptimizing.FOptimizer_Base.DynamicLODUpdate (FIMSpace.FOptimizing.FEOptimizingDistance category, System.Single distance) (at Assets/FImpossible Creations/Optimizers/Scripts/Partials/Optimizer Base/FOptimizer_Base.Dynamic.cs:117)
FIMSpace.FOptimizing.FOptimizers_Manager.AddToDynamic (FIMSpace.FOptimizing.FOptimizer_Base optimizer) (at Assets/FImpossible Creations/Optimizers/Scripts/Partials/Optimizers Manager/FOptimizers_Manager.DynamicOptimization.cs:111)
FIMSpace.FOptimizing.FOptimizer_Base.InitDynamicOptimizer () (at Assets/FImpossible Creations/Optimizers/Scripts/Partials/Optimizer Base/FOptimizer_Base.Dynamic.cs:47)
FIMSpace.FOptimizing.FOptimizer_Base.Start () (at Assets/FImpossible Creations/Optimizers/Scripts/Optimize Base/FOptimizer_Base.cs:153)

Please write on PM or my email.
We will investigate what’s wrong going on.
Maybe it’s asset pipeline v2, we’ll see.

You probably use it on prefab inside scene, try using it on prefab inside project.
Also after changes on the scene mode, applying changes is required (Unity 2018.3+ Overrides → Apply All)

By the way, I tested it in VR and works as on desktop, as well as rest of my packages :wink:

Please try to not use optimizers with nested prefabs yet.

Just purchased! Looking forward to putting it to use!:slight_smile:

Hi.

My games are based on large terrains. Are about racing cars.

There are 40km x 40km areas with mountains and things like that.

I’ve tried other optimizers (4) and I don’t like them. The one that came closest to my goals has a very ugly transition when new areas appear as the vehicle progresses.

My question is direct.

Can your product help me in this goal?
Thank you

hi,

That’s a great exemple for all of us! how many tiles have you for the whole map?

question to the author:
-terrains appear or disable regarding distance from the camera, can this be regarding altitude of the camera? should it rely on “visibility” in this case?

didn’t try your product yet!! :wink:

Does your areas include multiple terrains or one big / only few of them?
Optimizers can do more when there are multiple terrain objects.

I am not sure if I interpret correctly, but you can try using more LOD levels, adjust LOD settings to smooth out sudden changes or use transitioning to let optimizers change settings inside terrain component smoothly.

What you mean by that? Different components from my package? There is only one component to use with terrains.

You can change settings regarding how far camera is from ~nearest point on terrain and deactivate all terrain calculations when camera is not seeing terrain object (conditioned by visibility spheres visible in scene gizmos)

1 Like

Any update on the prefab error?