UNIGINE 2.15.1: Automatic LODs, Decals In Material Graph Editor, Updated IG and Sandworm Tool, 2.5D Buildings Add-On
- Material graph editor: decals support, depth offset, and other improvements.
- World Spline Graph export to FBX.
- Automatic LOD generation.
- Water System changes.
- Sandworm tool updates.
- Image Generator improvements.
- Asset replacement tool.
- 2.5D Buildings Add-On.
Notice: UNIGINE 2.15.1 SDK requires SDK Browser version 1.9.33 or later.
This is primarily a maintenance release resolving a number of issues introduced in 2.15 although it brings a pack of features and improvements.
Material Graph Editor Improvements
You can now create materials for Decals via the Visual Material Graph Editor. All types of decals are supported (Mesh, Projected, and Orthographic). A set of new graph nodes has been added to the editor, these nodes are intended to be used for decals only and have the "decal_" prefix.
Adjustment of decal projection onto a surface has become more flexible. For example, for a Mesh Decal you can choose whether to take normals of the mesh into account or not, which is impossible to control via the decal_base material using the legacy workflow.
Decal samples were added to the Material Graph Samples demo included in the SDK.
The Material node has got a new input to control depth. This is widely used for impostors, for example. You can switch the mode from Offset to Override in the global settings in the right panel.
Inputs Constructor for Subgraphs and Loops
On double-clicking an Inputs node of a subgraph or a Loop Begin node you'll see a fully-functional Input Constructor. It enables you to rearrange, rename, delete existing inputs as well as implicitly set their type.
Warnings and Errors Panel
Not only API can change in the next Engine update, but subgraphs and graph nodes that you use in your graph-based materials can change as well.
To track these changes and provide you with timely notification if something has changed or went wrong and requires your attention we have added a new Warnings and Errors panel.
The panel lists all problem nodes in the graph (if any), just select an entry to see the details about ports or data in the Message section.
The list of other improvements includes:
- Fixed an issue with incorrect application of normal maps in graph-based materials.
- The Multiple Environment Probes option for graph-based Transparent PBR materials now works as expected.
- Fixed an issue with resetting a parameter to default value after cloning it in the Material Graph Editor.
- Fixed an issue with the Camera Direction graph node outputting an inverted vector.
- Fixed a "device removed" crash on zooming out too far in the Material Graph Editor.
- Fixed an issue with refreshing undocked Material Graph Editor window when switching tabs on double-clicking an *.mgraph asset.
- The Copy button for parameters in the Material Graph Editor now functions appropriately.
- The following new subgraphs were added:
- Get Vector From Basis
- Object Scale
- Angle Between Vectors
- Depth To Position
- Fresnel PBR
- Blue Noise 256x256 Animated
- Blue Noise 256x256 Static
See Content Migration Guide for more details on changes in graph-based materials.
- Refactored Distant Waves management for the Global Water object, with some optimizations and more straightforward naming (see the API Migration Guide for details), a normal map is now used instead of the heightmap.
- Fetch settings (SteepnessQuality and Amplitude Threshold) for the Global Water object now affect fetching of normals as well.
- Fixed incorrect Whitecap Intensity for certain Beaufort levels.
- Fixed issues with detecting intersections for the Global Water object, including the issues with water surface modified by the FieldHeight nodes.
- We have also added a new Intersection sample to the Water section of the C++ Samples suite, to demonstrate the impact of various fetching and intersection quality parameters that are available via API.
Other Engine Improvements
- Fixed crashes and memory leaks when editing Landscape Layer Maps with brushes having the size that exceeds the size of the Layer Map itself.
- Fixed an issue with using Mask Terrain for scattering clutter objects over the surface of the Landscape Terrain.
- Attenuation Distance for Landscape Layer Maps using heightmaps with no opacity data is now taken into account during intersection detection, solving issues with incorrect intersection results in corresponding areas.
- Fixed default flags set in the Texture::create() method.
- Fixed an issue with the Mesh::addCylinderSurface() method causing incorrect UV generation for cylinder sides.
- Added support for x=North, y=East orientation, enabling correct operation with custom projections like EPSG 31468 used in the Sandworm tool without data flipping.
- Fixed repeated re-generation of texture cache (.cache_textures) for runtimes having no assets.
- Fixed an issue with rotating child particles when changing the transformation of a parent Decal node.
- Fixed formatting in the C# MathLib ToString() method.
- Fixed an issue with reimporting property files sometimes causing Editor freezes.
- Fixed memory leaks on OpenGL for the ObjectBillboards occurring when changing positions via the setBillboardPosition() method.
- Added an ability to skip render mode check for TAA by enabling TAA Offset when using Viewport::renderNodes() with the VIEWPORT_RENDER_DEPTH flag set.
- The Texture::load() method now creates an unordered access view when loading a texture with the Texture::USAGE_READWRITE flag set.
- Fixed an issue with incorrect baking of clouds having the Interleaved Rendering option enabled to an Environment Probe.
- Fixed an issue causing objects with the Deferred Buffers option disabled to be ignored by the Environment Probe Cutout by Shadow feature.
- Fixed an issue with using IES profiles for Omni light sources.
- Fixed an issue with ObjectWaterGlobal rendering on OpenGL, causing an "Invalid Operation" error.
- Fixed an issue with incorrect rendering of the Landscape Terrain in planar reflections.
- Fixed an issue resulting in a performance drop when detecting intersection with a TerrainGlobal object in case a ray does not intersect it.
- Fixed rendering of the outline effect for ObjectText.
- Fixed an issue causing the current Exposure value in Camera Effects to have an impact on overall brightness when displaying the Auxiliary buffer (Rendering Debug).
- Visualizer for physical shapes now supports wireframe and solid modes to avoid performance issues when there are too many shapes in the viewport, you can also turn the visualizer for shapes off completely. Visualizer issues related to physical shapes, joints, and contacts were fixed as well by removing a dependency on enabling icons in the viewport.
- Fixed an issue resulting in crashes on creating DecalMeshes using a shared Mesh (unique = 0).
- Fixed an issue with heap buffer overflow occurring for small textures in the process of texture data compression using the Jackalless algorithm.
- Fixed generation of environment cubemaps HDRI 360-degree panorama images (RGB16F).
- Fixed shader errors on OpenGL when activating the Cross Flares effect.
- Fixed an issue with incorrect ambient lighting when rendering environment with the Correct Roughness option enabled.
Automatic LOD Generation and Configuration
Automatic LOD Generation is now available right in the UnigineEditor, saving you a lot of time cause now you don't have to prepare levels of detail manually in some third-party software. The feature is based on the meshoptimizer library. You specify the number of LODs for your high-poly model, choose the degree of geometry simplification for each of them (Target Polycount), and set some other parameters, including visibility and fade distances - the Engine will do the rest, generating all LODs automatically using the specified settings. To use the feature choose Auto-Generated in the Use LODs dropdown.
UNIGINE provides automatic assignment and configuration of Levels of Detail based on the name postfixes, enabling you to create and export different meshes for different LODs of your model in a single FBX file. Now, you can specify visibility and fade distances for each LOD of your model at the importing stage, saving time, as you don’t have to adjust these settings for the surfaces on the scene - choose Combine by Postfixes in the Use LODs dropdown.
World Spline Graph Export
The World Spline Graph works well as a tool for object placement and deformation, but the resulting object has some technical issues making it difficult to use in final applications. So, as a temporary solution, we have decided to implement the function of exporting the spline graph to .mesh and .fbx files to get rid of certain weak points and limitations.
You can export your World Spline Graph similar to objects of other types - via the context menu. The export operation produces unique geometry that you can use in your projects like any other model without any additional restrictions. There are some limitations to be observed, please see the documentation for more details. As for the World Spline Graph itself, you can use it as a tool to create such geometry on the scene right in the UnigineEditor.
Improved FBX Export
Now when exporting geometry to an FBX-asset you'll see an extended set of options giving you more flexibility and enabling you to:
- specify target file name and path (even outside the data folder);
- save the offset of the exported object relative to its parent;
- embed textures (which was impossible back in 2.15);
- split surfaces into separate meshes;
- overwrite the existing file with the same name.
Often, when developing a project you'd like to automatically replace one asset (or a group of similar ones) with another asset of the same type while keeping all references. That might be very useful, for example, when you want to replace certain textures in all materials with a new texture, or when building a prototype of your scene without having the final geometry yet by placing some simple blocks (proxies) to replace them with final models when they're ready. Now you can do it in a snap via the context menu in the Asset Browser simply select the desired asset(s), right-click and choose Replace Assets. All related changes will be made everywhere in your project automatically, with most of the asset types supported, including meshes, textures, materials, properties, presets, landscape layer maps, etc.
Outline for Selected Objects in the Viewport
We've had a lot of requests for this feature recently, so we've implemented it. You can toggle it on and off via the Helpers menu in the viewport.
Better Preview for Textures and Decal Materials
Decal materials can now be previewed right in the Asset Browser as well as in the Parameters, and Materials windows making the adjustment process for artists significantly more convenient.
Working with texture preview has also become more convenient with more accurate zooming, preserving the current position when activating/deactivating channels, and camera control in the preview window via the left mouse button and scroll.
Other UnigineEditor Improvements
- Implemented full HiDPI UI scaling support for UnigineEdutor with all UI elements rendered sharply and clearly on any display (currently available only for Windows users).
- Multiple Window Manager improvements solving a number of issues with saving and restoring sizes, positions, and focused areas of UnigineEditor windows.
- Unexpected Editor shutdown will disable automatic reloading of the last world (Auto Open Last World option in the Editor settings) to avoid a faulty "load-shutdown" loop that might be caused by the world's content.
- Node assets (.node) automatically generated for imported FBX-assets are no longer displayed inside the FBX content in the Asset Browser to remove related UX ambiguities.
- Fixed a crash on creating a new world via an Editor plugin.
- Fixed a crash on importing an FBX-model with the Merge Surfaces by Materials option enabled.
- Fixed an issue with skipping surfaces having empty materials or materials with undefined mapping assigned, now they are imported the same way as surfaces with no materials.
- Improved incorrect symbols handling for names contained in imported FBX models.
- Fixed issues with Curve Editor used for adjustment of parameters of Particle Systems.
- Changed the Data Picker hotkey for terrain brushes from Alt + LMB to c, fixing issues with camera orbiting.
- In case of an action interrupting the light baking process (e.g. changing node's position in the world) a confirmation dialog shall now be displayed enabling you to choose whether to save the current result or cancel the interrupting operation.
- Fixed memory leaks in the Tracker Tool when animating float property parameters.
- Fixed an issue with dragging a material from the left tree view panel of the Asset Browser to a surface in the Parameters window.
- Fixed an issue with changing the current selection in the Asset Browser on reimporting and FBX-asset.
- Fixed an issue with deleting Landscape Layer Map (.lmap) assets via the Asset Browser causing them to be reimported after restarting the Editor.
- Fixed an issue with rebaking lighting to a Voxel Probe sometimes providing a successful rebaking result only after several attempts.
- Fixed an issue with a failure to display manipulators for certain axes in case they were disabled when using the previous version of UnigineEditor along with the inability to fix the problem by resetting windows layout.
- The name of an FBX-asset is now updated across all related UI elements right after renaming it.
- Fixed topology of the default ground plane causing a number of physics-related issues (changes were made to all project templates).
- Fixed an issue with wrong application of Asset Browser search filters sometimes occurring after reimporting FBX-assets.
- The Create Mesh Clusters From Hierarchy option now merges similar mesh clusters into a single one.
- Edit, Apply, Collect Similar, and Clear buttons are now available for Mesh Cluster multiselection.
- Multiselection editing is now supported for Node References.
- Selecting Decals, ObjectLandscapeTerrain, or Player nodes now updates the current material selection in the Materials window as well (just like when you select Mesh surfaces).
- Fixed renaming a material graph asset on double-clicking.
- Fixed preview loading for bad or empty *.node files.
- The Unique Material Graphs mode option in the FBX Import settings enables generation of materials with parameters rather than constants.
The list of changes is as follows:
- The Random mode for the following parameters of 2.5D buildings now works as expected regardless of the attribute values: Floor Number, Base Material Distribution, Roof Type Distribution, Roof Height Distribution, and Roof Material Distribution.
- Fixed issues with flipping of Landscape Terrain masks when generating a project with 2.5D buildings.
- Fixed a crash on re-generating a project with data compression enabled over existing uncompressed data from the previous generation.
- Fixed a crash on using a .geojson file as a vector data source.
- Fixed incorrect calculation of available disk space.
- Fixed a crash on importing data from a TMS source related to data compression.
Image Generator Improvements
- Added default parameters (elevation, thickness) for each cloud type to the ig_config.xml file.
- Fixed issues with saving and loading parameters in the IG::Meteo tool.
- Fixed an issue with refreshing weather regions after loading Meteo parameters from a file.
- Fixed an issue with flipping a mask image for a weather region with a CloudLayer on OpenGL (IG:Meteo).
- Fixed an issue with processing of Wave Control and Maritime Surface Conditions Control packets after reloading a database.
- Fixed a crash on attempting to send a Wave Control Packet with unexpected Beaufort levels.
- Fixed a crash on changing the type of clouds for the cloud layer after reloading a database.
- Fixed UI clamping for the timezone in the IG Editor Plugin, negative values are now supported, the available range is [-15, 15].
- Returned the stars_c.hdr texture for stars to Environment presets for an IG Template project.
- Fixed Undo-related crashes in the IG Editor Plugin.
- The ig.umount mount point in the IG Template is now Read-Only.
- Fixed crashes observed when the IG mount point is missing or invalid, error messages were added to clarify the problem.
Demos, Add-Ons, and Samples
2.5D Buildings Add-On
We have added a new add-on containing a pack of materials, to simplify creation of environments. We plan to extend it in future updates and provide you with a rich diversity of buildings, from bungalows and wooden houses to skyscrapers.
Material Graph Samples Rearranged
We have removed the Material Graph Samples suite moving all the content to the corresponding section of the Art Samples suite to keep all art-related samples in one place, as well as to optimize assets usage and save some disk space. So, be sure to check Art Samples for graph-based material samples introduced in 2.15, along with a pack of new ones.
Shader vertex animation baked into textures
- All samples now contain the new Global Water object introduced in 2.15.
- Fixed the Weather add-on for NVidia+OpenGL.
Added a new Quick start with IG Template for a flight simulator video tutorial:
And a new video tutorial on peculiarities of Node References:
Along with a set of new ultrashort HowTo quick tip videos in English, Chinese, and Russian:
Other Documentation Changes
- Added a new article on Abstract Materials.
- Updated Global Water object documentation.
- Added a new tutorial Creating a First-Person Shooter.
- Updated UUSL documentation.
- Updated the Material Editor section, added descriptions of new nodes and samples.
- Updated Sandworm documentation.
- Updated the section on Extending Editor Functionality.
- Updated Editor API reference.
- Fixed a number of issues in the docs based on your feedback.
- The complete list of API changes is available in the API Migration Guide.
- The complete list of Console command changes is available in the Console Migration Guide.
- The complete list of instructions on upgrading your content to UNIGINE 2.15 is available in the Content Migration Guide.
Thank you for reading, and stay tuned for future updates - many great things are yet to come!
- Your UNIGINE Team