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

Animation buffers, new memory manager

Recent changes:

  • New memory allocator, which can show memory fragmentation.
  • New memory_dump console command for displaying memory fragmentation (numbers means allocations count in some point, 'x' means more than 16 allocations).
  • New garbage collector (ref-counter based) which eliminates stalls (old one was called only each 32nd frame).
  • Fixed bug in animation export plugins, which occured with large number of weights per point.
  • New global "light distance" parameter in render settings.
  • Added support of Object and ObjectMeshDynamic into C++ API (see API examples).
  • GL_vertex_array_object extension is required now, please update your video drivers.
  • Support of binary XML files for release version (they loads faster, consumes less memory and causes less fragmentation).
  • New "xmltree" tool for compilation/decompilation XML files into/from binary format.
  • Fixed Fresnel refraction on NV40 / OpenGL.
  • Fixed streaming-related crashes under OpenGL.
  • New global "light distance" parameter in render settings.
  • "render_manager_reload mesh" reloads only meshes, "render_manager_reload texture" reloads all textures.
  • Support of inplace array creation inside foreach structure of UnigineScript: foreach(int i; (0,1,2,3)).
  • Added system of animation buffers.
  • Correct font wrapping for RichText.
  • Force set of WidgetGridBox proportion, columns are of fixed size.
  • Added sample of integration RakNet (a high-level networking library) into Unigine (see source/samples/Network/RakNet), which is still in the development.

New allocation policy: by default there are two memory pools (128Mb each), one of them is used for allocations less than 32Kb, another one is for the rest (so by default the engine requires 300+Mb). If these pools are already full, the engine allocates additional 128Mb pool. Plus there are fixed allocators for 2 n memory pieces, up to 128Kb. Memory manager also performs bound checking for allocated memory. Use memory_dump to see current fragmentation map:
Memory dump

Skinned mesh animation system now operates by tempararily buffers of bone transformations. One can apply different operations to them (copy, invertion, interpolation, multiplication). So these buffers allow creation of complex animation trees. Animation layer can be treated as a CPU ALU and buffers are like CPU registers.

PS: There is a new interview with our customers, who is creating an "Afterfall" post-apocalyptic cRPG basing on Unigine (Polish only, sorry).