This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Professional (SIM)
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Использование инструментов редактора для конкретных задач
Расширение функционала редактора
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
UUSL (Unified UNIGINE Shader Language)
Плагины
Форматы файлов
Materials and Shaders
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
Работа с контентом
Оптимизация контента
Материалы
Визуальный редактор материалов
Сэмплы материалов
Material Nodes Library
Miscellaneous
Input
Math
Matrix
Textures
Art Samples
Tutorials
Внимание! Эта версия документация УСТАРЕЛА, поскольку относится к более ранней версии SDK! Пожалуйста, переключитесь на самую актуальную документацию для последней версии SDK.
Внимание! Эта версия документации описывает устаревшую версию SDK, которая больше не поддерживается! Пожалуйста, обновитесь до последней версии SDK.

Вопросы и ответы

Внимание
Функционал, описанный в этой статье, недоступен в Community редакции SDK.
Чтобы использовать этот функционал вам необходимо получить лицензию на Engineering / Sim SDK.

This article aims to help with questions that arise when you use terrain generation tools.Эта статья призвана помочь с вопросами, возникающими при использовании инструментов генерации ландшафта.

There is a number of general tips that may be useful for overall understanding:Есть ряд общих советов , которые могут быть полезны для общего понимания:

  • Open the Editor console (Windows -> Console). If something goes wrong, a console message might be useful in explaining the situation.Откройте консоль редактора (Windows -> Console). Если что-то пойдет не так, консольное сообщение может быть полезно для объяснения ситуации.

    Console errors

    Example of console errorsПример ошибок консоли
  • If you suspect that the height data has some issues, you can enable the debug mode to check: Helpers -> Opacity World Normal.Если вы подозреваете, что данные о высоте имеют некоторые проблемы, вы можете включить режим отладки для проверки: Helpers -> Opacity World Normal.
  • Don’t worry about the number of triangles in ObjectLandscapeTerrain. This object was designed so that millions of polygons wouldn’t affect the framerate that much.Не беспокойтесь о количестве треугольники в 0_фл. Этот объект был спроектирован так, чтобы миллионы полигонов не сильно влияли на частоту кадров.
  • Clear cache before you start terrain generation: click the button near the cache address line in the bottom left corner of the Sandworm window.Очистить кэш прежде чем вы начнете генерацию ландшафта: нажмите кнопку рядом с адресной строкой кеша в нижнем левом углу окна Sandworm.

What is the difference between ObjectTerrainGlobal and ObjectLandscapeTerrain? В чем разница между ObjectTerrainGlobal и ObjectLandscapeTerrain?

Currently, UNIGINE has two objects that are used for terrain: ObjectTerrainGlobal, which has long been in use, and recently introduced ObjectLandscapeTerrain, which has many improvements.В настоящее время в UNIGINE есть два объекта, которые используются для ландшафта: ObjectTerrainGlobal, который давно используется, и недавно представленный ObjectLandscapeTerrain, который имеет множество улучшений.

These two terrain objects can be generated using the Sandworm Tool. There is also the Landscape Tool but it can generate only ObjectTerrainGlobal, because when it was developed, ObjectLandscapeTerrain wasn’t even in plans.Эти два объекта ландшафта можно создать с помощью инструмента Sandworm. Существует также инструмент Landscape, но он может генерировать только ObjectTerrainGlobal, потому что когда он разрабатывался, ObjectLandscapeTerrain даже не планировался.

The Sandworm Tool as well as ObjectLandscapeTerrain were developed to solve the problems, which have accumulated over the years, and extend the functionality.Инструмент Sandworm, как и ObjectLandscapeTerrain, был разработан для решения накопившихся за годы проблем и расширения функционала.

If you are new to georeferenced data and don’t know how to obtain source files, it might be easier to start working with Sandworm because it allows taking data directly from TMS sources.Если вы новичок в работе с данными с географической привязкой и не знаете, как получить исходные файлы, может быть проще начать работу с Sandworm, поскольку он позволяет получать данные непосредственно из источников TMS.

Where can I take the geodata?Где взять геоданные?

As a rule, access to private TMS servers is not free, however, there are free data sources supported by donations. If you are not in the mood of searching, you can check the list here. Keep in mind that every server has its own features and check the information in description.Как правило, доступ к частным серверам TMS платный, однако существуют бесплатные источники данных, поддерживаемые за счет пожертвований. Если вы не в настроении искать, вы можете проверить список здесь . Имейте в виду, что каждый сервер имеет свои особенности, и проверяйте информацию в описании.

HeightsВысоты

For example, you can try the mapbox service. Register there in order to obtain your own token and access, for more details see this page.For example, you can try the mapbox service. Register there in order to obtain your own token and access, for more details see this page.

Free access limits the number of requests per minute, but that doesn’t affect the overall workflow and is enough for general overview.Бесплатный доступ ограничивает количество запросов в минуту, но это не влияет на общий рабочий процесс и достаточно для общего обзора.

As soon as you register, you’ll receive a token which is a string of various symbols. Add this token to the following URL after the equality sign (=): https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=YOUR_ACCESS_TOKEN, and use this URL in Sandworm to obtain the data for the corresponding level.Как только вы зарегистрируетесь, вы получите токен, представляющий собой строку различных символов. Добавьте этот токен к следующему URL-адресу после знака равенства (=): https://api.mapbox.com/v4/mapbox.terrain-rgb/{z}/{x}/{y}.pngraw?access_token=YOUR_ACCESS_TOKEN и используйте этот URL-адрес в Sandworm для получения данных для соответствующего уровня.

Примечание
To avoid jaggies (stair-step artifact), export the height data into a 32-bit texture.Чтобы избежать неровностей (артефакт ступенек), экспортируйте данные о высоте в 32-битную текстуру.

ImageryОбразы

Here are examples of imagery TMS servers you can use for general overview:Вот примеры серверов изображений TMS, которые вы можете использовать для общего обзора:

  • https://khms2.google.com/kh/v=871?x={x}&y={y}&z={z}Google Maps datahttps://khms2.google.com/kh/v=871?x={x}&y={y}&z={z} - данные Google Maps
  • http://a.tile.openstreetmap.org/{z}/{x}/{y}.png — OSM topographic data with a legendhttp://a.tile.openstreetmap.org/{z}/{x}/{y}.png — топографические данные OSM с легендой

VectorВектор

As a free source of vector data that can be used for a basic overview, you can check https://www.openstreetmap.org and use https://extract.bbbike.org/ as an aggregator for it.As a free source of vector data that can be used for a basic overview, you can check https://www.openstreetmap.org and use https://extract.bbbike.org/ as an aggregator for it.

The mentioned links and sources are provided as a quick start for an overview. You can use them and the Sandworm documentation if you don’t have any georeferenced data at hand. Exporting data from third-party tools is a huge topic for research in itself, and would take much more time than getting along with our tool.Упомянутые ссылки и источники предоставляются в качестве быстрого начала для обзора. Вы можете использовать их и документацию Sandworm, если у вас нет под рукой данных с географической привязкой. Экспорт данных из сторонних инструментов сам по себе является огромной темой для исследований и займет гораздо больше времени, чем работа с нашим инструментом.

Which projection should I select to have the minimum surface distortion? Какую проекцию выбрать, чтобы искажение поверхности было минимальным?

Unfortunately an all-fitting universal projection doesn’t exist, because every projection is a flat representation of a curved area, and the farther a point is from the center (origin) of the projection, the higher the data corruption is. You can find more on Wikipedia or search for other explanations on projections. The output projection should be chosen based on source data at hand or the project requirements.К сожалению, подходящей универсальной проекции не существует, потому что каждая проекция представляет собой плоское представление криволинейной области, и чем дальше точка находится от центра (начала) проекции, тем выше искажение данных. Вы можете найти больше на Википедия или поиск других объяснений по прогнозам. Выходную проекцию следует выбирать на основе имеющихся исходных данных или требований проекта.

You can use https://epsg.org/ to find the best-fitting projection with minimum inaccuracy for the selected area.Вы можете использовать https://epsg.org/, чтобы найти наиболее подходящую проекцию с минимальной неточностью для выбранной области.

How to use https://epsg.org/:Как использовать https://epsg.org/:

Go to EPSG Dataset -> Map Search, set the area boundaries and click Search. You’ll receive a table, sort it by type (click on the TYPE heading) and select one of the data sources that is marked as Projected.Перейдите к EPSG Dataset -> Map Search, установите границы области и нажмите Search. Вы получите таблицу, отсортируете ее по типу (нажмите на заголовок TYPE) и выберите один из источников данных, помеченный как Projected.

Again, for a start, you can use EPSG:3857 — this is a projection widely used by such services as Google, OpenStreetMap, Navitel, etc.Опять же, для начала можно использовать EPSG:3857 — это проекция, широко используемая такими сервисами, как Google, OpenStreetMap, Navitel и т.п.

Can I set the export area manually? Можно ли задать область экспорта вручную?

It is impossible to set the precise coordinates of points in the Editor. However, you can edit the export area points manually: open your *.sworm project in the text editor and write the coordinates you need.В Редакторе невозможно задать точные координаты точек. Однако вы можете отредактировать точки области экспорта вручную: откройте ваш проект *.sworm в текстовом редакторе и пропишите нужные вам координаты.

A heightmap/imagery tile is not placed as required. How to locate it properly on the map? Тайл карты высот/изображения размещен не так, как требуется. Как правильно найти его на карте?

If your data is not georeferenced, it won’t be located on the map (check the editor console, there also shall be a message).Если ваши данные не имеют географической привязки, они не будут расположены на карте (проверьте консоль редактора, там также должно быть сообщение).

Are tiles loading or not? Тайлы загружаются или нет?

The more detailed the tiles are, the more time is required to load them. The Generating Preview pop-up will give you a hint — it is displayed in the bottom right corner of Sandworm while the data is downloaded. In addition, in the Editor console there’ll be a message looking like "ImportCacheTile 465.162000 ms" when a tile is loaded.Чем детальнее тайлы, тем больше времени требуется для их загрузки. Всплывающее окно Generating Preview даст вам подсказку — оно отображается в правом нижнем углу Sandworm во время загрузки данных. Кроме того, в консоли редактора появится сообщение типа "ImportCacheTile 465.162000 ms" при загрузке тайла.

We recommend attempting with low Zoom values first. This will give you an overall understanding about the data you add, then you can increase the Zoom value and click Reimport. The higher the Zoom value is, the more detailed is the data (and the more time it takes to download from a server). If the data is too heavy, you’ll see a notification.Мы рекомендуем сначала попробовать с низкими значениями Zoom. Это даст вам общее представление о данных, которые вы добавляете, затем вы можете увеличить значение Zoom и нажать Reimport. Чем выше значение Zoom, тем детальнее данные (и тем больше времени требуется для загрузки с сервера). Если данных слишком много, вы увидите уведомление.

Sometimes neighboring tiles are of different colors. Is there any workaround for that? Иногда соседние тайлы бывают разного цвета. Есть ли обходной путь для этого?

This can happen when you take data from TMS servers. Better data usually costs money.Это может произойти, когда вы берете данные с серверов TMS. Более качественные данные обычно стоят денег.

You can try to change Zoom for a certain area. One more solution is to make insets using other TMS sources: for example, you generate the whole area with Zoom = 10, and for the problem area — create another layer, use another source for it, and set Zoom = 14 (the given zoom values are just an example, try your own values).Вы можете попробовать изменить Zoom для определенной области. Еще одно решение — делать вставки из других источников TMS: например, вы генерируете всю область с Zoom = 10, а для проблемной области — создаете еще один слой, используете для него другой источник и устанавливаете Zoom = 14 (данные значения масштабирования — это просто например, попробуйте свои собственные значения).

The result of generation is wrong. / Only a part of the area has been generated. Неверный результат генерации. / Сгенерирована только часть области.

Check that the output projection is set correctly.Убедитесь, что выходная проекция установлена правильно.

If the data is outside the selected output projection, it won’t be used for the terrain generation — only the part that is inside will be generated. The corresponding message will be also shown in the Editor console.Если данные находятся за пределами выбранной выходной проекции, они не будут использоваться для генерации ландшафта — будет сгенерирована только та часть, которая находится внутри. Соответствующее сообщение также будет показано в консоли редактора.

A quick check: re-generate the project without defining the Export Area (select the Export Area option and click the Press to Clear button in the Parameters tab). Sandworm will generate only the areas for which the data is available.Быстрая проверка: повторно сгенерируйте проект, не определяя Export Area (выберите опцию Export Area и нажмите кнопку Press to Clear на вкладке «Параметры»). Sandworm будет генерировать только те области, для которых доступны данные.

Preview generation is also helpful in defining if you have data for the area that is missing. If you canceled the preview generation, restart it by right-clicking on a layer and selecting Generate Preview.Генерация предварительного просмотра также помогает определить, есть ли у вас данные для отсутствующей области. Если вы отменили создание предварительного просмотра, перезапустите его, щелкнув слой правой кнопкой мыши и выбрав Generate Preview.

Only a part of the generated terrain is visible in the viewport. В окне просмотра видна только часть сгенерированного ландшафта.

Change the camera visibility distance: in the Editor window, click the gear icon for the selected camera and increase the Far value. You can set the maximum, which is 900000.Измените расстояние видимости камеры: в окне редактора щелкните значок шестеренки для выбранной камеры и увеличьте значение Far. Вы можете установить максимальное значение, равное 900000.

Adjust the visibility distance for ObjectLandscapeTerrain. It is set in the Editor settings: Windows -> Settings -> Landscape -> Visibility Distance. You can set it to inf.Отрегулируйте расстояние видимости для ObjectLandscapeTerrain. Задается в настройках редактора: Windows -> Settings -> Landscape -> Visibility Distance. Вы можете установить его на inf.

Setting visibility distance for Landscape Terrain

When I click Run, I see the black screen after the world is loaded, although there are cameras in the scene. Когда я нажимаю Run, я вижу черный экран после загрузки мира, хотя в сцене есть камеры.

The scene contains a camera by default, which has the Main Player parameter enabled. This parameter defines the image from which camera is displayed when the world is run. Enable this parameter for the camera that you want to control at runtime, for example Sandworm camera — it is spawned right above the terrain, and disable all other cameras.Сцена по умолчанию содержит камеру, для которой включен параметр Main Player. Этот параметр определяет изображение, с которого отображается камера при запуске мира. Включите этот параметр для камеры, которой хотите управлять во время выполнения, например камера Sandworm — она спавнится прямо над террейном, и отключите все остальные камеры.

Is there a built-in day and night cycle system (with the starry sky) that depends on the current latitude and longitude? Есть ли встроенная система смены дня и ночи (со звездным небом), зависящая от текущей широты и долготы?

We have the IG plugin for this task. This plugin is enabled by default in the IG Template, you can read more here and here.У нас есть плагин IG для этой задачи. Этот плагин включен по умолчанию в шаблоне IG, вы можете прочитать больше здесь а также здесь .

How to position an object using its geo coordinates? Как позиционировать объект по его геокоординатам?

For ObjectTerrainGlobal, you can use Geodetic Pivot in the Editor — every object added as its child can be positioned on the terrain using geographical coordinates set in latitude/longitude.Для ObjectTerrainGlobal вы можете использовать Geodetic Pivot в Редакторе — каждый объект, добавленный в качестве его дочернего элемента, может быть расположен на местности с использованием географических координат, установленных в широте/долготе.

As for ObjectLandscapeTerrain, the positioning tool is still in development, meanwhile you can transform coordinates using third-party sources, such as https://products.aspose.app/gis/transformation.Что касается ObjectLandscapeTerrain, инструмент позиционирования все еще находится в разработке, пока вы можете преобразовывать координаты, используя сторонние источники, такие как https://products.aspose.app/gis/transformation.

Here is a description of the workflow:Вот описание рабочего процесса:

  • Transform the object and the origin coordinates to the world coordinates (mind the input and output projections).Преобразуйте объект и исходные координаты в мировые координаты (помните о входных и выходных проекциях).

    Source coordinates of the object

    Source coordinates of the object (screen capture from Google Maps)Исходные координаты объекта (скриншот с Google Maps)


    Source coordinates of the origin

    Source coordinates of the origin (Export Area parameter in Sandworm)Исходные координаты начала координат (параметр Export Area в Sandworm)


    Transforming coordinates using aspose.app

    Transforming coordinates using aspose.appПреобразование координат с помощью aspose.app


  • Take the origin position from the object position: Object.X — Origin.X; Object.Y — Origin.Y.Возьмите исходную позицию из позиции объекта: Object.X — Origin.X; Object.Y — Origin.Y.

    Calculating the world coordinates

    Calculating the world coordinatesВычисление мировых координат
  • Use the outcome as the X and Y coordinates of the object in the world.Используйте результат как координаты X и Y объекта в мире.

    Object positioned in the world

    Object positioned in the worldОбъект расположен в мире

Developers can also use Geodetics Plugin and position objects via code.Разработчики также могут использовать Geodetics Plugin и позиционировать объекты с помощью кода.

IG Plugin has the worldToGeodetic() method and GeodeticsTransformer class to position objects.Плагин IG имеет миртогеодезический() метод и класс GeodeticsTransformer для позиционирования объектов.

Terrain is not generated. / Editor suddenly closes. Ландшафт не генерируется. / Редактор внезапно закрывается.

Generating a terrain is a very resource-consuming operation. For vast and detailed landscapes, you might need a lot of RAM available.Генерация ландшафта — очень ресурсоемкая операция. Для обширных и детализированных ландшафтов вам может понадобиться много оперативной памяти.

We recommend having 64 Gb RAM (at least 32 Gb).Мы рекомендуем иметь 64 Гб оперативной памяти (не менее 32 Гб).

Disabling the Microprofile tool can also save up to 6 Gb RAM. This may be done either by running the Editor with the external argument "-microprofile_enabled 0", or disabling it in the Editor console.Отключение Микропрофиль инструмент также может сэкономить до 6 Гб оперативной памяти. Это можно сделать либо запустив редактор с внешний аргумент "-microprofile_enabled 0" или отключив его в редакторе приставка .

If you have crashes while generating a terrain, gradual adding layers one by one and generating can help finding a problem with the data. Or at least remove the vector data layer, because it may be very consuming.Если у вас возникают сбои при создании ландшафта, постепенное добавление слоев один за другим и генерация могут помочь найти проблему с данными. Или, по крайней мере, удалите слой векторных данных, потому что он может быть очень трудоемким.

Последнее обновление: 10.03.2022
Build: ()