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.
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:
- 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.
- In the command prompt, run the upgrade.usc as follows:
usc_x64.exe upgrade.usc path/to/the/additional_content_1 path/to/the/additional_content_2 ...
Here: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:usc_x64.exe upgrade.usc <unigine_project>/data path/to/the/additional_content_1 path/to/the/additional_content_2 ...
- 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. |
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
In the upgraded project, there will be the following changes in materials:
UNIGINE | UNIGINE 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
- billboards_impostor_base
- post_sensor
Worlds and Nodes
Light Sources
The following light objects have been deleted:
Decals
The following changes have been made on decals:
UNIGINE | UNIGINE 2 |
---|---|
DecalObjectOrtho DecalTerrainOrtho DecalDeferredOrtho |
DecalOrtho |
DecalObjectProj DecalTerrainProj DecalDeferredProj |
DecalProj |
DecalDeferredMesh | DecalMesh |
DecalObjectOmni | Transforms to 6 DecalProj nodes. |
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.