This page has been translated automatically.
Видеоуроки
Interface
Essentials
Advanced
Подсказки и советы
Основы
Программирование на C#
Рендеринг
Принципы работы
Свойства (properties)
Компонентная Система
Рендер
Физика
Редактор UnigineEditor
Обзор интерфейса
Работа с ассетами
Настройки и предпочтения
Работа с проектами
Настройка параметров ноды
Setting Up Materials
Настройка свойств
Освещение
Landscape Tool
Использование инструментов редактора для конкретных задач
Extending Editor Functionality
Встроенные объекты
Ноды (Nodes)
Объекты (Objects)
Эффекты
Декали
Источники света
Geodetics
World Nodes
Звуковые объекты
Объекты поиска пути
Players
Программирование
Основы
Настройка среды разработки
Примеры использования
C++
C#
UnigineScript
Унифицированный язык шейдеров 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
Работа с контентом
Оптимизация контента
Материалы
Material Nodes Library
Art Samples
Tutorials

Генерация дорог

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

Roads are generated by tiling a decal created from a primary static mesh along the vector data available.Дороги создаются путем размещения декалей, созданной из базовой статического меша, по доступным векторным данным.

Let's review the general workflow.Давайте рассмотрим основной процесс.

Примечание
The article assumes that you have already added the data required for the terrain surface.Предполагается, что вы уже добавили данные, необходимые для рельефа местности .

1. Подготовка базового объекта.#

First, we create a Mesh Static object that will be used as a building block for the generation.Сначала мы создаем объект Mesh Static, который будет использоваться в качестве строительного блока для генерации.

Примечание
The Mesh Static object must be located and have a pivot at the origin (0, 0, 0).Объект Mesh Static должен быть расположен и иметь точку поворота в начале координат (0, 0, 0).
  1. Create a mesh (we use a plane for the road here): click Create —> Primitive —> Plane on the Menu bar.Создайте меш (здесь мы используем плоскость для дороги): в меню щелкните Create —> Primitive —> Plane.

  2. Specify the mesh parameters. For our road, we set the following:Укажите параметры меша. Для нашей дороги мы устанавливаем следующее:

    Примечание
    We recommend using more than a single segment to make road curves smoother.Рекомендуется использовать более одного сегмента, чтобы сделать повороты дороги более плавными.
  3. Inherit a material from mesh_base, set all necessary textures and parameters, and assign it to the mesh.Унаследуйте материал от mesh_base, установите все необходимые текстуры и параметры и назначьте материал мешу.

  4. The road is generated by tiling the primary mesh along one of the axes X, Y, or Z (forward axis), so make sure that your mesh is oriented correctly — in this case, the forward axis is X (red arrow).Дорога создается путем укладки базового меша вдоль одной из осей X, Y или Z ( прямая ось ), поэтому убедитесь, что ваш меш ориентирован правильно - в этом случае ось X (красная стрелка) - направлена вперед.

  5. Geometry is very resource-consuming. Thus, to maintain acceptable performance, you should set up LODs for the primary mesh. For each surface of the mesh, specify visibility and fade distances. These settings will be used for managing LODs of generated spline objects.Визуализация большого объема геометрии очень ресурсоемкая задача. Поэтому, для обеспечения приемлемой производительности, необходимо настроить LOD для базового меша. Для каждой поверхности меша укажите расстояние видимости и затухания. Эти настройки будут использоваться для управления LOD сгенерированных по сплайнам объектов.

    For more information on LOD settings, see Setting Up Object LODs.Для получения дополнительной информации о настройках LOD см. Настройка LOD объекта.

  6. Move the mesh to the origin and export it to a .node file.Переместите меш в начало координат и экспортируйте его в файл .node.


Now that the primary node for roads (the *.node asset) is ready to use, you can delete it from the scene.

Теперь базовая нода дороги (*.node ассет) готова к использованию, и вы можете удалить ее со сцены.

2. Adding a Vector Data Source2. Добавление источника векторных данных#

Currently, Sandworm allows using only offline vector data sources for the generation.В настоящее время Sandworm позволяет использовать для генерации только офлайн-источники векторных данных.

  1. In the Sources panel:На панели Sources:

    • Clicking on Vector opens the window for adding Slots. Slots are designed to organize data.При нажатии Vector открывается окно для добавления слотов. Слоты предназначены для организации данных в различные маски ландшафта.

      Slots

    • Clicking on + Add Layer provides the toolset for uploading vector data.При нажатии + Add Layer открывается функционал для загрузки данных о деталях ландшафта.
  2. When adding a layer, define the type of Data Source to be used: Assets or External Files. Currently, only *.shp and *.geojson are supported as assets. Therefore, if you have other types of files, you can try to add them as External Files.При добавлении слоя определите тип источника данных который будет использоваться: Assets или External Files. В настоящее время в качестве ресурсов поддерживаются только *.shp и *.geojson. Поэтому, если у вас есть другие типы файлов, вы можете попробовать добавить их как External Files.

    Click Import.Щелкните Import.

  3. In the window that opens, select the set of files to be used as vector data.В открывшемся окне выберите набор файлов, которые будут использоваться в качестве векторных данных.

When the vector data is added, its image is displayed atop all the layers in the Preview panel (you may change the order of layers display by RMB click on a layer in the list of sources), and the Vector layer parameters become available.При добавлении векторных данных их изображение отрисовывается поверх всех слоев в панели предварительного просмотра (порядок отображения слоев может быть изменен), и становятся доступными параметры векторного слоя.

3. Specifying Filters for Vector Data3. Создание фильтров для векторных данных#

The Filter is a set of rules used to pick the specific data from the list of all available vector data. The rules are created using Attributes, and only the objects that fit the requirements of every attribute are generated based on this Filter. Filter - это набор правил, используемых для выбора конкретных данных из списка всех доступных векторных данных. Правила создаются с использованием файла Attributes. На основе этого фильтра создаются только те объекты, которые соответствуют требованиям каждого атрибута.

Filters are created as follows:Фильтры создаются следующим образом:

  1. Click the Add button in the Filters window of the Parameters panel.Нажмите кнопку Add в окне Filters панели Parameters.

    Double-click on the Filter to specify a Filter name. To remove a Filter, use the Remove button. You can add as many Filters as necessary.Дважды щелкните по фильтру, чтобы указать его имя. Для удаления фильтра используйте кнопку Remove. Вы можете добавить столько фильтров, сколько необходимо.

    The Share button allows shared use of the Filter among source data layers. Select the source data layer that will share this Filter in the pop-up window. Changes in a shared Filter will be applied to it in all source data layers.Кнопка Share позволяет совместное использование фильтра между масками. Выберите маску, которая будет использовать совместно этот фильтр, во всплывающем окне. Изменения в совместно используемом фильтре применяются к нему во всех масках.

  2. Выберите слот из созданных вами (Sources -> Vector). Слоты предусмотрены для того, чтобы организовать данные в различные маски ландшафта.
  3. For each Filter, set an Attribute (or Attributes) to filter specific data from the vector source. The required data is filtered using the attribute value and a suitable operator. Autocomplete is available — you can type in Attribute names and values or select them from the Attribute list.Для каждого фильтра установите атрибут (или атрибуты) для фильтрации определенных данных из векторного источника. Требуемые данные фильтруются с использованием значения атрибута и подходящего оператора. Доступно автозаполнение. Вы можете ввести имена и значения атрибутов или выбрать их из списка атрибутов.

    The available operators are: =, !=, >, <, ANY. ANY generates all the objects that have any value assigned for the selected attribute.Доступные операторы: =, !=, >, <, ANY. ANY генерирует все объекты, которым присвоено любое значение для выбранного атрибута.

    You can also select attribute values from the Attributes table. The table opens using the sign on the right of the attribute expression.Вы также можете выбрать значения атрибутов из таблицы Attributes. Таблица открывается со знаком справа от выражения атрибута.

    Double-clicking on a value in the table adds it to the attribute value field.Двойное нажатие на значении в таблице добавляет его в поле значения атрибута.

  4. To add more attributes, use the "+" (plus) button. You can add as many Attributes for one Filter as necessary. It is possible to set AND and OR relations between the Attributes in the Filter.Чтобы добавить дополнительные атрибуты, используйте кнопку «+» (плюс). Вы можете добавить столько атрибутов для одного фильтра, сколько необходимо. Можно установить отношения AND и OR между атрибутами фильтра.

    To remove an Attribute, use the button to the right of the Attribute expression.Чтобы удалить фильтр, используйте кнопку справа от выражения атрибута.

4. Specifying Parameters of Vector Objects4. Задание параметров векторных объектов.#

In this step, we set objects that will be generated and placed across the terrain's surface according to the data picked out by the Filter.На этом этапе мы собираемся установить объекты, которые будут сгенерированы и размещены на поверхности ландшафта в соответствии с данными, выбранными с помощью заданных фильтров .

  1. On the Sources panel, click + Add Object.На панели Sources нажмите + Add Object.

  2. В выпадающем списке выберите тип объекта, который вы собираетесь генерировать в соответствии с данными слота. В нашем случае это Roads. Нажмите Import.

Set the following object parameters:Задайте следующие параметры объекта:

Slot Слот, созданный вами для организации фильтров.
Enabled При включении будут создаваться объекты этого типа. Когда этот параметр выключен, объекты этого типа не генерируются и не будут существовать в мире, содержащем сгенерированный ландшафт.
Node The path to the primary object's *.node file.Путь к *.node файлу, содержащему базовый объект.
Decal texture resolution

Разрешение запеченной текстуры для декалей.

Примечание
Доступно только для декалей.
Split segments

Флаг, показывающий, включен ли режим разделения сегментов. В этом режиме все сегменты будут разбиты на подсегменты заданной длины (если эта длина не превышает длину самого сегмента).

Примечание
Этот параметр можно использовать для лучшего совмещения декалей с ландшафтом.
Split segment length

Длина сегмента для режима разделения, в единицах.

Примечание
Чем ниже значение, тем больше сегментов будет создано. Установка слишком низких значений может значительно снизить производительность.
Split lines length (km) Флаг, показывающий, включен ли режим разделения линий. По умолчанию для указанного фильтра создается один объект декали, который должен включать все соответствующие декали. При включенном режиме разделения линий линия будет разделена на части заданной длины (если эта длина не превышает длину самой линии). Каждая часть будет представлена отдельным объектом декали.
Adjust terrain heights and masks

Flag indicating whether terrain heights and masks will be adjusted for generated roads. When this option is enabled, the following terrain data will be modified in the areas along the roads (vector data) having the width specified by the Area Width parameter:Флаг, показывающий, будут ли корректироваться высоты местности и маски для созданных дорог. Когда эта опция включена, следующие данные ландшафта будут изменены в областях вдоль дорог (векторные данные), ширина которых указана параметром Area width:

  • Height data will be adjusted (flattened) to provide better alignment of generated roads with the terrain surface.данные высот (heights) будут скорректированы (сглажены), для обеспечения лучшего выравнивания созданных дорог с поверхностью местности.

  • Masks data will be cut out (e.g. preventing grass from growing on roads).данные масок (masks) будут вырезаны (например, предотвращение роста травы на дорогах).

    Примечание
    All masks will be affected.Будут затронуты все маски.

Примечание
  • Enabling this option significantly increases generation time.Включение этой опции значительно увеличивает время генерации.
  • Adjustment will affect all height and mask LODs of the global terrain having the density satisfying the following condition:Корректировка повлияет на все LOD-ы высот и масок глобального ландшафта, плотность которых удовлетворяет следующему условию:

    Density < Area width x 6.

Area width

Width of the area along the spline to be affected by heights and masks adjustment.Ширина области вдоль сплайна, на которую будет воздействовать регулировка высоты и масок.

Примечание
Available only when heights and masks adjustment is enabled.Доступно, только если включен режим heights and masks adjustment.
Forward axis Axis along which the primary mesh is to be extruded or tiled.Ось, по которой вытягивается или укладывается тайлами базовый меш.

5. Generating Roads5. Генерация дорог#

Now you need to configure the output settings and generate (or regenerate) roads on the terrain by clicking the Generate button.Теперь вам нужно установить выходные настройки, а затем сгенерировать (или перегенерировать ) дороги на поверхности ландшафта, нажав кнопку Generate.

A terrain fragment with roads generated based on vector data using the primary mesh object:Фрагмент местности с дорогами, сгенерированный на основе векторных данных с использованием созданного нами базового меша:

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