Skip to main content

Optimization and performance

Understanding how to optimize your world is a key part of creating a good experience for your visitors. This guide will help you understand how to optimize your world and how to use Dverso's tools to help you.

What is optimization?

Optimization is the process of making your map run better. This can mean a lot of things, but in general, it means making your world run faster and use less memory. This is important because it means that more people will be able to visit your world and have a good experience.

File optimization outside dverso

One of the most powerful tools to optimize glb files is Gltf report. The most powerful and fast way to use it to upload a file, go to the code section, click run, select draco in compression and then export. Upload in dverso directly or if you don't want additional LODs upload in advanced mode.

File sizes and limits

Using optimized files is important to make your map shine, to check on file sizes refer to the File Standards section.

Lights and shadows

Using the Lights is a great way to breathe life into your world, but it can be expensive. If you have a lot of lights in your world, be sure to disable "cast shadow" on the majority of the lights. Using the "Soft Shadows" feature is also expensive, so be sure to disable it if you don't need it. In perfect conditions, use a Sun and some Point lights without "cast shadow".

Sun light also offers a feature called "Aggressive Shadows" that makes shadows more precise but more expensive, so be sure to disable it if you don't need it.

Shadows are disabled by default on weaker devices

Shadows are disabled by default on weaker devices, so if you want to use them but your default video preset disables them, be sure to enable them in your settings

Physics

Dverso automatically computes physics for your world, but it can be expensive. If you have a lot of objects with physics, be sure to disable "collider" on the majority of them. Another way to optimize physics is to use the "Shape" property on your objects. Convex is less precise but faster; Concave is slower but more precise.

Optimizing physics from file source

You can exclude objects from automatic physics building by adding a custom property inside the object in blender, setting the property to type "string", name to "physics" and value to "0.0". You can create an empty and parent all the objects you want to not autogenerate in the physics world for convenience

Camera and Culling

Dverso uses a culling system to render only what the camera can see to improve performance. In junctions with this system dverso also uses a LOD (Level of detail) system to render objects with less detail when they are far away from the camera. Placing objects in the right way can help the culling system to work better, for example not cramming a lot of objects in a small space will enhance your map performance as the culling system will not have to render all of them at once.

Dverso make use of Spatial indexing to improve culling

Dverso uses a spatial indexing system to improve culling, this means that frame speed is not influenced by the number of objects in your world.

IMC

Dverso offers a feature called IMC (Instanced mesh coordination) that allows the engine to render multiple repeated objects as just one draw call. This will help your map run smoother if you have a lot of repeated objects. Keep in mind this is experimental and works better without outilines enabled.

IMC does not work well inside the editor

IMC is a feature that is meant to be used in the "final version" of your world, it does not work well inside the editor and can cause issues. It's reccomended to turn it off while editing your world.