GET UNIGINE Table of contents: Recent news: 2020-07-31 UNIGINE 2.12: Faster Physics, Better Clouds, Earthworks Demo, Advanced Particle Systems 2020-04-10 UNIGINE 2.11: Community Edition, Performance Optimizations, Better Particles, Archviz Demo 2019-12-25 UNIGINE 2.10: New Terrain, Improved C++/C# API, Editor Plugins, Vehicle System 2019-08-16 UNIGINE 2.9: C# Component System, Better Shadows, SSSSS, Dome Screens Support, Weather Add-On 2019-04-30 UNIGINE 2.8: Improved Data Streaming, Cached Shadows, Refactored Editor, Better Vegetation 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

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 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.


Introducing devlog