UNIGINE 2.4.1: Stabilization, Interactive BIM Demo
2017-03-01
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 various 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: