Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров узла
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Sandworm
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Узлы (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Objects
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
UnigineScript
C++
C#
Унифицированный язык шейдеров UUSL
File Formats
Rebuilding the Engine Tools
GUI
Двойная точность координат
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
Работа с контентом
Оптимизация контента
Материалы
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: 29.04.2021
Build: ()