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

Introducing LightProb and support of massive object arrays

Recent changes:

  • New type of lights: LightProb, which is suitable for simulation of global illumination for dynamic objects.
  • Access to command line arguments from UnigineScript.
  • Rendering of screenshots into HDR images.
  • Fixed ObjectVolumeBox rasterization.
  • Fixed ObjectMeshDynamic crashes.
  • Spatial subdivision optimization.
  • Faster world loading.
  • Range of material priority has been extended to [-8;8].
  • Easy registration of 3rd-party C++ functions as script class members via C++ API.
  • Unique IDs for nodes, bodies, shapes and joints (repetitiveness is guaranteed for the same world on different machines).
  • Eliminated position lag between world and visualizer.
  • Dedicated spatial tree for clutter objects ("clutter" flag in nodes).
  • Reduced memory consumption on scenes with large amount of objects.
  • Additional impostor configuration parameters.
  • WorldTransformExpression gained access to a parent node.
  • Two-argument version of check() method for containers.
  • Performance boost of UnigineScript with external classes.
  • Added WorldCluster object.
  • Added accumulation of profiler counters' values.
  • Support of anti-aliasing in image grabber.
  • NodeRef renamed into NodeReference (use scripts/Upgrade/upgrade.py to upgrade your data).
  • New NodeDummy type of nodes for grouping (ObjectDummy is to be used for physical purposes now).
  • Support of new postfixes by imagedds.py: dr, sr, nr, hr, ar, lr (raw textures).
  • Specular reflection is modulated by Fresnel effect on all meshes.
  • Transition to ATI1 format for all single-component textures (ambient and height maps require regeneration by means of imagedds).
  • Enter/leave callbacks for WorldTriggers can be set via UnigineEditor now.
  • NodeReferences store references to all required material and properties libraries.
  • Support of public/private access level modifiers in UnigineScript's classes.
  • Automatic inline of getSomething() functions in UnigineScript.
  • Support of << and >> bitwise operators in UnigineScript.
  • Two-pass compilation of scripts, function and class prototypes aren't required now.
  • Support of additional text for WidgetIcon.
  • Switch and toggle types of parameters in properties.
  • Support of multiple materials per shape in Maya plugins.
  • Correct rendering of visualizer with HDR and other postprocesses.
  • Group set of parameters for nodes in UnigineEditor.
  • Group rename of nodes by a mask ("%d" and "%1d" formats are supported).
  • Camera moved out of high-level Character system.
  • Externs package has been integrated into the SDK.
  • Fixed corruption of %PATH% on MS Vista in the installer.
  • Updated reference manual.

Some notes regarding LightProb: it's a special type of light source, which is based on baked spherical harmonics. They are intended to be used in large groups, providing some kind of global illumination. LightProb can have ellipsoid shape. Due to compact format (9 vec3 values per light) it's possible to bake series of presets for a light and interpolate between them, simulating dynamic change of environmental lighting. Objects are rendered without instancing in LightProb rendering pass.

Here is an example of different types of lighting baked into LightProb:
Phong
Indirect
Phong + indirect

WorldCluster is a smart container for a baked heap of NodeReferences. Only visible NodeReferences from a WorldCluster are added to the world, so it's really fast. To group some NodeReferences into a WorldCluster, you have to make it their parent in node hierarchy and press "create" button in the editor. See new "Forest" demo as an example.

Due to severe changes in structure of the SDK, please uninstall previous version before switching to the current one. Don't forget to run new version of upgrade.py also to upgrade your data (see documentation for more details).

Build: ()