UnigineScript
The Language
Core Library
Engine Library
Node-Related Classes
GUI-Related Classes
Plugins Library
High-Level Systems
Samples
Usage Examples
C++ API
API Reference
Integration Samples
Usage Examples
C++ Plugins
Migration
Migrating to UNIGINE 2.0
C++ API Migration
Migrating from UNIGINE 2.0 to UNIGINE 2.1

Content Migration

You can upgrade content of your project to UNIGINE 2 in the automatic or manual mode.

Automatic Upgrade

Automatic upgrade of the project's content can be performed via Unigine SDK Browser.

Notice
By default, the automatic mode is used to upgrade only binary executable files and content stored in the project's data folder. If you have content stored outside the data folder, you will have to upgrade it manually.
In the result, the binary executable and configuration files, meshes, terrains, worlds, nodes, splines, materials and tracks will be upgraded to new formats. The <unigine_project>/migration.log.html log file will be opened in the web browser.

However, you can uncheck Migrate Content during automatic upgrading and perform content upgrading manually. In this case, only binary executable files will be upgraded.

Manual Upgrade

This mode should be used to upgrade content stored outside the project's data folder.

To upgrade the project's content in the manual mode, do the following:

  1. Put the binary executable <UnigineSDK>/bin/usc_x64.exe (or <UnigineSDK>/bin/usc_x86.exe) to the <UnigineSDK>/utils/Upgrade folder that contains the upgrade script.
  2. In the command prompt, run the upgrade.usc as follows:
    Shell commands
    usc_x64.exe upgrade.usc path/to/the/additional_content_1 path/to/the/additional_content_2 ...
    Notice
    If you have unchecked Migrate Content during automatic upgrading, add the path to content stored in the project's data folder to the list of arguments passed to the upgrade script. For example:
    Shell commands
    usc_x64.exe upgrade.usc <unigine_project>/data path/to/the/additional_content_1 path/to/the/additional_content_2 ...
    Here:
    • path/to/the/additional_content_* - paths to folders with content stored outside the data folder. Specify here all paths specified as arguments of the extern_path startup command-line option).

The upgrade.usc can be run with the following additional options:

--log Receives a path to the migration log file. For example: <path_to_log_file.html>. The log file will be opened in a web browser after upgrading is done.
--dry A flag indicating that the upgrading will be done in the test mode. If the path to the log file is specified, results of upgrading will be written to it. Otherwise, they will be shown in the command prompt only.
For example:
Shell commands
usc_x64.exe upgrade.usc path/to/the/additional_content_1 path/to/the/additional_content_2 ... --log <unigine_project>/migration/my_migration.html --dry

As a result you will get your meshes, terrains, worlds, nodes, splines, materials, tracks and configuration files upgraded.

Meshes and Animation

Both static and animated meshes are now stored in a .mesh file format. It can store both geometric data (vertices and their weights) and animation (bone transformations and blend shapes).

As before, skinned meshes can be stored together with animation data in a .mesh file, or animation data can be stored without geometry in a separate .anim file that is used instead of the old .sanim format.

Moreover, the updated mesh file format also features:

  • Up to 7 active blend shapes (morph targets) per surface for facial animation and object deformations.
  • Different kinds of mesh animation (scaling, morphing, addition, subtraction) before skinning.
  • Support for multiple named animations.
  • Seamless tangent space between different surfaces.
  • Storing of pre-calculated tangent space from 3D editors.
  • Bone rotations stored in quaternions instead of normal vectors for better loading speed.
  • A bind pose for each mesh. The first animation frame shouldn't contain the bind pose as before.
  • Support for 8-bit vertex colors.
  • Increased precision for texture coordinates (controlled by a half_texcoords SCons flag, a half precision is set by default).
  • Support for unsigned short and double (OpenGL only) vertex formats for dynamic meshes.
  • Unlimited vertex count for dynamic meshes.
  • Increased precision of the Z coordinate to 32-bit float.
  • Two sets of per-spatial vertex and per-triangle vertex indices. Such an approach improves the loading speed.
  • Increased precision for skinning to 32-bit float weights.
  • Extended animation layers API with all of the animation buffers functionality. Animation buffers have been removed.
  • The same set of shaders for static and skinned meshes.

See also the articles on the new and old mesh file formats:

Terrain

The format of .ter files has been changed in UNIGINE 2. The new terrain features are the following:

  • Precision for height maps has been increased to 31 bits, floating point (1 bit is used for holes).
  • Added additional uncompressed index texture that stores a number of a detail material per channel (can have up to 16 channels).
  • Detail materials have been renamed to Layers.
  • Added specular texture to layers.
  • Added ability for flexible mask setting by modifying Value, Width and Threshold parameters.
  • Added parent-children system, which allows you to use the same mask for several materials.
  • Added 8 performance levels for 1, 2, 3, 4, 6, 8, 12, and 16 materials (shaders for other amount of materials are not ready yet).
  • Added diffuse, normal and specular terrain texture arrays. They are recalculated automatically on terrain materials changing while editing.

See also the articles on the new and old formats:

Materials and Material Libraries

In UNIGINE 2, the format of a .mat file, the list of available materials and material libraries, the set of material options have been changed.

Material Libraries

The following default material libraries has been removed in UNIGINE 2:

  • unigine_mesh_layer.mat
  • unigine_mesh_lut.mat
  • unigine_mesh_noise.mat
  • unigine_mesh_overlap.mat
  • unigine_mesh_paint.mat
  • unigine_mesh_shadow.mat
  • unigine_mesh_tessellation.mat
  • unigine_mesh_tessellation_paint.mat
  • unigine_mesh_triplanar.mat

Materials

Notice
You will have to adjust materials of the upgraded project.

In the upgraded project, there will be the following changes in materials:

UNIGINEUNIGINE 2
billboard_base Merged into billboards_base.
decal_deferred_base
decal_terrain_base
Merged into decal_base.
mesh_reflection_2d_base
mesh_reflection_cube_base
mesh_reflection_fresnel_base
mesh_layer_base
mesh_overlap_base
mesh_pbr_base
mesh_wire_base
Merged into mesh_base
mesh_indirect_base
mesh_lut_base
mesh_lut_reflection_cube_base
mesh_shadow_base
mesh_noise_base
Removed.
mesh_paint_base
mesh_tessellation
mesh_tessellation_indirect
mesh_tessellation_reflection_2d
mesh_tessellation_reflection_cube
mesh_tessellation_reflection_refraction
mesh_tessellation_paint
mesh_tessellation_paint_reflection_cube
mesh_triplanar_base
Removed, will be reworked in 2.1 release.

New Materials

Worlds and Nodes

Light Sources

The following light objects have been deleted:

  • LightSpot. In the upgraded project, it will transform to a LightOmni node with disabled shadows.
  • LightProb. If a LightProb node has child nodes, it will become a NodeDummy node in the upgraded project. Otherwise, it will be simply deleted, so you will have to add and adjust another light source.

Decals

The following changes have been made on decals:

UNIGINEUNIGINE 2
DecalObjectOrtho
DecalTerrainOrtho
DecalDeferredOrtho
DecalOrtho
DecalObjectProj
DecalTerrainProj
DecalDeferredProj
DecalProj
DecalDeferredMesh DecalMesh
DecalObjectOmni Transforms to 6 DecalProj nodes.

Notice
All the other types of decals used in UNIGINE have been removed.

Billboard Object

The ObjectBillboard object has been removed. It will be transformed to ObjectBillboards with a single surface.

Separate billboards can now be created inside ObjectBillboards via the Billboards tab -> Add. Billboards are now rendered sub-pixel, so they can be visible from far away.

Last update: 2017-07-03