视频教程
界面
要领
高级
实用建议
UnigineEditor
界面概述
资产工作流程
设置和首选项
项目开发
调整节点参数
Setting Up Materials
Setting Up Properties
照明
Landscape Tool
Sandworm
使用编辑器工具执行特定任务
Extending Editor Functionality
嵌入式节点类型
Nodes
Objects
Effects
Decals
Light Sources
Geodetics
World Objects
Sound Objects
Pathfinding Objects
Players
编程
基本原理
搭建开发环境
Usage Examples
UnigineScript
C++
C#
UUSL (Unified UNIGINE Shader Language)
File Formats
Rebuilding the Engine Tools
GUI
双精度坐标
应用程序接口
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 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: ()