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
Работа с контентом
Оптимизация контента
Материалы
Art Samples
Tutorials

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

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

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

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

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

1. Preparing a Basic Object1. Подготовка базового объекта.#

First, we create an Mesh Static object that will be used as a building block for 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): on the Menu Bar, click Create —> Primitive —> Plane.Создайте меш (здесь мы используем плоскость для дороги): в меню щелкните Create —> Primitive —> Plane.

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

    Примечание
    It is recommended to use 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 means of tiling of the basic mesh along one of the axes X, Y or Z (forward axis), so make sure that your mesh is oriented properly — 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 basic 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 the basic node for roads (the *.node asset) is ready to use and you can delete it from the scene.

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

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

Currently, Sandworm allows using only offline vector data source for 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 (the order of layers display may be changed), and the Vector layer parameters become available.При добавлении векторных данных их изображение отрисовывается поверх всех слоев в панели предварительного просмотра (порядок отображения слоев может быть изменен), и становятся доступными параметры векторного слоя.

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

The Filter is in fact a set of rules used to pick the specific data from the list of all available vector data. The rules are created using the Attributes. 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 Remove button. You can add as many filters as necessary.Дважды щелкните по фильтру, чтобы указать его имя. Для удаления фильтра используйте кнопку Remove. Вы можете добавить столько фильтров, сколько необходимо.

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

  2. Select a slot from those created by you (Sources -> Vector). Slots are designed to organize data into different terrain masks.Выберите слот из созданных вами (Sources -> Vector). Слоты предусмотрены для того, чтобы организовать данные в различные маски ландшафта.
  3. For each filter, set an attribute (or attributes) to filter certain data from the vector source. The required data is filtered using the attribute value and 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 an 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 atributes in the filter.Чтобы добавить дополнительные атрибуты, используйте кнопку «+» (плюс). Вы можете добавить столько атрибутов для одного фильтра, сколько необходимо. Можно установить отношения AND и OR между атрибутами фильтра.

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

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

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

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

  2. In the drop-down, select the type of object you are going to generate according to the slot data. In our case it is Roads. Click Import.В выпадающем списке выберите тип объекта, который вы собираетесь генерировать в соответствии с данными слота. В нашем случае это Roads. Нажмите Import.

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

Slot A slot created by you to organize data filters.Слот, созданный вами для организации фильтров.
Enabled When toggled on, the objects of this type will be generated. When toggled off, the objects of this type are not generated and won't exist in the world containing the generated terrain.При включении будут создаваться объекты этого типа. Когда этот параметр выключен, объекты этого типа не генерируются и не будут существовать в мире, содержащем сгенерированный ландшафт.
Node The path to the basic object's *.node file.Путь к *.node файлу, содержащему базовый объект.
Decal texture resolution

Resolution of the baked texture for decals.Разрешение запеченной текстуры для декалей.

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

Flag indicating whether the segment splitting mode is enabled. In this mode all segments will be divided into subsegments of the specified length (if this length does not exceed the length of the segment itself).Флаг, показывающий, включен ли режим разделения сегментов. В этом режиме все сегменты будут разбиты на подсегменты заданной длины (если эта длина не превышает длину самого сегмента).

Примечание
This parameter can be used to provide better alignment of decals with the terrain.Этот параметр можно использовать для лучшего совмещения декалей с ландшафтом.
Split segment length

Length of the segment for splitting mode, in units.Длина сегмента для режима разделения, в единицах.

Примечание
The lower the value the more segments will be generated. Setting too low values may significantly reduce performance.Чем ниже значение, тем больше сегментов будет создано. Установка слишком низких значений может значительно снизить производительность.
Split lines length (km) Flag indicating whether line splitting mode is enabled. By default a single decal object shall be generated for the specified filter and shall include all relevant decals. When line splitting mode is enabled the line will be divided into parts of the specified length (if this length does not exceed the length of the line itself). Each part will be represented by a separate decal object.Флаг, показывающий, включен ли режим разделения линий. По умолчанию для указанного фильтра создается один объект декали, который должен включать все соответствующие декали. При включенном режиме разделения линий линия будет разделена на части заданной длины (если эта длина не превышает длину самой линии). Каждая часть будет представлена отдельным объектом декали.
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 data of the terrain 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 basic 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 on the basis of vector data using the basic mesh object we created:Фрагмент местности с дорогами, сгенерированный на основе векторных данных с использованием созданного нами базового меша:

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