GET UNIGINE Table of contents: Recent news: 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 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

Huge speed-up of UnigineScript

We continue to improve support of multi-monitor configurations and stereo 3D: both technologies become more and more wide-used for gaming, not to mention industrial simulation and visualization.

UnigineScript:

  • Huge speed-up of the virtual machine.
  • Added inheritance from external classes.
  • Base constructor can be called in C++ syntax.
  • Added typeid() function for quick type checking.
  • Added step-by-step debugging mode ('n' command in the built-in debugger).

Here is the performance comparison chart for UnigineScript 2.46, Lua 5.1.4, Perl 5.10.1 and Python 2.6.6 (higher values stand for higher performance).

Scripting languages performance: UnigineScript, Lua, Perl, Python

All tests were performed on Intel Core2 Duo E6750 @ 2.66 GHz / Ubuntu Linux 10.10 (64-bit).

The following tests were made:

  • Array - simple math operations and array elements access
  • Branching - conditional branching
  • Loop - a loop with variable increment inside
  • Loops - six nested loops with 16 iterations per each loop, variable increment inside
  • Matrix - 128x128 matrices multiplication
  • Random - simple random number generator, a loop with a function call running 20,000,000 iterations
  • Sort - quick sort and buble sort algorithms (no external C functions, only pure bytecode)
  • Statistics - simple Gaussian random number generator and Gaussian distribution calculation
  • Vectors - simple math operations with 3D vectors and 4x4 matrices

According to these tests, UnigineScript has proven to be the fastest scripting language, especially optimized for 3D-specific tasks with its built-in support of 3D math. It is a mature object-oriented solution with zero learning time syntax (similar to C++/C#) featuring a rich function library available out-of-the box.

Render:

  • Fixed rendering artifacts on Mac OS X (10.7+ required).
  • New App3DSurround application for 3-monitor stereo rendering atop of NVIDIA 3D Vision Surround technology. (It is a completely native solution that gives full control over cameras configuration).
  • AppWall automatically detects the display configuration and creates a corresponding number of windows. (The default number can be overridden with console arguments).
  • Added a lot of automatically supported display configurations (1x1, 1x2, 2x1, 2x2, 3x1, 3x2, 4x1, 5x1) for AppWall into the wall.h script.
  • Fixed bug with incorrect vertical asymmetric projections distortion in DirectX.
  • Correct planar reflections with asymmetric frustum projections.
  • Correct near LOD fade distance for volume objects.
  • ObjectClutter and ObjectGrass prevent their mask from being unloaded (allows to avoid rendering stalls).
  • Fixed crashing on simultaneously changing both the video mode mode and render settings.
  • OpenGL ES render now supports Render::renderImage2D() and Render::renderImageCube() functions.
  • Stereo 3D settings are available by default when one of stereo defines (STEREO_SEPARATE, STEREO_ANAGLYPH, STEREO_3D_VISION, STEREO_3D_SURROUND, STEREO_IZ3D) is passed (stereo.h is included into the default system script).
  • Fixed texture coordinates problem with billboards in Direct3D10/11.
  • Added two viewport rendering samples: data/samples/render/image_00 and data/samples/render/viewport_00.
  • Added stereo viewport rendering functions into C++ API.

Other:

  • Added NavigationMesh object.
  • SSE2 is required by default now (use "scons simd=sse" to build without this requirement).
  • Support of additional control keys by Telnet server.
  • Once loaded, material/property libraries are not unloaded from the set of world libraries (huge loading speed-up for worlds with shared resources).
  • Multi-threaded culling of ObjectSurface.
  • Fixed cone sound errors (caused by incorrect OpenAL implementation) on iOS.
  • Added al_sound_skip_errors console variable to skip error messages from OpenAL library.
  • Improved detection of CPU cores.
  • Added support of icons for tab boxes in GUI.
  • Fixed calculation of PhysicalTrigger bounds.
  • ImageDDS can now utilize multiple CPUs running in parallel.
  • Updated "Stereo rendering" article, now it includes the information on 3D Surround mode customization.
  • Added "Multi-Monitor Rendering with AppWall" article.
  • Updated documentaion on sky object and its material.