Настройка уровней детализации
Using Levels of Details (LODs) is the main way to optimize your project. The point is to switch the high detailed mesh to a mesh with lower number of details when the mesh is far from camera. For that, you need to take your detailed model and create several versions of it, each with lower polygon count.Использование уровней детализации (LODs) — это основной способ оптимизации вашего проекта. Суть в том, чтобы переключить модель с высокой детализацией на версию с меньшим количеством деталей, когда она находится далеко от камеры. Для этого вам нужно взять детальную модель и создать несколько ее версий, каждая с меньшим количеством полигонов.
In UNIGINE, a model with LODs can be represented as a single Mesh object with a number of surfaces representing LODs. LODs settings allow you to specify the distance when a surface should be switched to another.В UNIGINE модель с LOD может быть представлена в виде одного объекта Mesh с несколькими поверхностями представляющими LOD-ы. Настройки LOD позволяют указать расстояние, на котором одна поверхность должна быть переключена на другую.
LODs can be configured in one of the following ways:LOD можно настроить одним из следующих способов:
- Automatically when importing the model into UNIGINE.Автоматически при импорте модели в UNIGINE.
- Manually by means of a 3D editor and UnigineEditor.Вручную с помощью 3D-редактора и UnigineEditor.
See AlsoСмотрите также#
- The Levels of Details section of the article on World ManagementГлава Уровни детализации в статье об управлении мирами
- The Surfaces tab of the Content Profiler tool to monitor surface LODs by toggling Min/Max Visibility and Min/Max Fade filtersВкладка Surfaces инструмента Content Profiler для мониторинга уровней детализации поверхностей при помощи фильтров Min/Max Visibility и Min/Max Fade
Automatic LODs SettingАвтоматическая настройка LOD#
Automatic LODs setting implies that LODs for the model are assigned and configured on its importing into UNIGINE.Автоматическая настройка LOD подразумевает, что LOD для модели назначаются и настраиваются при ее импорте в UNIGINE.
When importing the model, you can choose one of the following options:При импорте модели вы можете выбрать один из следующих вариантов:
- Automatically generate LODs by UNIGINE. In this case, you only need your high-poly model - the Engine will do the rest.Автоматическая генерация LOD, выполняемая UNIGINE. В этом случае вам нужна только ваша высокополигональная модель — все остальное сделает движок.
- Use the name postfixes to specify LODs. In this case, you should previously prepare different meshes for different LODs of your model in a third-party software.Использование постфиксов имени для указания LOD. В этом случае вам следует предварительно подготовить отдельные меши для разных уровней детализации вашей модели в стороннем ПО.
Generating LODs AutomaticallyАвтоматическая генерация LOD#
UNIGINE enables you to automatically generate LODs for your high-poly model right when importing it, saving you a lot of time cause now you don't have to prepare levels of detail manually in some third-party software. The feature is based on the meshoptimizer library. UNIGINE позволяет автоматически генерировать уровни детализации для вашей высокополигональной модели прямо при ее импорте, экономя ваше время, поскольку в этом случае вам не нужно вручную готовить уровни детализации, используя какое-либо стороннее программное обеспечение. Функционал основан на использовании библиотеки meshoptimizer.
To automatically generate LODs on importing the model into UNIGINE, simply drag it to the Asset Browser and perform the following:Для автоматической генерации LOD при импорте модели в UNIGINE, просто перетащите ее в Asset Browser и выполните следующие действия:
-
In the import settings window, choose Auto-Generated in the Use LODs drop-down list.В окне настроек импорта выберите Auto-Generated в выпадающем списке Use LODs.
- Set the required number of LODs. For example, we will generate 3 LODs.Установите необходимое количество LOD. Например, мы будем генерировать 3.
-
Specify the Target Polycount (%) value for each LOD. It defines the degree of geometry simplification for each LOD.Укажите значение Target Polycount (%) для каждого уровня детализации. Оно определяет степень упрощения геометрии для каждого уровня детализации.
- For LOD 0, leave the default value of 100 percent.Для LOD 0 оставьте значение по умолчанию 100 процентов.
- For LOD 1, set the 60 percent of the original number of polygons.Для LOD 1 установите 60 процентов от исходного количества полигонов.
- For LOD 2, set the 30 percent of the original number of polygons.Для LOD 2 установите 30 процентов от исходного количества полигонов.
-
Specify the minimum and maximum visibility distances for each LOD. Maximum visibility distance of each LOD should be equal to the minimum visibility distance of the next LOD. Maximum visibility distance of the last LOD should be equal to inf.Укажите минимальное и максимальное расстояния видимости для каждого уровня детализации. Максимальная дальность видимости каждого LOD должна быть равна минимальной дальности видимости следующего LOD. Максимальное расстояние видимости последнего LOD должно быть равно inf.
- For LOD 0, leave the default Min distance and set the Max distance at 5 units. It means that no matter how close the camera comes to the mesh, the surfaces will still be visible.Для LOD 0 оставьте расстояние по умолчанию Min и установите расстояние Max на 5 единиц. Это означает, что как бы близко камера не подходила к мешу, поверхности все равно будут видны.
- For LOD 1, set the Min and Max distances at 5 and 30 units. It means that when the camera is 5 units away from the mesh, the first LOD surfaces won't be visible and the second LOD surfaces will be shown over the distance of 30 units.Для LOD 1 установите расстояния Min и Max в единицах 5 и 30. Это означает, что когда камера находится на расстоянии 5 единиц от меша, первые поверхности LOD не будут видны, а поверхности второго LOD-а будут отображаться на расстоянии 30 единиц.
- For LOD 2, set the Min distance at 30 units and leave the default Max distance. After 30 units, the second LOD surfaces won't be visible and the third LOD surfaces will be shown.Для LOD 2 установите расстояние Min в 30 и оставьте значение по умолчанию Max. После 30 единиц поверхности второго LOD-а не будут видны, и будут отображаться поверхности третьего LOD-а.
-
Specify the minimum and maximum fade distances for each LOD:Укажите минимальное и максимальное расстояния fade для каждого уровня детализации:
- For LOD 1, leave the default Min distance and set the Max distance to 10 units. It will prolong the distance over which the LOD surfaces are still visible and provide smooth fading.Для LOD 1 оставьте расстояние по умолчанию Min и установите расстояние Max на 10 единиц. Это увеличит расстояние, на котором поверхности LOD все еще видны, и обеспечит плавный переход.
- For LOD 2, set the Min distance to 10 units. After 5 up to 15 units, the second LOD surfaces will smoothly fade in. The Max distance set to 20 units. After 30 up to 50 units, the second LOD surfaces will smoothly fade out.Для LOD 2 установите расстояние Min на 10 единиц. Через 5–15 единиц вторая поверхность LOD будет плавно проявляться. Расстояние Max установлено на 20 единиц. После 30 до 50 единиц второй уровень детализации плавно исчезнет.
- For LOD 3, set the Min distance to 20 units and leave the default Max distance. The third LOD surfaces will start to smoothly fade in from 30 to 50 units.Для LOD 3 установите расстояние Min на 20 единиц и оставьте значение по умолчанию Max. Поверхности третьих LOD начнут плавно исчезать с 30 до 50 единиц.
- Leave the 0 value for the Normals Preserve option to ignore normals while simplifyign the mesh topology.Оставьте значение 0 для опции Normals Preserve, чтобы игнорировать нормали и упростить топологию меша.
- Leave the default 60 value for the Recalculate Normals by Angle option.Оставьте значение по умолчанию 60 для параметра Recalculate Normals by Angle.
The Engine will generate and configure all LODs automatically using the specified settings.Движок автоматически сгенерирует и настроит все LOD, используя указанные параметры.
Combining LODs By PostfixesОбъединение LOD по постфиксам#
If you prepare LODs in a third-party software, you can automatically assign and configure LODs of the model based on name postfixes.Если вы готовите LOD в стороннем программном обеспечении, вы можете автоматически назначать и настраивать LOD модели на основе постфиксов имени.
Step 1. Export a Model From a Third-Party SoftwareШаг 1. Экспорт модели из стороннего программного обеспечения#
As an example, we will use the tubes_constructor_chrome_1120.fbx model from the Oil Refinery demo (available in UNIGINE SDK Browser). This FBX consists of several meshes, each of which represents an element of the tubes constructor.В качестве примера мы будем использовать модель tubes_constructor_chrome_1120.fbx из демонстрации Oil Refinery (доступной в UNIGINE SDK Browser). Этот FBX состоит из нескольких мешей, каждый из которых представляет собой элемент конструктора труб.
Perform the following in a 3D editor:Выполните следующие действия в 3D-редакторе:
-
Create several meshes for different LODs of your model: a detailed mesh for the closest LOD and a number of less detailed meshes for farther LODs.Создайте несколько мешей для разных уровней детализации вашей модели: детальный меш для ближайшего уровня детализации и несколько менее подробных мешей для более дальних уровней детализации.
For example, for each mesh representing an element of the tubes constructor (10 meshes), there are 3 meshes representing LODs:Например, для каждого меша, представляющего элемент конструктора труб (10 мешей), есть 3 меша, представляющих LOD:
- Export the meshes as an .fbx file.Экспортируйте меши как файл .fbx.
Step 2. Import Model to UNIGINEШаг 2. Импорт модели в UNIGINE#
To import the model into UNIGINE, drag and drop the previously exported FBX file to the Asset Browser and perform the following to automatically create LODs based on the name postfixes:Чтобы импортировать модель в UNIGINE, перетащите ранее экспортированный файл FBX в Asset Browser и выполните следующие действия для автоматического создания LOD на основе постфиксов имени:
- Choose Combine By Postfixes in the Use LODs drop-down list.Выберите Combine By Postfixes в раскрывающемся списке Use LODs.
- Specify the maximum number of LODs stored in the FBX container (in our case, 3).Укажите максимальное количество LOD, хранящихся в контейнере FBX (в нашем случае 3).
-
For each LOD, define a postfix that will be used to group objects in an FBX file into a corresponding LOD.Для каждого уровня детализации определите постфикс, который будет использоваться для группировки объектов в файле FBX в соответствующий уровень детализации.
The postfix must be the same as the one used when creating objects in a 3D editor.Постфикс должен быть таким же, как тот, который используется при создание объектов в 3D редакторе .For the tubes constructor model, the following postfixes should be specified:Для модели конструктора труб необходимо указать следующие постфиксы:
Имена сгенерированных поверхностей будут такими: material_name + LOD_postfix.
-
Specify the minimum and maximum visibility distances for each LOD. Maximum visibility distance of each LOD should be equal to the minimum visibility distance of the next LOD. Maximum visibility distance of the last LOD should be equal to inf.Укажите минимальное и максимальное расстояние видимости для каждого уровня детализации. Максимальная дальность видимости каждого LOD должна быть равна минимальной дальности видимости следующего LOD. Максимальное расстояние видимости последнего LOD должно быть равно inf.
- For _lod_0, leave the default Min distance and set the Max distance at 5 units. It means that no matter how close the camera comes to the mesh, the surfaces will still be visible.Для _lod_0 оставьте расстояние по умолчанию Min и установите расстояние Max в единицах 5. Это означает, что как бы близко камера не подходила к мешу, поверхности все равно будут видны.
- For _lod_1, set the Min and Max distances at 5 and 30 units. It means that when the camera is 5 units away from the mesh, the first LOD surfaces won't be visible and the second LOD surfaces will be shown over the distance of 30 units.Для _lod_1 установите расстояния Min и Max в единицах 5 и 30. Это означает, что когда камера находится на расстоянии 5 единиц от меша, первые поверхности LOD не будут видны, а поверхности второго LOD-а будут показаны на расстоянии 30 единиц.
- For _lod_2, set the Min distance at 30 units and leave the default Max distance. After 30 units, the second LOD surfaces won't be visible and the third LOD surfaces will be shown.Для _lod_2 установите расстояние Min в 30 и оставьте значение по умолчанию Max. После 30 единиц поверхности второго LOD-а не будут видны, и будут отображаться поверхности третьего LOD-а.
-
Specify the minimum and maximum fade distances for each LOD:Укажите минимальное и максимальное расстояние перехода для каждого уровня детализации:
- For _lod_0, leave the default Min distance and set the Max distance to 10 units. It will prolong the distance over which the LOD surfaces are still visible and provide smooth fading.Для _lod_0 оставьте расстояние по умолчанию Min и установите расстояние Max на 10 единиц. Это увеличит расстояние, на котором поверхности LOD все еще видны, и обеспечит плавный переход.
- For _lod_1, set the Min distance to 10 units. After 5 up to 15 units, the second LOD surfaces will smoothly fade in. The Max distance set to 20 units. After 30 up to 50 units, the second LOD surfaces will smoothly fade out.Для _lod_1 установите расстояние Min на 10 единиц. После 5 до 15 единиц вторая поверхность LOD будет плавно исчезать. Расстояние Max установлено на 20 единиц. После 30 до 50 юнитов вторая поверхность LOD будет плавно исчезать.
- For _lod_2, set the Min distance to 20 units and leave the default Max distance. The third LOD surfaces will start to smoothly fade in from 30 to 50 units.Для _lod_2 установите для расстояния Min значение 20 и оставьте значение по умолчанию Max. Поверхности третьих LOD начнут плавно исчезать с 30 до 50 единиц.
In the result, the FBX container with 10 meshes will be imported. Each mesh will have 3 surfaces representing LODs.В результате будет импортирован контейнер FBX с 10 мешами. Каждый меш будет иметь 3 поверхности, представляющие уровни детализации.
Step 3. Add Model to the WorldШаг 3. Добавление модели в сцену#
Add an exported model into the world as described here. All LODs will be already created and set up according to the specified import values:Добавьте экспортированную модель в мир как описано здесь. Все LOD будут созданы и настроены в соответствии с указанными значениями импорта:
If required, adjust the LODs surfaces in the Node tab of the Parameters window:При необходимости настройте поверхности LOD на вкладке Node окна Parameters:
- Configure the Min and Max Parent settings. In this tutorial, we use the default values of 1.Настройте параметры Min and Max Parent. В этом руководстве мы используем значения по умолчанию 1.
Try to move the camera forward/backward to check how LODs are switched:Попробуйте переместить камеру вперед/назад, чтобы проверить, как переключаются уровни детализации:
Manual LODs SettingРучная настройка LOD#
Manual LODs setting implies that LODs for the model are created in a third-party 3D editor and LODs parameters are adjusted when the model is already imported and added to the scene.Ручная настройка LOD подразумевает, что LOD для модели создаются в стороннем 3D-редакторе, а параметры LOD настраиваются, когда модель уже импортирована и добавлена в сцену.
Step 1. Export LODsШаг 1. Экспорт LOD#
To export the mesh with LODs, do the following:Чтобы экспортировать меш с LOD, сделайте следующее:
-
In your 3D editor, create a detailed model and a number of models with a low number of polygons. For example, you can just copy the existing detailed model and reduce the number of polygons.В своем 3D-редакторе создайте детальную модель и ряд моделей с небольшим количеством полигонов. Например, можно просто скопировать существующую детальную модель и уменьшить количество полигонов.
You should create a separate LOD for each part of the model to which a unique material is assigned.Вы должны создать отдельный LOD для каждой части модели, которой назначен уникальный материал.As an example, we will use the model of an oscilloscope from Superposition benchmark (available via UNIGINE SDK Browser). This model already contains 3 LODs.В качестве примера мы будем использовать модель осциллографа из бенчмарка Superposition (доступна через UNIGINE SDK Browser). Эта модель уже содержит 3 LOD.
10109 polygons 5004 polygons 2583 polygons LOD 0LOD 1LOD 2 - Generate LODs according to a pipeline used by your 3D editor. For example, in 3ds Max, you should group meshes representing LODs and then create LODs via the Level of Detail utility.Создайте LOD в соответствии с конвейером, используемым вашим 3D-редактором. Например, в 3ds Max вы должны группировать меши, представляющие уровни детализации, а затем создавать уровни детализации с помощью утилиты Level of Detail.
- Export the model with LODs as an *.fbx file.Экспортируйте модель с уровнями детализации в виде файла *.fbx.
Step 2. Import Model to UNIGINEШаг 2. Импорт модели в UNIGINE#
To import the model into UNIGINE:Для импорта модели в UNIGINE:
- Click Import in the Asset Browser and choose the exported FBX file.Нажмите Import в Asset Browser и выберите экспортированный файл FBX.
- In the Import FBX window, enable the Merge Static Meshes option. Otherwise, LODs will be imported as separate meshes, not surfaces.В окне Import FBX включите опцию Merge Static Meshes. В противном случае LOD будут импортированы как отдельные меши, а не как поверхности одного меша.
- Import the model.Импортируйте модель.
If you select the imported FBX, its content will be previewed in the Hierarchy section of the Parameters window.Если вы выберете импортированный FBX, его содержимое будет предварительно просмотрено в разделе Hierarchy окна Parameters.
Step 3. Add a Model to the WorldШаг 3. Добавление модели в сцену#
Add an exported model into the world as described here. By default, all surfaces (LODs) are visible at the same time:Добавьте экспортированную модель в мир как описано здесь . По умолчанию все поверхности (LOD) видны одновременно:
The surfaces of the exported model that represent LODs can be found in the Node tab of the Parameters window:Поверхности экспортированной модели, представляющие уровни детализации, можно найти на вкладке Node окна Parameters:
Step 4. Set Up LODsШаг 4. Настройте LOD#
This section explains how to set up LODs of the mesh to smoothly switch a high detailed LOD to a low detailed when the camera begins to move away from the mesh. LOD surfaces have 3 parameters:В этом разделе объясняется, как настроить LOD мешей, чтобы плавно переключать LOD с высокой детализацией на низкую, когда камера начинает удаляться. Поверхности LOD имеют 3 параметра:
Дистанции видимости и перехода
For each LOD surface, you should specify a visibility distance and a fade distance. For setting up the LOD surfaces, do the following:Для каждой поверхности LOD вы должны указать дистанцию видимости и дистанцию перехода. Для настройки поверхностей LOD выполните следующие действия:
- Open the World Hierarchy window, and choose the added node.Откройте окно World Hierarchy и выберите добавленную ноу.
-
In the Surfaces group of the Node tab (the Parameters window), choose the first LOD surface:В группе Surfaces вкладки Node (окно Parameters) выберите первую поверхность LOD :
- Set its Maximum Visibility distance to 5. It means that when the camera is 5 units away from mesh, the first LOD surfaces won't be visible.Установите его расстояние Maximum Visibility на 5. Это означает, что когда камера находится на расстоянии 5 единиц от меша, первые поверхности LOD не будут видны.
- Leave the Minimum Visibility distance at -inf. It means that no matter how close the camera comes to the mesh, the surfaces will still be visible.Оставьте расстояние Minimum Visibility равным -inf. Это означает, что как бы близко камера не подходила к мешу, поверхности все равно будут видны.
- Set the Maximum Fade distance to 10 units. It will extend the distance over which the LOD surfaces are still visible and provide smooth fading.Установите расстояние Maximum Fade на 10 единиц. Это увеличит расстояние, на котором поверхности LOD все еще видны, и обеспечит плавный переход.
You can disable other LOD surfaces to see the result of the current LOD surface settings.Вы можете отключить другие поверхности LOD, чтобы увидеть результат текущих настроек поверхности LOD. -
Choose the second LOD surfaces and:Выберите поверхности второго LOD-а и:
- Set the Minimum Visibility distance of the second LOD surfaces to start exactly where the Maximum Visible distance of the first LOD surfaces ends: at 5 units. It means that when the first LOD surfaces begin to fade out, the second LOD surfaces will be shown.Установите расстояние Minimum Visibility вторых поверхностей LOD, чтобы оно начиналось точно там, где заканчивается расстояние Maximum Visible первых поверхностей LOD: в единицах 5. Это означает, что когда первые поверхности LOD начнут исчезать, будут показаны поверхности второго LOD-а.
- Set the Maximum Visibility distance at 30 units. After 30 units, the second LOD surfaces begin to fade out and the third LOD surfaces will be shown.Установите расстояние Maximum Visibility на 30 единиц. После 30 единиц поверхности второго LOD-а начинают исчезать, и будут отображаться поверхности третьего LOD-а.
- Set the Minimum Fade distance to 10 units. After 5 up to 15 units, the second LOD surfaces will smoothly fade in.Установите расстояние Minimum Fade на 10 единиц. После 5-15 юнитов поверхность второго уровня детализации плавно исчезнет.
- Set the Maximum Fade distance to 20 units. After 30 up to 50 units, the second LOD surfaces will smoothly fade out.Установите расстояние Maximum Fade на 20 единиц. После 30-50 юнитов второй уровень детализации плавно исчезнет.
- Choose the third LOD surfaces and:
- Set the Minimum Visibility distance to 30 units. It means that when the second LOD surfaces begin to disappear, the third LOD surfaces will be shown.Set the Minimum Visibility distance to 30 units. It means that when the second LOD surfaces begin to disappear, the third LOD surfaces will be shown.
- Set the Maximum Visibility distance at 300 units. After 300 units the third LOD surfaces totally disappear.Set the Maximum Visibility distance at 300 units. After 300 units the third LOD surfaces totally disappear.
- Set the Minimum Fade distance to 20 units. The third LOD surfaces will start to smoothly fade in from 30 to 50 units.Set the Minimum Fade distance to 20 units. The third LOD surfaces will start to smoothly fade in from 30 to 50 units.
-
Set the Maximum Fade distance to 50 units. After 300 units, the mesh will begin to smoothly fade out.Set the Maximum Fade distance to 50 units. After 300 units, the mesh will begin to smoothly fade out.
If you want to leave the last LOD surface always visible, set the Maximum Visibility distance to inf.If you want to leave the last LOD surface always visible, set the Maximum Visibility distance to inf.
- Set the Minimum Visibility distance to 30 units. It means that when the second LOD surfaces begin to disappear, the third LOD surfaces will be shown.Установите расстояние Minimum Visibility на 30 единиц. Это означает, что когда поверхности второго LOD-а начнут исчезать, будут показаны поверхности третьего LOD-а.
- Set the Maximum Visibility distance at 300 units. After 300 units the third LOD surfaces totally disappear.Установите расстояние Maximum Visibility в единицах 300. После 300 единиц поверхности третьего LOD-а полностью исчезают.
- Set the Minimum Fade distance to 20 units. The third LOD surfaces will start to smoothly fade in from 30 to 50 units.Установите расстояние Minimum Fade на 20 единиц. Поверхности третьего уровня детализации начнут плавно увеличиваться с 30 до 50 единиц.
-
Set the Maximum Fade distance to 50 units. After 300 units, the mesh will begin to smoothly fade out.Установите расстояние Maximum Fadeна 50 единиц. После 300 единиц меш начнет плавно исчезать.
If you want to leave the last LOD surface always visible, set the Maximum Visibility distance to inf.Если вы хотите, чтобы последняя поверхность LOD всегда была видимой, установите для параметра «Максимальное расстояние видимости» значение inf.
You should specify the same settings for each surface of the same LOD (if any). Different surfaces from one level of details should have the same settings to appear and disappear simultaneously.Вы должны указать одинаковые настройки для каждой поверхности одного и того же LOD (если есть). Разные поверхности одного уровня детализации должны иметь одинаковые настройки, чтобы появляться и исчезать одновременно.
Minimum and Maximum ParentsMin Parent и Max Parent#
Another important parameters of the LODs are Min Parent and Max Parent.Другими важными параметрами LOD являются Min Parent and Max Parent.
These parameters enable you to specify to which surface or node up in the hierarchy the minimum and maximum visibility distances will be measured. Use the default values of 1. In this case, all surfaces of the mesh will be switched simultaneously, because their distances will be measured not to surfaces themselves, but to the bounding box of the whole mesh.Эти параметры позволяют указать, до какой поверхности или ноды вверху в иерархии будут измеряться минимальное и максимальное расстояния видимости. Используйте значения по умолчанию 1. В этом случае все поверхности меша будут переключаться одновременно, т.к. их расстояния будут измеряться не до самих поверхностей, а до ограничивающего прямоугольника всего меша.
Read here about these parameters.Подробнее об этих параметрах можно прочитать здесь.