Настройка пользовательских материалов для зданий и их параметры
В этой статье рассматриваются основные концепции композиции здания, чтобы дать более глубокое понимание того, как должны быть подготовлены ассеты.
Смотрите также#
- Пример создания объекта Building
- Filter parameters description
- Дополнение Procedural Generation Assets, содержащее готовые к использованию материалы и текстуры для настройки зданий
Основные понятия#
В целях создания зданий мы проводим различие между следующими двумя типами зданий:
- Одноэтажные здания, имеющие только один этаж
- Многоэтажные здания, имеющие два или более этажей
- Underground Basement — это часть подвала, которая опускается ниже уровня местности. Эта часть требуется, когда здание создается на неровной местности и в противном случае частично зависало бы над землей. Его высота регулируется значением Underground Basement Height и по умолчанию составляет 3 метра ниже уровня местности.
- Высота Basement определяется значением Basement Height и по умолчанию составляет 0.7 метра над уровнем моря.
- Высота Ground Floor определяется значением Row Size и по умолчанию составляет 3 метра.
- В случае одноэтажных зданий для верхних этажей текстуры не нужны, а вот текстура для подвала обязательна, поскольку к ней привязаны все остальные текстуры в наборе.
Текстурирование зданий#
UNIGINE предоставляет набор встроенных материалов для сгенерированных зданий: они наследуются от mesh_base и именуются в соответствии с правилами. Вы также можете создавать свои собственные текстуры и настраивать материалы. Однако ваши текстуры должны соответствовать набору требований, описанных ниже.
Для здания следует подготовить четыре типа текстур: текстуру для подвала, текстуру для стены с окнами (а иногда и дверями), текстуру для сплошной стены и текстуру для крыши. UV-развертка каждой части здания зависит от размера сегмента стены, который показан на текстуре.
-
Для Underground Basement и Basement применяется своя текстура стены. Высота текстуры соответствует высоте обеих этих частей (в сумме), и текстура растягивается вертикально, чтобы соответствовать этой части здания.
Текстура для Underground Basement и Basement -
Для Ground Floor применяется своя текстура. Высота текстуры соответствует высоте этажа и применяется к зданию, используя значение Row Size.
Текстура с окнами для Ground FloorСплошная текстура для Ground Floor -
Для Upper Floors также применяется своя текстура с окнами.
Текстура с окнами для Upper FloorsСплошная текстура для Upper FloorsЕсть два параметра — Rows per Texture и Columns per Texture — которые формируют сетку для этой текстуры.
Текстура для верхних этажей с окнами применяется везде, где это возможно, вдоль стены от первого этажа вверх и от центра к углам здания по горизонтали и вырезается в соответствии с этими воображаемыми линиями сетки, создавая единую поверхность. Оставшееся с краев пространство заполняется из сплошной текстуры и образует другую поверхность.
-
Для Roof следует применить две текстуры — для крыши и коньков. Коньки используются для перекрытия соединения двух плоскостей крыши.
Текстура крышиТекстура конькаМатериал крыши можно использовать как есть или изменить цвет на основе данных снимков. Включение соответствующей опции позволяет умножить альбедо материала на цвет, взятый из снимков.
Наименование материалов#
Чтобы материалы правильно применялись к созданным в Sandworm зданиям, следуйте этим правилам:
-
Определите префикс, который будет использоваться группой материалов, применяемых к стенам (подвал, цокольный этаж и верхние этажи).
Вы можете использовать значение материала из исходных данных в качестве префикса материала. В этом случае материал будет автоматически применен ко всем зданиям, которым присвоено это значение.
Материалы крыши также могут использовать ключевое значение из исходных данных в качестве префикса. В этом случае материал будет автоматически применяться ко всем крышам, которым присвоено это значение.
Если ваши исходные данные не содержат данных, которые можно использовать, можно выбрать произвольное имя.
-
В материалах зданий должны использоваться следующие постфиксы имен:
- *_basement_sw — материал для цоколя и подпольного подвала, обязательный материал, к которому привязаны другие материалы, кроме крыш.
- *_ground_sw — материал стены Ground Floor без дверей и окон
- *_ground_windows_sw — материал стены Ground Floor с дверями и окнами
- *_upper_sw — материал стены Upper Floors с дверями и окнами
- *_upper_windows_sw — материал стены Upper Floors без дверей и окон
- *_ridge_face_sw — материал верхней части стены, который применяется непосредственно под крышей. Этот тип материала используется только с плоскими крышами.
- *_roof_sw — материал крыши
- *_ridges_sw — материал коньков, соединяющих секции крыши
Базовый набор материалов зданий доступен в папке /core/materials/buildings/.
Пример наименования#
Давайте предположим, что у нас есть область со зданиями, которые могут быть сделаны из кирпича или дерева. Если мы используем данные OSM с их специальными наименованиями, мы должны использовать следующие префиксы для материалов зданий:
Здание | Значение OSM | Имя материала |
---|---|---|
из кирпича | brick |
brick_basement_sw.mat brick_ground_sw.mat brick_ground_windows_sw.mat brick_upper_sw.mat brick_upper_windows_sw.mat brick_ridge_face_sw.mat |
из дерева | wood |
wood_basement_sw.mat wood_ground_sw.mat wood_ground_windows_sw.mat wood_upper_sw.mat wood_upper_windows_sw.mat wood_ridge_face_sw.mat |
Затем крыши этих зданий могут быть покрыты черепицей, металлом или бетоном. В соответствии с OSM наименованиями материалов крыши, нужно назвать материалы крыши следующим образом:
Крыша | Значение OSM | Имя материала |
---|---|---|
из черепицы | roof_tiles |
roof_tiles_roof_sw.mat roof_tiles_ridges_sw.mat |
из металла | metal |
metal_roof_sw.mat metal_ridges_sw.mat |
из бетона | concrete |
concrete_roof_sw.mat concrete_ridges_sw.mat |
Параметры#
Доступны следующие параметры для генерации объекта Buildings:
Generation Mode | Режим генерации зданий. Есть два варианта:
|
---|---|
Base Material Attributes |
Название столбца в таблице атрибутов исходных данных, в котором указан материал здания. По умолчанию используется соответствующее ключевое значение OpenStreetMap. При необходимости вы можете заменить его или добавить другое ключевое значение, используя запятую. |
Roof Type Attributes |
Название столбца в таблице атрибутов исходных данных, в котором указана форма крыши. По умолчанию используется соответствующее ключевое значение OpenStreetMap. При необходимости вы можете заменить его или добавить другое ключевое значение, используя запятую. |
Roof Height Attributes |
Название столбца в таблице атрибутов исходных данных, в котором указана высота крыши. По умолчанию используется соответствующее ключевое значение OpenStreetMap. При необходимости вы можете заменить его или добавить другое ключевое значение, используя запятую. |
Roof Unit Size (m) | Размер стороны квадратной области, на которую применяется текстура (т.е. один тайл). |
Use Imagery Color | Если этот параметр отключен, используется цвет материала крыши. Если включен, в качестве цвета крыши используется цвет из источника Imagery. Чтобы использовать цвет изображения, материал крыши должен иметь включенное состояние Vertex Color со значением RGB для Vertex Color Albedo. |
Roof Material Attributes |
Название столбца в таблице атрибутов исходных данных, в котором указан материал кровли. По умолчанию используется соответствующее ключевое значение OpenStreetMap. При необходимости вы можете заменить его или добавить другое ключевое значение, используя запятую. |
Split Length (km) |
Размер ячейки сетки, на которую будет разделена сгенерированная геометрия. Геометрия каждой ячейки представлена в виде отдельного объекта ObjectMeshStatic. Если указанное значение превышает или равно размеру Export Area, будет сгенерирован один Static Mesh. Например, если вы укажете 100 и будете иметь площадь 1000x1000 км, здания будут сгенерированы как 10 отдельных объектов Static Mesh размером 100x100 км каждый. |
Min Visibility | Минимальное расстояние видимости от камеры, на котором сгенерированные объекты (ObjectMeshStatic) начинают появляться на экране. По умолчанию это значение равно -inf. |
Max Visibility | Максимальное расстояние видимости, на котором сгенерированные объекты (ObjectMeshStatic) больше не видны полностью: они могут либо полностью исчезнуть, либо начать исчезать. По умолчанию это значение равно inf. |
Min Fade | Минимальное расстояние плавного появления, на котором сгенерированные объекты (ObjectMeshStatic) плавно появляются до тех пор, пока они не станут полностью видимыми. На этом расстоянии движок автоматически интерполирует уровень детализации от Alpha 0.0 (полностью невидимый) до 1.0 (полностью видимый). Плавное появление начинается, когда камера достигает минимального расстояния видимости и переходит в диапазон видимости. |
Max Fade | Максимальное расстояние плавного исчезновения, на котором сгенерированные объекты (ObjectMeshStatic) плавно исчезают до тех пор, пока они не станут полностью невидимыми. Плавное исчезновение начинается, когда камера достигает максимального расстояния видимости и выходит за пределы диапазона видимости. |
В дополнение к основным параметрам, которые доступны для автоматической генерации (Auto), следующие параметры становятся доступными в режиме генерации Manual:
Базовые параметры:
Базовые параметры точно настраивают внешний вид стен здания. |
|||||||||
Base Material Distribution |
|
||||||||
---|---|---|---|---|---|---|---|---|---|
Random Material List | Список материалов, которые будут применены к сгенерированным зданиям. Отображается только базовый материал (*_basement) каждой группы. Другие материалы из этой группы используются благодаря префиксу, который должен быть одинаковым для всех материалов группы. Цифра справа от каждого материала указывает частоту его использования. Переключатель слева от каждого материала позволяет включать / отключать его. | ||||||||
Column Size (m) | Ширина одного столбца текстуры, в метрах. Ячейка текстуры сопоставляется с этой шириной на стене здания. | ||||||||
Columns per Texture | Количество столбцов в одной текстуре. Это значение позволяет сформировать сетку для более точного отображения текстуры. Текстура, нанесенная на стены выше первого этажа, разделена на сетку, чтобы ее можно было правильно вырезать, избегая таких визуальных артефактов, как часть окна. | ||||||||
Row Size (m) | Высота одного ряда, в метрах. На самом деле, это высота этажа. Ячейка текстуры сопоставляется с этой высотой на стене здания. | ||||||||
Rows per Texture | Количество рядов в одной текстуре. Это значение позволяет сформировать сетку для более точного отображения текстуры. Текстура, применяемая к стенам выше первого этажа, разделяется на сетку, чтобы ее можно было корректно нарезать, избегая таких визуальных артефактов, как часть окна. | ||||||||
Floor Number |
|
||||||||
Floor Number Range | Минимальное и максимальное значения количества этажей. Случайное значение из этого диапазона будет использоваться для определения этажности здания, если данные недоступны или для Floor Number выбрано значение Random. | ||||||||
Параметры крыши:
Параметры крыши позволяют точно настроить внешний вид крыш. |
|||||||||
Roof Type Distribution |
|
||||||||
Roof Type | Тип крыши с множителем вероятности. Доступны следующие типы крыш:
Вы можете удалить типы крыш, которые не требуются, чтобы исключить их вообще. Вы можете добавить ранее удаленный тип, нажав кнопку и выбрав его в раскрывающемся окне. Если один и тот же тип крыши задан более одного раза, будет учитываться значение, которое ближе к низу окна настроек. Если форма здания на виде сверху отличается от прямоугольной, оно будет сгенерировано с плоской крышей. Другие типы крыш недоступны для таких зданий. |
||||||||
Roof Height Distribution |
|
||||||||
Roof Type Height | Диапазон высот (минимальная и максимально возможная высота) соответствующего типа крыши. При необходимости из этого диапазона берется случайное значение. Значение высоты для плоской крыши определяет высоту парапета крыши. Если один и тот же тип крыши задан более одного раза, будет учитываться значение, которое ближе к низу окна настроек. |
||||||||
Roof Material Distribution | |||||||||
Roof Type Material | Материал, установленный для соответствующего типа крыши. Вы можете включить или отключить материалы, чтобы избежать неправильного использования материала для неподходящего типа крыши, например, отключить черепицу для плоских крыш, потому что это неправдоподобно.
Если один и тот же тип крыши задан более одного раза, будет учитываться значение, которое ближе к низу окна настроек. |
||||||||
Общие параметры:
Общие параметры позволяют точно настроить внешний вид подвала, видимость зданий и разделение объекта зданий на сектора. |
|||||||||
Underground Basement Height (m) | Высота подземной части подвала. Используется для неровных ландшафтов, где здания частично нависают над землей. Значение по умолчанию - 3 метра. Вы можете установить значение 0.7, если вам не требуется, чтобы подземная часть отображалась. | ||||||||
Basement Height (m) | Высота подвала над ландшафтом. Значение по умолчанию равно 3 метра. Вы можете установить значение 0, если вам не требуется, чтобы эта часть отображалась. |