Table of contents: Recent news: 2017-03-01 UNIGINE 2.4.1: Stabilization, Interactive BIM Demo 2017-02-06 UNIGINE 2.4: New Multi-Layered Volumetric Clouds, New Terrain, Oil Refinery Demo 2016-09-19 UNIGINE 2.3.1: Landscape Optimizations, Compute Shaders Support, Renderer Optimizations 2016-08-05 UNIGINE 2.3: Round Earth, Shoreline, New DoF and GI, HTC Vive Support 2016-04-07 UNIGINE 2.2.1: Orbits Demo, Water Improvements, Oculus CV1, and Bugfixes 2016-03-17 UNIGINE 2.2: New Geometric Water, Unified API, Geodetic Improvements 2015-12-10 UNIGINE 2.1.1: UUSL Improvements, SDK Browser Usability, and Bugfixes 2015-11-20 UNIGINE 2.1: New Sky, Increased Depth Precision, Improved AA, Optimizations, Bugfixes 2015-10-09 UNIGINE 2.0: Fully Deferred Rendering, TAA, Data Streaming Improvements, Performance Optimizations 2015-06-25 UNIGINE 2.0 Release Candidate: IDE Integration, PBR Improvements, Bugfixes

UNIGINE 2.4.1: Stabilization, Interactive BIM Demo

Key Changes

  • Optimized ObjectTerrainGlobal.
  • ObjectCloudLayer improvements.
  • Landscape tool optimizations.
  • Improved API for geo-referenced vector data manipulations.
  • Overall engine improvements and bugfixes.
  • Added interactive features into Oil Refinery demo.
  • New C# integration samples.

This is primarily a stabilization release, all users are strongly recommended to update.

Oil Refinery Demo

Oil Refinery demo got a lot of interactive features to showcase BIM (Building Information Model) capabilities of the engine.

  • An interactive personnel training usecase: a sequence of operations required to start a diesel generator.
  • Displaying variuos types of metadata (statistics, telemetry data, etc.) bound to certain buildings and facilities enables to control various parameters in real time.
  • Visualization of construction stages can be useful for overall construction process planning.
  • A day-night cycle provides an opportunity to check all lighting systems of the enterprise.
  • Video sequences can be used to make high-quality presentations of the project.

General features of the demo:

  • 360 000 square meters territory.
  • Over 45M polygons.
  • Over 19000 geometry surfaces.
  • Over 1300 light sources.
  • Over 100 unique models.
  • A set of modes making it possible to explore every corner of the oil refinery in various aspects.
  • Dynamic sky with volumetric clouds and tweakable day-night cycle.
  • Adjustable weather and wind speed.
  • Scalable quality settings.
  • VR support (Oculus Rift and HTC Vive).

ObjectTerrainGlobal

  • Optimized tiles loading.
  • Fixed smoothing when loading tiles.
  • Fixed shadows rendering.
  • Fixed artefacts occurring when filtration was enabled.
  • Fixed bug with ObjectTerrainGlobal intersection check if no patches were created.
  • Fixed crash in ObjectTerrainGlobal on video_restart.
  • Fixed rendering when “No imagery data” was enabled.

Landscape Tool

  • Improved performance due to generation of normals along with elevation.
  • Added validation of the GPU compression.
  • Added saving the GDAL info into assets, which provides faster assets opening and prevents opening of the file descriptors for every source.
  • Increased RAM limit option to 20-70%.
  • Added the GPU compression to assets.
  • Added the UNG compression.
  • Fixed memory leaks during generation.
  • Fixed clean up of the data when generating a new landscape.
  • Fixed values of estimated generation time.

Geodetics

  • Added a DatasetRasterPosResolver class that performs conversion between raster (X, Y) and geodetic (latitude, longitude) coordinates.
  • Added GeodeticPivot::mapMeshFlatToEllipsoid and GeodeticPivot::mapMeshEllipsoidToFlat methods that:
    • Map a flat mesh by using the local coordinates (X, Y) as position on the flat plane and Z as an altitude to the ellipsoid and vice versa.
    • Work with Mesh class which can be lately passed to any related node or used directly.
    • Return position on the ellipsoid or flat plane where the node is to be placed.
  • Old updateTopology / clearTopology methods from DecalMesh and ObjectMeshStatic nodes have been removed.
  • Added GeodeticPivot::mapFlatToGeodetic and GeodeticPivot::mapGeodeticToFlat methods that:
    • Map geodetic latitude, longitude and altitude coordinates to the flat plane coordinates according to pivot's origin latitude, longitude and altitude and vice versa.
    • Use new ellipsoid math.
  • Added correct curving of ObjectGrass and ObjectMeshClutter.
  • Added orientation flag for ObjectGrass, ObjectMeshClutter and WorldClutter.
  • Updated GeodeticPivot migration script.
  • Removed the ellipsoid mode from legacy UnigineEditor and experimental UnigineEditor2.
  • Old ObjectTerrain and ObjectSky now use the new math.
  • Fixed mapped mesh bounds causing wrong intersection and visibility checks.
  • Fixed engine crash due to the invalid GeodeticPivot pointer.
  • Fixed reflections on the curved surfaces.
  • Fixed lighting of deferred objects if ObjectCloudLayer and GeodeticPivot were added to the scene.

Other Engine Improvements

  • Added support for ZLC1/ZLC2 textures.
  • Refactored mesh instancing for ObjectMeshStatic, ObjectMeshDynamic, ObjectMeshCluster and ObjectMeshClutter:
    • Increased DirectX 11 instance count (256 instances per draw call).
    • OpenGL instance count remained the same (41 instances per draw call).
    • Removed NUM_INSTANCES shader define from UUSL, now engine will automatically set RENDER_MESH_NUM_INSTANCES shader definition.
  • Fixed ObjectMeshClutter intersections.
  • The slash at the end of the path specification in the Dir class is no longer required.
  • Reduced memory consumption of FieldShoreline and FieldHeight texture buffers.
  • Fixed ObjectWaterGlobal visibility distance (the correct value is 400+ km).
  • Fixed planar reflections on ObjectWaterGlobal and ObjectWaterMesh.
  • Fixed artefacts on lighting through the semi-transparent nodes on AMD.
  • Fixed work of normal maps.
  • Fixed playback of animations generated from the FBX file without geometry.
  • Fixed double precision support for macOS causing shader compilation errors (requires GL_ARB_gpu_shader_fp64 extension support).
  • Fixed passing of shader definitions and reduced the number of shader allocations.
  • Fixed projection of the mesh decals.
  • ObjectCloudLayer bugfixes:
    • Fixed sorting when curving several layers.
    • Fixed incorrect lighting at specific angles.
    • Fixed overexposure.
  • Fixed writing to the velocity buffer.

API

  • Added the Visualizer::clear method that clears the internal buffer filled after calling any of Visualizer::render* methods.
  • Added the “unique” flag to DecalMesh::setMesh and ObjectMeshStatic::setMesh. It allows overriding a shared mesh resource or creating a new unique resource.
  • Added grab(), release() and isOwner() methods to the PackageUng class.

The complete list of API changes is available in the API Migration Guide.

C# Integration Samples

  • Restored D3D11SharpAppForm and GLTKAppForm samples (integration of the engine to the Windows Forms).
  • Added new D3D11SharpWPF and GLTKSharpWPF samples (integration of the engine to the WPF - Windows Presentation Foundation).

UnigineEditor

  • Added the “Combine by LODs” option to the FBX import. It provides settings for custom LODs combination.
  • Updated OpenFlight Import plugin:
    • Increased import speed due to skipping the recurrent DXT textures compression.
    • Added support for semi-transparent materials.
    • Added default specular texture.
    • Added additional relative paths for textures search.
    • Disabled “Instance material” option by default.
  • Added play and stop of WorldTransformPath node animation to Unigine Tracker.
  • Fixed creation of extra clones when several nodes are selected.
  • Fixed incorrect hierarchy of the cloned nodes.

Experimental UnigineEditor2

  • Fixed work with Starter and Professional builds.
  • Fixed work in the Windows 7 builds.
  • Fixed bugs with assets renaming.

Documentation

Added C++ tutorials on physics: