GET UNIGINE Table of contents: Recent news: 2018-12-27 UNIGINE 2.7.3: Major UnigineEditor Update, Properties and Component Systems Upgrade, IG Template, Experimental Road Tool 2018-08-10 UNIGINE 2.7.2: CAD Models Import, Improved Collaboration, Impostors and Terrain Holes 2018-06-03 UNIGINE 2.7.1: Improved Voxel GI, Forced Shaders Compilation, Water Performance Optimizations, Stabilization 2018-04-26 UNIGINE 2.7: New Voxel GI Solution, Synthetic Terrain Generation, Improved Assets System, Refactored Properties, More Dynamic Environment 2017-12-22 UNIGINE 2.6.1: Improved Multi-Channel Rendering, Runtime Grass Modification, Distributed Terrain Generation, Stabilization 2017-10-20 UNIGINE 2.6: Editor2, Improved Multi-Channel Rendering, Procedural Landscape Generation, VR Template 2017-05-31 UNIGINE 2.5: Screen-Space Ray-Traced Global Illumination, Vector Roads API, Landcover Data Support, Superposition Demo 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

Two weeks of optimization

Last two weeks brought an amazing performance improvement since it was time of very close work with various tools for performance analysis, a bottlenecks hunting season. We have to say that NVPerfSDK is a really good tool for that case, as you can see on the screenshot there are some more performance counters in our profiler, which are available along with instrumental driver from NVIDIA. It would be great if ATI (sorry, AMD - we still can't get used to this weird names like ati.amd.com) make their tools as easy-to-integrate as NVIDIA ones.

DIP optimization

Recent changes:

  • Noticeable improvement of overall performance.
  • Huge increase of DIP speed from 60-80k to 440k/s (OpenGL) and 380k/s (Direct3D9).
  • Massive shaders refactoring.
  • Half float data storage format for meshes.
  • OpenGL pseudo-instancing of geometry drawing.
  • SystemProfiler wrapper for all performance tools like NVPerfSDK (being used with instrumental driver the profiler outputs statistics in runtime).
  • Manager refactoring (now it handles only textures and all types of meshes).
  • Introduced new objects:
    • ObjectMeshGui (3D GUI on an arbitrary curved surface)
    • MeshDynamic (generated on-the-fly from C++ part)
    • ObjectVolumeBox
    • ObjectVolumeSphere
    • ObjectVolumeOmni
    • ObjectVolumeProj
    • WorldOccluder (software occluder)

And a bunch of minor ones:

  • Color sets for particle systems replaced by an attenuation texture (a horizontal gradient) with support of vertical texture transformations.
  • GridBox improvement.
  • Cloning of nodes in editor (using SHIFT+move).
  • runFunction() construction for UnigineScript function calls from C++.
  • loadUI/deleteUI functions replaced by unified for engine.gui and ObjectGui pair: addUserInrerface/removeUserInterface.


As you can see, there are a lot of visual effects added. A family of teapots walking through volume fog:
Volume fog
It turns out that we have too many objects - icons can be hardly squizzed into the tool bar, we are thinking about a new layout because there are more to come. New volumetric lights:
Volume light

We suppose that the hottest thing of the month is NVIDIA G80, we want at least one, but it's hard to get for the moment. CUDA seems to be interesting also, we're waiting for NVIDIA's approval of our application for access to the SDK.

Previous:

Introducing devlog