This page has been translated automatically.
Video Tutorials
Interface
Essentials
Advanced
How To
UnigineEditor
Interface Overview
Assets Workflow
Settings and Preferences
Working With Projects
Adjusting Node Parameters
Setting Up Materials
Setting Up Properties
Lighting
Landscape Tool
Sandworm
Using Editor Tools for Specific Tasks
Extending Editor Functionality
Built-in Node Types
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Objects
Sound Objects
Pathfinding Objects
Players
Programming
Fundamentals
Setting Up Development Environment
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine Tools
GUI
Double Precision Coordinates
API
Containers
Common Functionality
Controls-Related Classes
Engine-Related Classes
Filesystem Functionality
GUI-Related Classes
Math Functionality
Node-Related Classes
Objects-Related Classes
Networking Functionality
Pathfinding-Related Classes
Physics-Related Classes
Plugins-Related Classes
IG Plugin
CIGIConnector Plugin
Rendering-Related Classes
Content Creation
Content Optimization
Materials
Art Samples
Tutorials

API Migration

Major Changes

Better Intersection Detection for Landscape Terrain#

We have significantly improved intersection detection for the Landscape Terrain. Along with a set of optimizations the algorithms have changed.

We have improved the algorithm of bicubic filtering with an optimized data reading operations on CPU. Bicubic filtering is now controlled per Landscape Layer Map.

Intersection detection algorithm has become faster and much more accurate. The End Precision value is removed as the updated algorithm now always converges to a finite and accurate solution.

Intersections for rays cast from under the terrain surface are now detected properly. There'll be no false-positive intersection detection for rays cast perpendicularly to the terrain surface and no more false-positives along the edges of layer maps.

All related changes are listed below.

ObjectLandscapeTerrain Class#

UNIGINE 2.14 UNIGINE 2.14.1
setIntersectionPrecisionEnd() Removed.
getIntersectionPrecisionEnd() Removed.
setIntersectionPrecisionBegin() Renamed as setIntersectionPrecision()
getIntersectionPrecisionBegin() Renamed as getIntersectionPrecision()
setCollisionBicubicFilter() Removed. Use setIntersectionBicubicFilter() instead.
isCollisionBicubicFilter() Removed. Use isIntersectionBicubicFilter() instead.
setIntersectionBicubicFilterHeight() Removed. Use setIntersectionBicubicFilter() instead.
isIntersectionBicubicFilterHeight() Removed. Use isIntersectionBicubicFilter() instead.
setIntersectionBicubicFilterNormal() Removed. Use setIntersectionBicubicFilter() instead.
isIntersectionBicubicFilterNormal() Removed. Use isIntersectionBicubicFilter() instead.

LandscapeFetch Class#

The way of fetching terrain data and making intersection requests has changed, now the position for which the data is to be obtained as well as the starting and ending point of the intersection ray are now controlled by separate LandscapeFetch properties, instead of specifying the corresponding coordinates per each function call.

UNIGINE 2.14 UNIGINE 2.14.1
Source code (C++)
LandscapeFetchPtr landscape_fetch = LandscapeFetch::create();

// getting terrain data for a point at (100, 100)
landscape_fetch->fetchForce(Vec2(100, 100));

Vec3 p0, p1;

// checking for intersections along the p0-p1 ray
landscape_fetch->intersectionForce(p0, p1);
Source code (C++)
LandscapeFetchPtr landscape_fetch = LandscapeFetch::create();

// getting terrain data for a point at (100, 100)
landscape_fetch->setFetchPosition(Vec2(100, 100));
landscape_fetch->fetchForce();

Vec3 p0, p1;

// checking for intersections along the p0-p1 ray
landscape_fetch->setIntersectionPositionBegin(p0);
landscape_fetch->setIntersectionPositionEnd(p1);
landscape_fetch->intersectionForce();

Here is the complete list of changes for the LandscapeFetch class:

UNIGINE 2.14 UNIGINE 2.14.1
getTangent() Removed.
getBinormal() Removed.
setPrecisionEnd() Removed.
getPrecisionEnd() Removed.
setPrecisionBegin() Renamed as setIntersectionPrecision()
getPrecisionBegin() Renamed as getIntersectionPrecision()
setBicubicFilterHeight() Removed. Use setIntersectionBicubicFilter() instead.
isBicubicFilterHeight() Removed. Use isIntersectionBicubicFilter() instead.
setBicubicFilterNormal() Removed. Use setIntersectionBicubicFilter() instead.
isBicubicFilterNormal() Removed. Use isIntersectionBicubicFilter() instead.
fetchForce() Set of arguments changed.
fetchAsync() Set of arguments changed.
intersectionForce() Set of arguments changed.
intersectionAsync() Set of arguments changed.
fetchForce() Set of arguments changed.
fetchAsync() Set of arguments changed.
intersectionForce() Set of arguments changed.
intersectionAsync() Set of arguments changed.

New Functions

LandscapeLayerMap Class#

LandscapeMapFileCreator Class#

You can now set filtering type to be used for image downscaling performed for LODs of the specified file data type of the Landscape Terrain when creating a new layer map.

UNIGINE 2.14 UNIGINE 2.14.1
run() Return value changed.

New Functions

Image Class#

UNIGINE 2.14 UNIGINE 2.14.1
resizeFrom() Set of arguments changed.

New Functions

ImageConverter Class#

New Functions

RenderState Class#

New Functions

Last update: 2021-04-29
Build: ()