This page has been translated automatically.
Recent news:
Table of contents:

Sub-surface scattering, Qt integration, SpeedTree plugin

Render:

  • Added a screenspace sub-surface scattering postprocess.
  • Support of a custom iris texture for DOF.
  • Separate near and far focal ranges for DOF.
  • Improved quality of bokeh (lens) DOF.
  • Added a fullscreen DOF mode with per-pixel accuracy (very performance demanding): to activate, use "render_dof 3" console command.
  • Support of a custom color texture for HDR lens.
  • Different blending modes for the mask in mesh_noise_base material.
  • Renamed states in sky material (use upgrade.py to upgrade your project files).
  • All postprocesses are now applied as materials in the following order: as RenderMaterials (a pass after geometry is drawn and before any other postprocess, such as HDR, DOF, etc. is applied) or PostMaterials (the very last pass after all other postprocess; it is rendered after the Composite shader composes the viewport image).
  • Obsolete render_antialiasing filter is now avalable as postprocesses material.
  • Reduced memory consumption by meshes (if they are not used in physics or intersection calculations).
  • Texture, vertex and index buffers are merged into a single one on PlayStation 3 (to reduce system memory consumption).
  • Fixed the leaf shader in OpenGL (billboard leafs were not reflected properly).
  • Added support of PVR4 image format (compression is performed via Daubechies6 wavelet).
  • Refactored a set of "simple" shaders.
  • Performance optimizations for PowerVR SGX mobile GPUs.
  • Fixed LOD fading in reflections.

Sub-surface scattering in action on a character fromOil Rush strategy game:
Sub-surface scattering

UnigineScript:

  • Added get_function() that returns a unique script function ID (which can be used as an argument to call(), making it almost as fast as a direct function call).
  • Correct checking for UserArray bounds.
  • Added a "quat_identity" constant.
  • Added a single-argument append() method for maps (only a key needs to be specified).
  • Support of nested namespaces (namespace Foo::Bar::Baz {}).
  • Fixed the incorrect behaviour of "+=" operators for array elements in some cases.

Sound:

  • Added "Source" and "Reverb" masks for sounds and players.
  • Added a 32-channel sound mixer: it can change the volume per sound group (determined by each bit of "Source" mask) and set the maximum limit of audible sources in a group.

GUI:

  • Added the alpha version of Qt4 C++ plugin (it is currently in development, see below).
  • VScroll and HScroll widgets are merged into Scroll.
  • VSlider and HSlider widgets are merged into Slider.
  • VSpacer and HSpacer widgets are merged into Spacer.
  • Added intersections with primitives inside of WidgetCanvas.
  • Correct parsing of XML entities in FontRich formatted text.
  • Support of font alignment in Flash.
  • Support of bold and italic fonts in Flash.
  • Added namespace prefix as a parameter for UI loading.

Qt plugin at present supports almost all widgets. It can freely use both Unigine UIs and Qt ones:

  • engine.interface.addUserInterface("unigine.ui")
  • engine.interface.addNativeInterface("qt.ui")

The main purpose of the Qt plugin is to revamp and implement a new version of UnigineEditor with improved usability and the extended feature set.

Here is an example of a multi-window Unigine application with Qt4 widgets: Qt integration with Unigine

Tools:

  • Added plugins for 3ds Max 2012.
  • Fixed handling of NodeLayer in UnigineEditor.
  • Improved validator in UnigineEditor (all referenced materials and meshes are checked for actual usage, added scanning of folders for unused resource files).
  • New CLI options in imagedds.py: -ios (for compression of all necessary textures into PVR4 format) and -d (for changing the working directory).
  • Restored export of nodes together with their materials in ResourceEditor.
  • UnigineEditor saves its settings into a dedicated config (-editor_config CLI option).
  • All postprocessing materials can be edited via UnigineEditor.
  • Correct reloading of rope and cloth meshes in UnigineEditor.
  • Added Tools->Plugins window in UnigineEditor.

Other:

  • Added SpeedTree C++ plugin (import of meshes, auto-generation of materials). It can be used via Tools->Plugins window in UnigineEditor. To use it, you need to rebuild the plugin with your SpeedTree license key.
  • Removed a "shift" particle emitter type; use a new "emitter shift" option instead (works with all types of emitters).
  • "Random" particle emitter spawns particles from the polygon surface now, particles are emitted along the direction of polygon's normal.
  • Refactored a "Passage" demo for mobile platforms.
  • Extended a set of lookup functions in C++ API: isSystemVariable(), isSystemFunction(), isWorldVariable(), isWorldFunction(), isEditorVariable(), isEditorFunction().
  • Added length2() method for C++ API vectors.
  • Added C++ API functions for removing UnigineScript extensions.
  • Added ObjectParticles::clear() method for clearing spawned particles.
  • Fixed stalls on non-block sockets in Windows.
  • Added a multi-threaded CPU framework (it can potentially replace EngineThreads in the future).
  • Updated SDK installer for Windows.

Documentation:

  • Online version of up-to-date documentation is available for customers via Unigine Developer Community from now on.
  • Added description of Unigine::Ffp and Unigine::FileSystem classes in C++ API documentation.
  • Updated "Execution Sequence" article; added information how to efficiently use world update() and flush() functions.
  • Updated "Physics simulation" article.
  • Updated documentation on Network Module (API and usage sample).
  • Updated information on new DOF parameters ("Render Settings" article -> DOF).
  • Added description of mesh_noise_base material.
  • Added documentation on all postprocessing materials and how to apply them.
  • Updated "Mesh File Formats" article.
Build: ()