|
| |||
|
| |||
| |
Здравствуйте. Вы находитесь на сайте Unreal Level. Данный ресурс посвящен редакторам карт игр серии Unreal, UT и Gears of War. Основная цель сайта , помочь всем желающим освоить любой из редакторов вышеперечисленных серий. Наибольшим приоритетом на этом сайте, обладает редактор UnrealED for Unreal Engine 3 и редактор движка Unreal Engine 3.5, входящий в комплект разработки UDK, поскольку это наиболее актуальная на сегодняшний день технология. |
|
Terrain Heightmaps
автор: FACH | 5 Июля 2010 | Просмотров: 4855
Автор: Дэвид Грин
Обзор ланшафта
Unreal Engine 3 поддерживает 2 метода создания: вручную - непосредственно на меше ландшафта, “вручную” создаются холмы и овраги; или импортом в UnrealEd заранее созданной внешними инструментами файла карты высот ландшафта, формата G16 bitmap или T3D меш.
Ландшафт - по существу, 3D объект – плоский меш, с постоянным интервалом между вершинами X.Y, который определен свойствами Display.DrawScale и Display.DrawScale3D.X/.Y. Поскольку ландшафт использует постоянный интервал X.Y, оптимизация сетки – уменьшение числа треугольников, путем объединения соседних граней одной плоскости - не поддерживается, так у ландшафта 128x128 основная карта высот всегда будет массивом 129x129. Постоянный интервал X.Y также означает, что географические системы, такие как пещеры и навесы, не могут быть созданы непосредственно на объекте ландшафта и должны быть добавлены как дополнительные меши, помещенные на сцену. Постоянный интервал X.Y, к тому же, определяет максимальный угол наклона, который может быть создан для данной относительной высоты между двумя вершинами: чем мельче сетка (меньше DrawScale) тем круче доступный наклон. Для отвесных склонов, необходимо использовать StaticMeshes, вместо того чтобы пытаться использовать ландшафт с очень высокой плотностью.
Значение координата Z каждой вершины сетки ландшафта, для указания ее относительной высоты, может быть установлено в пределах 16-разрядного диапазона (от 0 до 65535). Эти значения обычно изменяться, или путем “рисования” на меше ландшафта в Unreal Editor-е, или при импортировании файла карты высоты, который содержит высотные значения для вершин меша ландшафта.
Система ландшафта включает опциональную оптимизацию рендеринга, которая использует динамическую тесселяцию LOD, чтобы сократить количество отрендериных треугольников на расстоянии. На указанных расстояниях от камеры четырехугольники ландшафта будут объединены, чтобы сократить количество отрендериных треугольников.
Обзор карт высот
Карта высот ландшафта это x*y массив значений высоты для каждой вершины меша ландшафта. Обычно, в дизайне игр используется карта высот с квадратной сеткой и размером “power-of-two” +1 (степень двойки +1), таким как 129x129 или 257x257. Каждое значение в массиве карты высоты непосредственно соответствует значению Z (высота) вершины в конечном объекте меша ландшафта.
Для визуализации карты высот, рассмотрим черно-белое(grayscale) растровое изображение, где пиксели более темного серого - более низкие высоты, а более светлый серый - более высокие высоты. Чаще всего диапазон значений карты высот ландшафта 16 битный и поддерживает диапазон высот от 0 до 65535. Поскольку стандартные графические редакторы, видеокарты и ЭЛТ / ЖКИ мониторы могут отображать только 8 бит оттенков серого, а не 16-бит, было разработано специальное ПО для создания и редактировании карт высот.
Создание карт высот
Карты высот могут быть получены или созданы с помощью ряда методов, наиболее распространенными являются DEMS - Digital Elevation Model information (Цифровая Высотная Модель), которая являются файлами данных реального планетарного ландшафта, собранного самолетами, спутниками или космическим кораблем; или алгоритмически сгенерирована на компьютере с помощью специализированного ПО, такого как HMES, Leveller, Terragen, World Machine и т.п. Для получения дополнительной информации по созданию карты высот из DEMS, см. этот документ (http://udn.epicgames.com/Three/TerrainsFromDEMs.html).
Самый распространенный формат файлов алгоритмически созданных карт высот для UnrealEd - это Raw 16 бит, который поддерживает большинство ПО, по созданию карт высот, в том числе и упомянутый ранее. Raw 16 является простым бинарным файлом, который содержит необработанные 16-разрядные высотные данные, как x*y поток. Родной формат карты высот Unreal Editor-а называется G16, поэтому необходим конвертор из Raw-16 в G16, если программы создания карт высот не поддерживает G16. Есть несколько программ для конвертации в G16, к примеру, G16Ed и HMCS.
Возможности и способы создания карт высот варьируется в зависимости от каждого приложения, и не будут подробно рассмотрены в этом уроке. Снятие карт высот с ландшафта, сделанного в 3DsMax, описано в уроке ниже.
Разрешение карт высот
Карта высот должна быть создана с разрешение равным - желаемое количество клеток (patch) ландшафта + 1. Другими словами, 128x128 ландшафт требует карту высот 129x129; 256x256, ландшафт требует карту высот 257x257. Число клеток ландшафта определено в свойствах actor-а ландшафта Terrain.NumPatchesX и Terrain.NumPatchesY.
Если карта ландшафта импортирована в actor ландшафта и Terrain.NumPatches не соответствует разрешению карты высоты, произойдет следующие: * Если разрешение карты высоты больше Terrain.NumPatches actor-а ландшафта, например, импортируя карту высоты 257x257 в существующий ландшафт 128x128, размер ландшафта будет приведен в соответствие с разрешением импортируемой карты высоты. * Если разрешение карты высоты меньше Terrain.NumPatches actor-а ландшафта, например, импортируя карту высоты 128x128 в существующий ландшафт 128x128, два края ландшафта останутся на высоте равный 0, в результате чего получим ребра вдоль верхней и правой стороны, как показано на этом рисунке:
Некоторое программы создания карт высот поддерживают размеры карт высот равные только “power-of-two” (степени двух), такие как 128 или 256, и не поддерживают необходимые нам размеры “power-of-two”+1 (степени двух +1), такие как 129 или 257. Эти карты высот всегда будут импортировать две ребристые стороны, как было упомянуто ранее. Есть два метода, чтобы исправить эту проблему, либо вручную редактировать ландшафт в UnrealEd, используя инструмент Flatten (Выровнять) вдоль этих двух краев (это может занять достаточно много времени), либо преобразовать в формат совместимый с графическими редакторами, такой как TIF 16, и отредактировать по краям при помощи копирования/вставки (copy/paste) крайних (нижней и правого) строки и столбца пикселей увеличив размер с “power-of-two”(степени двух) до “power-of-two”+1 (степени двух +1).
Конвертация карт высот
Файлы карт высот должны быть сохранены или преобразованы в форматы G16 или T3D, перед тем как будут импортированы в UnrealEd. Если программы создания карт высот не поддерживают формат G16, но могут экспортировать в RAW-16 или аналогичные форматы, такие как формат Terragen-а «*.ter», файлы могут быть конвертированы при помощи таких инструментов, как G16Ed или HMCS.
Например, этот ландшафт сохранен в RAW-16, и центрирован по высоте Z, чтобы выровнять по центру ландшафт в пределах 16-разрядного диапазона высот. Так как эта карта высот 256х256, а не нужного нам размера 257х257, то она должна быть конвертирована в TIF-16 и отредактирована в графическом редакторе, который поддерживает 16 битное черно-белое (grayscale) изображение, что бы расширить нижнюю и правую сторону на 1 пиксель, чтобы это был нужный размер 257x257. Повторно сохраняем как TIF-16, а затем преобразовываем снова в G16.
![]()
Отметьте, что импортируемая в UE3 карта высот, ориентирована так, чтобы actor ландшафта был в верхнем левом углу карты высот, меш имеет положительное направление Х вдоль верхней кромки (влево) карты высот, а положительное направление Y соответствует направлению вниз карты высот.
Импорт карт высот
Это шаги для того, чтобы создать новый ландшафт и импортировать карты высот:
Примечание: Для автоматического создания на карте нового actor-а ландшафта (Terrain actor) в процессе импорта, пропустите шаги 1 и 2, а на шаге 4 не ставьте галку на "Into Current" (В текущий).
1. Поместите на карту actor ландшафта.
2. Установите его свойства Terrain.NumPatchesX и Terrain.NumPatchesY равными размеру созданной карты высот (в формате G16) -1. То есть, если размер карты высот = 129х129, то значения NumPatches = 128.
3. Поместите DirectionalLight для имитации солнечного света. Установите Movement.Rotation.Pitch = -45 градусов и Movement.Rotation.Yaw = 45 градусов.
4. Перейдите в режим редактирования ландшафта (Terrain Edit), для этого откройте диалоговое окно Terrain Edit (http://unreal-level.ru/39-terrain-sozdanie-i-rabota-s-landshaftom.html). * Если на карте есть больше чем один ландшафт, не забудьте выбрать в группе View Settings (Настройки просмотра) из выпадающего списка Terrain (Ландшафт) Ваш ландшафт. По умолчанию первый actor ландшафта "Terrain_0". * В группе Import/Export, установите галки на "Height Map Only?"(Только Высотная Карта?) и "Into Current" (В текущий), выберите пункт "G16BMPT3D" в выпадающем списке, поскольку мы импортируем файл формата G16, затем нажмите кнопку Import. Найдите внешний файл G16 карты высот в диалоговом окне и откройте его. Если нет никаких проблем с файлом карты высот, таких как, неверный формат, то карта высот будет загружена в ландшафт. Область просмотра должна автоматически обновиться и отобразить ландшафт с новой формой поверхности, соответствующей карте высот.
5. При необходимости, в Terrain Properties (Свойства Ландшафта) настройте значения Display.DrawScale3D.X, .Y и .Z, чтобы получить правильно отмасштабированный ландшафт.
Обратите внимание, что импорт и перезапись существующей карты высот ландшафта сбрасывает все значения Terrain Editing для "Visibility" (Видимость) и, в свою очередь, у ребер треугольников значение "Orientation Flip" (Зеркальное отражение) сбрасывается в значение по умолчанию для всех четырехугольников и ребер. Другими словами, любые четырехугольники, которые были установлены невидимые или края, которых были отражены, сбрасываются назад к их нормальному состоянию, когда карта высот импортирована из файла и записана поверх существующей в actor-е ландшафта.
Фиксация ориентации ребер ландшафта
Импорт карт высот часто демонстрируют визуальные аномалии, когда ребро между сопряженными треугольниками одного четырехугольника перпендикулярны ребру хребта или впадины, что снижают качество рендера поверхности. Аномалии проявляются в виде "зубов" вдоль хребтов или впадин, которые расположены под углом 45 градусов к мешу ландшафта.
Обычно очень просто разгладить "зубы" на этих хребтах и впадинах, для этого необходимо повернуть треугольники до применения текстурного слоя ландшафта. Установите Terrain.MaxTesselationLevel и Terrain.MinTesselationLevel в 1 и ищите "зубы" на хребтах и впадинах, которые легко узнаваемы по форме их теней, а затем разверните/сгладьте их с помощью инструмента "Orientation Flip" из окна Terrain Edit пока не выровняются тени. #1 написал: mostovik 9 Июля 2010 12:38 | ICQ: 402765999 |
#2 написал: ScarsSoul 9 Июля 2010 12:54 | ICQ: Не Указано |
#3 написал: FACH 9 Июля 2010 14:12 | ICQ: 562039160 |
Информация
Посетители, находящиеся в группе Гости, не могут оставлять Комментарии в данной новости...
|
|
|
При копировании материалов, активная ссылка на UNREAL-LEVEL.RU обязательна! © 2008—2012, UNREAL-LEVEL.RU. Все права защищены. |