UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Landscape Tool
Using Editor Tools for Specific Tasks
FAQ
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine and Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
CIGI Client Plugin
Rendering-Related Classes

Working with Large Number of Objects

When the virtual scene contains a large number of objects, both identical and unique, managing each of them is a very complicated task. Moreover, when such objects are represented in the scene as separate meshes, the performance significantly drops.

UNIGINE allows managing a great number of objects as a single object by using clusters and clutters. It simplifies a spatial tree of nodes (in the World Hierarchy, there will be one or several objects instead of thousands), thus increasing the performance.

Notice
Unlike a cluster, a clutter scatters objects randomly, and, therefore, meshes/nodes of the clutter cannot be managed manually. However, procedural scattering provided by the clutter is more memory-efficient.

Using Clusters#

Clusters allow you to manage a lot of objects as a single object, while keeping the ability to independently edit each mesh/node baked in the cluster. UNIGINE provides 2 types of clusters:

  • Mesh Cluster contains only identical meshes. So, if you need to create a complex construction that contains several types of identical meshes (like the tube construction on the picture below), you will have to bake several mesh clusters:
    Mesh Clusters in World Hierarchy
    Meshes Baked to Mesh Cluster (Click to watch the video tutorial)
  • World Cluster contains node references. It means that you can bake different objects into the cluster and then manage them. For example, all details of the tube construction can be baked to the single world cluster:
    Expanded World Cluster in World Hierarchy
    Different Nodes Baked to World Cluster (Click to watch the video tutorial)
    If compared to the mesh cluster, the world cluster has less impact on performance. However, it simplifies managing of the large number of different nodes.

The detailed instructions on baking meshes/nodes to the cluster can be found in the corresponding articles referenced above, as well as in the Content Optimization video tutorial.

Using Clutters#

Clutters are almost the same objects as clusters. The main difference is that the clutter scatters objects randomly and doesn't allow editing each object baked into the clutter individually. However, such peculiarity makes the clutter objects more preferable from the perspective of the performance.

There are 2 types of clutters:

  • Mesh Clutter contains only identical meshes randomly scattered across the area.
  • World Clutter contains randomly scattered node references. It means that you can bake different objects into the clutter and randomly position them.
Mesh Clutter with Identical Meshes (Click to watch the video tutorial)
World Clutter with Different Nodes (Click to watch the video tutorial)

The detailed instructions on baking meshes/nodes to the clutter can be found in the corresponding articles referenced above, as well as in the Content Optimization video tutorial.

Last update: 2018-12-27