UNIGINE 2.13 Alpha


Recommended Posts

Key Changes

  • GPU Lightmapper Tool
  • Improved impostors: better visual quality, higher performance
  • Subpixel Reconstruction Anti-Aliasing (SRAA)
  • Adaptive tessellation for the mesh_base material
  • SDK Browser rewritten from scratch with new UI
  • Landscape Tool v2 (experimental)
  • Project Build Tool: extended functionality and a standalone console-based version
  • New Demos and Add-Ons

This release brings you a new SDK Browser, new long-awaited Landscape Tool, Lightmaps along with a pack of rendering improvements, and a lot more.

GPU Lightmapper Tool

Introducing a new GPU-accelerated lightmapping tool for baking global illumination providing unprecedented quality results out of the box.

Lightmapping is currently the most efficient technology providing the maximum realism of diffuse lighting while keeping the performance high. No other technique is capable of giving you such a high-detailed global illumination with so many light bounces. The number of bounces is the key aspect of creating realistic lighting in bright scenes. When you use lightmapping it doesn’t matter how many rays, bounces, or light sources are there, as everything is calculated once and then baked in textures. 

But lightmaps are not an ultimate solution for everything, and they are not intended to replace Voxel Probes, these are two different mechanisms for different cases, each of them having its own advantages and weak points. Voxels will never be as realistic as lightmaps or have similar size, and they cannot provide the same density due to a number of factors. But Voxel GI is suitable for any high-poly or low-poly geometry, does not require UV maps, and can be used for dynamic objects (which obviously falls beyond the scope of lightmapping). Voxel GI in a world is provided by separate nodes - Voxel Probes, which gives you a lot of flexibility. You can toggle them on and off one by one, mix them as you want to achieve the desired result. But high-density voxels are pretty heavy. The great thing is that you can combine these two techniques as well as choose any of them to fit your project’s requirements (e.g. if you want to have high-quality lighting for a static scene - lightmaps would be the best option, while if you want some dynamics, add voxels where necessary).

Automatic UV Unwrapping 

There is an automatic UV unwrapping tool to save you from preparing UVs for lightmaps manually. It copes well even with complex high-poly geometry taking several minutes, while simple models will be done in seconds.

Bake Lighting Tool

The Bake Lighting window has got a straighter UI. It is now a complete robust tool providing convenient access to all light baking tasks and enabling you to control which types of nodes are to be affected. You can also enable automatic re-baking of shadows and environment probes on changing some of their important parameters via the new Automatic Rebake option.

HAFSVc-MnbyOOYrV74HNDh-YXscuKEEtNbwCnu4h

Instructions for Use

  1. When importing geometry specify the following:
    • UV to be used for lightmaps;
    • lightmap resolution;
    • auto-unwrapping for the UV-channels (0 and 1);
    • Packing quality for auto-unwrapping (low is sufficient in most of the cases).
      9a6gdDHWFdbtBP_Krnx03hiLKpn0fBnp4NpkcusR
  2. Place your model in the world and check Enabled in the Lightmaps section of Surface parameters for all desired surfaces:

Cy1PKarl4jCsa55M2IVoCG5d7WGWAH4l2vv_k3wc

  1. Open the Bake Lighting tool.
  2. Select all surfaces with lightmaps enabled and click Bake Selected.
  3. Wait until the light baking process is completed.

For more detailed instructions please refer to our documentation.
 

Current Limitations

  • Lightmaps can only be applied to static meshes at the moment, but we plan to extend the scope of supported objects.

  • No directional lightmaps are available at the moment, so normal maps for surfaces currently won’t be taken into account. We’ll surely add directional maps in the future to tackle this important issue.

  • Voxel Probes provide reflections for rough surfaces while lightmaps don’t. Reflections shall be added together with directional lightmaps. At the moment, if you use the Voxel Probes for dynamic objects, you can use reflections provided by the Probes, as well.

  • Lightmaps currently support baking Global Illumination only, no direct lighting is baked. We plan to add this feature soon, but meanwhile, you can use real light sources with static shadows providing even more details as they work on a per-pixel basis.
     

Levels of Detail 

You can bake a separate lightmap for each LOD. Moreover, you can save space by sharing already baked lightmaps between different LODs (works for LODs having the same UV maps). Here is how you do that:

  • Activate the Bake option for LOD0, while disabling this option for all other LODs that will share its lightmap.
  • Bake lightmap for LOD0
  • Copy the path to LOD0’s lightmap and paste it to the Texture field for other LODs.

 

New SDK Browser 

(Not included in 2.13 Alpha)

UNIGINE is made to help bring your projects to life, most of your activities revolve around projects, you create, configure, and upgrade them, you also need to have all necessary templates, samples, demos, and additional content at hand. SDK Browser is a hub that connects you to the world of UNIGINE and streamlines all the processes. We’ve put a lot of effort into making all processes as smooth and intuitive as possible and switched to a new technology stack to make the product even more robust and secure.

5FxwZcrvt7vWP3jum_rApXoghXp_V--C43O2rNLW

 

Better Anti-Aliasing

We’ve introduced Subpixel Reconstruction Anti-Aliasing (SRAA), an additional anti-aliasing technique that restores small image details providing a net speedup and minimal overhead compared to supersampling. 

ThIgXn7CjumwfQ-A4c-Z7m2r6alJLjvq78ZQRJ2D

It is recommended to combine this technique with TAA for better anti-aliasing quality. All related settings can be adjusted via the UnigineEditor or via console commands.

SRAA Only

p35bjyRy9WyRCszpyclxuF6dl9RO9Cde4jUYo6ii

SRAA + TAA

O6XGXv8DL-vU-ysqY4QFfT4ypyLaPxdbtXDtNCdW

 

More Advanced Clouds

(Not included in 2.13 Alpha)

yLE3IPstLtFOWsbkpGELpbNSYMNbLeejj_2Txa6h

UNIGINE’s advanced volumetric clouds system has got the following improvements:

  • Noise reduction in clouds raymarching
  • Correct sorting of vertically crossing layers
  • Improved downsampling and interleaved rendering
  • New clouds shading

klkxXIHkHob0yrGWYCLiafNOuai5VfD83gfOYECy

HbWQkvADk8z2zP-9uaA9dd2NVbf4Q4WWyyoumbs3

kOGYIIRHLe4CGHagPtsm328WEqjJ34d-4YJVNZs6

65a8IC5eC_u7sqRDXC6MNT8cOFi-4qC8WZmAhHf6

 

Adaptive Mesh Tessellation

Tessellation for static meshes is back again (as it was in UNIGINE 1), in addition to the water and terrain systems using adaptive hardware tessellation. The mesh_base material now supports Adaptive Hardware-accelerated Tessellation that subdivides low-poly surfaces into finer meshes, to achieve higher visual quality (add more details) for a lower rendering cost.

There are two alternative tessellation options available:

  • Tessellated Displacement -  performed along the local surface normal based on values stored in a special Displacement (height) texture.

OVNIQMHn0lFeOca7SsG_IzThbwxqDqsBxHhFD45oLdkcEEzgiofrR74tbbGRbZNQ_qbLT8cu6UMFCQd2

  • Tessellated Vector Displacement - using a texture that stores displacement along the X, Y, and Z axes, useful when some complex shapes with overhangs are needed.

To enable the feature just set the desired option in the Displacement dropdown for your material.

cqEzMOwIe2HEC6Ld6T9zd1I_1pGA18eNDIupDUaP

Tessellation has flexible settings and a set of optimizations enabling you to do fine-tuning based on the distance and visibility angle.

a6Fy0Q3YjmG5Z82LSejgq9xqFDcbA9lHnNgcYOtH

For more information please refer to the article on the mesh_base material.
 

Faster Impostors

Impostors, that are used instead of real geometry to gain performance (trees in forests, buildings in towns, etc.), have got their own performance faster along with a better look. Optimized depth calculation for impostors has brought a 10x performance boost. Improved linear interpolation of sprites when the camera rotates around the object is now available (in two modes full and horizontal). It makes transitions between sprites smoother avoiding abrupt switching and also offers a special Fix Blur option that helps making details of sprites look sharper and less blurred reducing the negative effect of linear interpolation. The interpolation itself has become 3x faster due to depth pre-pass optimization.

New settings are available in the Impostor Grabber tool and in impostor materials as well. 

Adjustable Fisheye Projections

(Not included in 2.13 Alpha)

Fisheye projection now has adjustable FOV and supports various mapping types: equidistant, equisolid, stereographic, and orthographic (only for FOV < 180). This is especially useful for training Neural Networks (NNs) for autopilot applications as it is crucial to simulate real cameras installed on aircrafts, and characteristics of these cameras may vary depending on manufacturers.

Q14d3GXOCEo2mKtSuCRNGRgsXubFmzPVSFttc7gM

 

IES Profiles for Lights

Light's distribution for omni and projected light sources can now be defined by an IES profile, a lighting industry standard of describing light’s distribution from the light source based on real-world measured light fixtures.

Vs2YujR-JJLxmtCN2ROkslJbt1BLVg1nYHa4hsQo

 

Advanced Color Correction

Color Correction is now more convenient with the curve-based workflow. You can control tonal range, tone response, as well as luminance of the scene, by adjusting Curves. A new Saturation Correction curve enables you to control the saturation of the final image based on the input luminance.

Pysxr3zbX_iKqtqFS6w3lDMq23XIGJWjKMMRYWnJ

Fine-adjustment of saturation and hue for major components of the color specter is available as well.

hue_saturation2.gif

For more information please refer to the Color Correction article. Please note that the Color section of the Settings window has changed its name to Color Correction, all related API methods and console commands were renamed as well, so please be sure to check out API Migration and Console Migration guides for details.

 

Emissive Decals

Emission feature is now available for decals enabling you to simulate huge amounts of lights at far distances, like cities in the night viewed from an aircraft, without affecting performance much. The Emission state with Color and Scale parameters were added to the decal_base material.

pgaGJHSuWrudgr9ocjm0s2ngk4XNqiGbXB6WCHDP

 

Consistent Orientation for Cameras and Lights

(Not included in 2.13 Alpha)

Historically orientation of cameras and lights in UNIGINE was different from that of other nodes, which was a bit confusing especially for newcomers. We have made orientation consistent for all nodes without exception: Y axis points forward, while Z - points up

qd8SISQKQw4L45ti63XjET8sMCvfWPJlupjlbCQy

 

Other Engine Improvements

  • Added new options to control SSR bias (View Bias and Normal Bias) fixing artifacts caused by incorrect offset for raymarching used in SSR calculation.

  • Added a new Intensity Boost parameter for the SSGI effect to make it more noticeable.

  • Optimized Mesh Decals rendering providing a minor performance gain.

  • It is now possible to access the number of constants in a namespace and obtain the type and value of each constant by its index via Interpreter’s Reflection.

  • Fixed a memory corruption issue in the Interpreter.

  • Added a new WidgetSpinboxDouble widget to ensure proper management for double values.

  • You can now check if vertex data of an ObjectMeshStatic was flushed (created/uploaded) to video memory via API using the MeshDynamic::isFlush() method. 

  • There are no texture atlas size limitations for particles anymore, you can specify the desired size via the corresponding parameter.

  • Fixed an issue with a mask failing to be applied correctly after changing Image Format from ATI\DXT to any other format (R\RG\RGB\RGBA).

  • You can now use both the data_path and project_name CLI-parameters together (e.g., to separate shaders cache, log files, and so on from the actual data).

  • The ObjectMeshStatic::getColor() method now returns a color vector with components in the [0...1] range for consistency (not included in 2.13 alpha).

  • Added a new adopt parameter for the D3D11Texture::fromD3D11Texture2D() method to tell the Engine to take care of the texture as if it was created by the Engine (not included in 2.13 alpha).

  • The Viewport::renderTextureCube() method is now available in API  (not included in 2.13 alpha)

  • Fixed a casting-related issue with the InterfaceWindow::setWidget() function when a WidgetDialog is passed as the parameter (not included in 2.13 alpha).

  • Removed a deadlock between CPUShaders-related sync and async threads sometimes causing the Engine to freeze during a sequence of restarts.

  • Fixed an issue with ignoring mouse events when changing window focus.

  • Removed the deprecated Sunshafts effect.

 

UnigineEditor

Project Build Tool Evolution

The Build Tool introduced in 2.10 has become a more mature tool now offering you advanced dependency tracking, control flexibility. The Build Tool is now available as a standalone console-based application simplifying continuous integration (CI) and batch processing. You can configure all necessary build options via a dedicated file and override some of them via CLI-options when launching the tool.

tYQbmh-I4QyFnq23wPh8tuhJgxzxLWPdFqzzw2HM

For more information please refer to the updated Build Tool article.

Runtimes Generator

Normally the .runtime folder content is updated automatically when you open the Editor. Introducing a new Runtimes Generator command-line tool enabling you to generate runtimes without running the Editor, right from the command line. This tool might be useful for example, when only your assets are managed by a VCS, and you’d like to trigger generation of the .runtimes folder content right after checking out the latest version from the repository and then run your application.


In UNIGINE 2.13 Alpha, the console Build Tool and the Runtimes Generator are not available via the SDK browser, neither are they added to a newly created project. You can find both these tools in the <UnigineSDK>/bin/  folder and use them.

Scriptable Materials Integration

Scriptable Materials representing an ideal instrument for fast prototyping of your own custom post effects (DoF, Bloom, or any other) are now fully integrated into the UnigineEditor, you can add as many of them as you want globally via the Scriptable Materials section of the Settings window, or just for selected camera(s) via the Parameters window. Scriptable material lists are pretty much like the lists of components assigned to nodes, enabling you to adjust all available parameters and control which materials to apply. Usage examples are to be added to the Documentation soon.

HJXMetuL5QPEClbr2fCbVc76UBPIJ9xnLjoz3pfK

New Manipulators for Shapes

You can now adjust transformations of collision shapes just like you normally do it for nodes with multi-selection, cloning (Shift + translate), etc. Please note that the Scale manipulator actually controls size parameters of the shape (like radius for the sphere, height and radius for capsule, and so on), it doesn’t affect convex shapes, as they have no such parameters.

K3tGjzlbJxCU_pmdPuypNpWqQYGCVtjUW9GUakqz

 

Other Editor Improvements

  • Dragging a property to a node shall now apply it to the node, not to a surface.

  • Fixed multi-selection behavior for curve-based parameters.

  • You can now use the F5 hotkey to launch an instance of your application instead of clicking the Play button (available for C# projects only).

  • Internal names of material's textures and parameters are now displayed in tooltips, clicking on the name of the parameter/texture shall copy an internal name for it to the clipboard, so you can then paste it to your code.

GfTml2ZBmXpEbcIkb7NqPGRDE_rHD_fqHH-OwTpQ

  • Fixed restrictions for unsupported node types when trying to export them to FBX.

  • Added a callback to handle logging out message, warning, error, and fatal messages to the Log class.

  • Fixed an issue with duplicate folders created by the Video Grabber or FBX-importer when importing FBX-assets with textures. 

  • All keys are now mapped correctly for the French keyboard layout.

  • Fixed an issue with resetting the controls_mouse_handle parameter in the configuration on closing the UnigineEdtor.

 

Image Generator Updates

Changes in IGConfig Class

The IGConfig class introduced in 2.10 to let you manage IG configuration (ig_config.xml) via API has become more convenient now enabling you to get data of various types (from int, float, and string to entities, views, etc.) from the configuration, make modifications and save them to a file.

Debug Mode

The debug mode for IG (ig_debug 1) has been added to visualize the following information:

  • Where LOS/HAT/HOT requests are sent to
  • Tracing of the entity path - position between frames and data sent over the network
  • Segments of every entity
  • Volumes of every entity
  • Basis of every entity with the ID and type specified
  • Time period of visualization

tLQ77K07ujQwNUgs2kfG-hViEH9-X4XqYobyU6BKATIqjRbaXbW5GVyQt96SDPo255mV9b8TM2S005TI

In the debug mode it is now possible to switch to the free-flying camera (F) and back (G).

IG Host (Experimental)

(Not included in 2.13 Alpha)

IG interacts with hosts via network, it receives requests and sends responses. So, to check out IG features or do some debugging you need a host. Introducing IG Host — a cross-platform and cross-protocol solution you can use to establish test-communication with IG.

BUjADh_n4iraFFI3plhowAcfG74imjfFrqeBoxHS

Currently, the host represents a simplified version of CIGI HEMU but it shall evolve and already offers a number of useful advantages:

  • Simplified entity control.
  • Transparent packet transfer (requests and responses can be viewed in the console).
  • CIGI Debug mode.
  • Improved LOS responses.

 

Further evolution includes adding support for HLA and DIS protocols. IG Host is a part of CIGI demo. For more information please refer to the IG Host article.

Other IG Changes

  • Now all IG components should be inherited from ComponentBaseInterface class as well as all other C++ components.
  • New console commands have been added to enable and disable interpolation and set interpolation and extrapolation time periods.
  • Fixed an issue with incorrect Azimuth and Elevation sent to the LOS Vector request.
  • Fixed an issue with collision volumes ignoring non-entity contacts.

 

Demos and Samples

(Not included in 2.13 Alpha)

LiDAR Demo

LiDAR is a method used in robot vacuum cleaners, drones, self-driving cars, etc. for optical scanning of surroundings. This demo contains the LiDAR emulation that can be used for training autopilots and AI. A quick and accurate scanner is implemented using the depth buffer.

You can configure your LiDAR (set the desired range, FOV, resolution, and other parameters) via API.

j6F7AGtJHnpGJ3Q3yz1mTp6Cv0awlgBVBxqpFLae

Winch Demo

Rope physics can be extremely difficult. That's why we created a demo that features a simple and elegant way of creating a winch or hoist using a combination of dynamically added JointBalls and geometry. This type of winch is suitable for simulation of helicopter operations or heavy-duty equipment towing. The rope is implemented as a C++ component that you can use in your project.

BvtT2hwTn-d13GQU_9OUGUQhCX6Pgjv95KOe6o51

iqRMmLsg4nHqx2CLxKK1Wo34ZnjN1iw5iidtht_z

mWaa8lSbkqhCojVeD17i7Ii5JCRzkHlQq-_8fytx

Earthworks Demo Updated

The terrain in the Earthworks demo resists digging now, and bucket filling affects backhoe handling. With the simulation of material flow and crumbling of piles while unloading a bucket the whole process is becoming closer and closer to reality.

O2j5no37wwo0o8-Jq9AZYxFj9OTWCgw7dvVINq3-

 

Heaven Demo

The legendary Heaven Benchmark has been remastered! Now you can run it as a demo. This means that you can walk along the streets of a small town, cross hanging bridges, pay a visit to the dragon on the central square, enjoy the starry sky at night, and stand abaft the zeppelin wheel. The demo showcases a new configurable tessellation feature that allows making a huge amount of polygons out of nothing and makes 3D content extremely detailed without any additional efforts.

29l3uJe-s42NKQP49AH_mgrZjCih7zSqrLnBMKWU

 

Heaven (2009)

heaven_0_old.jpg

Heaven (2020) WIPheaven_0_new.jpg

 

Heaven (2009)heaven_1_old.jpg

Heaven (2020) WIPheaven_1_new.jpg

 

New Scans Add-On

(Not included in 2.13 Alpha)

New content add-on Scans has been added to SDK. It contains a set of ready-to-use assets created on the basis of real-world photogrammetry scans of stones, wooden debris, etc. to add more diversity to your outdoor environments.

9ELGHJee8kiREf4gkziDjfiwmIcBnrc-y_Yky3cChNdlqgnT3auxnk8a94W2LRype2mNjRIABswJh7Kaf2bzEcYw2UO6ERbk-JdmTP_wXQsMHe3YAKixlKP4

Samples

The following updates were introduced to the Art Samples suite:

  • Updated Global Illumination samples with usage examples for lightmaps.
  • Added a new Tessellation sample.

 

New Landscape Tool (Experimental)

(Not included in 2.13 Alpha)

Introducing our new Landscape Tool rewritten from scratch with a lot of UI/UX improvements and the ability to generate the new Landscape Terrain based on both georeferenced and non-georeferenced data. You can use raster (elevation, imagery, and masks) and vector data sources from your local storage device, or connect to both, open services (such as OpenStreetMap or various state/municipal databases) or private tile servers created and supported by users on the basis of services similar to QGIS. To generate a terrain using the data from the OpenStreetMap TMS-service simply mark the desired area on the world map, enter a service URL and desired zoom value - that’s it!

 

Most of the widely used projections are supported, moreover, you can combine sources with different projection types within the same project. 

A basic set of tools is also implemented including mask-based generation of vegetation and 2.5D buildings generation.

Please note that this is an experimental tool with limited functionality and it surely has imperfections. Your feedback regarding the tool, its functions and issues is very much appreciated and will help us make it better.

 

Documentation

More Languages (Chinese And Russian)

Our community grows uniting 3D enthusiasts and experts from different nations. But some of them get frustrated, not always being able to understand English, therefore we’re working on making our Docs available in multiple languages. By this release, our localization efforts have brought us the majority of up-to-date articles in Chinese and Russian. And we will continue adding more articles and languages for you! 

docs.gif

Please note that automatic translation always has imperfections, for your convenience you can check out the original text to eliminate ambiguity - simply hover the mouse cursor over the sentence while holding the Shift key.

Learning Materials

Several Technical Livestreams With Experts were recorded with additional subtitles available in Chinese and Russian: 

and a set of new ultrashort HowTo quick tip videos in English, Chinese, and Russian:

Other Documentation Changes

An updated version of documentation is available here.

  • Like 4
Link to post

Known Issues

  • The C++ API sample StructuredBuffer is unavailable.
  • Various baking-related issues with static WorldLight in a default world: shadows can be baked incompletely or not baked at all (AMD + Linux).
  • Bake Lighting is not available for lightmaps on OpenGL.
  • Multiple warnings in the Console on opening worlds.
  • The IES format is not imported properly.
  • Vertex shader compilation errors in various worlds.
  • LiDAR and CraneRope  С++ samples are not shown in the SDK Browser, but they are present in the SDK.
  • VR + C++ on Linux does not work.
  • Incomplete shaders generation for Art Samples, VR, C++, and IG templates.
Link to post
  • 2 weeks later...

Your feedback is very valuable for us - it helps to make a better release version!

Link to post

Some of our developers moved part of development against this alpha and didnt find anything problematic so far. 

  • Like 1
Link to post

Regarding improved impostors, should we regrab them? Or upgrade is only in code beneath?

Link to post