|
| |||
|
| |||
| |
Здравствуйте. Вы находитесь на сайте Unreal Level. Данный ресурс посвящен редакторам карт игр серии Unreal, UT и Gears of War. Основная цель сайта , помочь всем желающим освоить любой из редакторов вышеперечисленных серий. Наибольшим приоритетом на этом сайте, обладает редактор UnrealED for Unreal Engine 3 и редактор движка Unreal Engine 3.5, входящий в комплект разработки UDK, поскольку это наиболее актуальная на сегодняшний день технология. |
|
Using Terrain
автор: FACH | 2 Апреля 2010 | Просмотров: 3223
Автор: Скот Шерман
Краткий обзор Ландшафта.
Ландшафт был изменен на систему, в которой сокращается часть сетки при отдалении от нее – называется тесселяция. Это позволяет разработчику, имея контроль над сокращением частей, управлять количеством вершин в реальном времени.
Свойства Ландшафта.
NumPatchesX и NumPatchesY.
NumPatchesX - количество клеток в строке ландшафта. NumPatchesY - количество клеток в столбце ландшафта. Заметим, что если Вы делаете эти значения меньше, будут уничтожены height-map/alpha-map данные. Если Вы увеличите размер, он просто заполняет новые данные height-map/alpha-map нулями. Полный размер ландшафта может быть определен по следующим формулам: SizeX = NumPatchesX * DrawScale * DrawScale3D.X SizeY = NumPatchesY * DrawScale * DrawScale3D.Y
MaxTesselationLevel.
Это - максимальное число клеток (строка и столбец), которые будут сокращены в один четырехугольник, когда произойдет тесселяция из частей. Должно быть степенью двойки, 1 <= MaxTesselationLevel <= 16. Обратите внимание, что это означает, что значения, используемые для NumPatchesX и NumPatchesY должны быть кратны MaxTesselationLevel. Рассмотрим пример: Имеем ландшафт 16х8 NumPatchesX = 16 и NumPatchesY = 8, MaxTesselationLevel = 8 (MinTesselationLevel=1) – получаем 4 уровня тесселяции (8, 4, 2, 1).
MinTessellationLevel.
Это - минимальное число клеток (строка и столбец), которые будут сокращены, когда произойдет тесселяция из частей.
MaxComponentSize.*
Для движка, ландшафт разбивается на части с максимальным размером (MaxNumPatches, MaxNumPatches) клеток - названые компонентами рендера. MaxNumPatches = MaxTesselationLevel * MaxComponentSize MaxComponentSize - максимальное число детесселированных (при 1 уровне тесселяции) клеток в одной строке/столбце компонента ландшафта. Как правило, все компоненты будут квадратными со стороной MaxNumPatches, но на ландшафтах с разрешением клеток, которое не является множителем MaxNumPatches, будут некоторые компоненты вдоль краев, которые меньше. Значение MaxComponentSize ограничено MaxTesselationLevel-ом, чтобы предохранить буфер вершин при полной тесселяции компонента от того, чтобы быть > 65536 вершин. Для MaxTesselationLevel =16, MaxComponentSize <= 15. Для MaxTesselationLevel =8, MaxComponentSize <= 31. Просмотр MaxComponentSize - чтобы увидеть размеры компонентов на ландшафте, проверьте галку в меню проекции Viewport option -> Show -> Terrain Patches. Когда включено, на ландшафте будут показаны желтые прямоугольники вокруг каждого компонента ландшафта.
Каждый компонент ландшафта – отдельно вызывает DrawMesh. В зависимости от применяемых материалов, слоев, уровня тесселяции, у разных компонентов ландшафта будет разная производительность. Если какой-то слой наносится на один компонент ландшафта, другие компоненты не затрагиваются. Обратите внимание, что это довольно трудно увидеть, когда слой на самом деле 'проливается' в соседний компонент. Оверлей выделения, выставленный через браузер ландшафта или окно свойств - отличное определение таких случаев. MaxComponentSize указывает число четырехугольников, которые будут содержаться в одном экземпляре класса UTerrainComponent – чем выше число, тем меньше 'подчастей' ландшафта. NumSectionsX = ((NumPatchesX / MaxTesselationLevel) + MaxComponentSize - 1) / MaxComponentSize NumSectionsY = ((NumPatchesY / MaxTesselationLevel) + MaxComponentSize - 1) / MaxComponentSize
EditorTessellationLevel.
Это – визуальный помощник, который используется только в редакторе. Позволяет разработчикам выбирать уровень тесселяции, чтобы рассмотреть ландшафт во всех вьюпортах редактора. Когда введен 1 - будет отображен самый низкий уровень детализации. Значение должно быть степенью двойки, и 1 <= EditorTessellationLevel <= MaxTesselationLevel. Когда установлен в 0, тесселяция будет производиться по алгоритмам, применяемым во время игры. (ОТМЕТЬТЕ: в PIE (Play in Editor), это значение будет влиять на отображаемый ландшафт.)
NormalMapLayer.
Это индекс для выбора отдельных слоев карты нормалей, как карты нормалей, которая должна применяться ко всему ландшафту. Если будет -1, то ландшафт компилирует свойства нормалей по-старому (все нормальные карты, смешивает вместе). Если это будет действительный индекс в массиве слоев, то компилируется свойства нормалей только для материала (ов), содержавшегося в указанном слое.
TesselationDistanceScale.
Масштабирует значение расстояния, которое используется при определении уровня тесселяции. Чем выше значение, тем ближе произойдет тесселяция. TessellationLevel = НекотораяФункция((Растояние от клетки да камеры) * TesselationDistanceScale).
bMorphingEnabled.
Указывает на то, что ландшафт должен подвергнуться морфингу вершин при смене уровня тесселяции. Хотя визуально это смотрится красиво, однако влияет на производительность не в лучшую сторону.
bMorphingGradientsEnabled.
Указывает на то, что кроме морфинга высот, необходим и морфинг градиента (bMorphingEnabled должен быть включен). Эффекты этой опции были не очень примечательны на тестовых картах, таким образом, это было сделано вторичной опцией. Этот режим больше влияет на производительность, чем стандартная трансформация.
Lighting
StaticLightingResolution и bIsOverridingLightResolution
Это число пикселей / размер клетки для статических теневых карт. Отдельная теневая карта используется для каждого компонента ландшафта, размер которого может быть до (MaxComponentSize * StaticLightingResolution + 1) пикселей на стороне. Если bIsOverridingLightResolution не установлен, он должен быть степенью двойки, 1 <= StaticLightingResolution <= MaxTesselationLevel. Если он включен, он должен быть степенью двойки, 1 <= StaticLightingResolution <= # # #.
bEnableSpecular.
Когда включено, зеркальное освещение (specular lighting) применяется для ландшафта. Когда выключено (значение по умолчанию), зеркальное освещение будет заблокировано и для динамического и для статического освещения.
Collision.
CollisionTesselationLevel.
Это - уровень тесселяции, чтобы использовать, выполняя вычисления коллизии. Значение должно быть степенью двойки, 1 <= CollisionTesselationLevel <= MaxTesselationLevel. Таким образом, значение 1 будет использовать низкий уровень тесселяции (наименьшая детализация). Значение MaxTesselationLevel использовало бы полностью детальную сеть, как данные для коллизии. #1 написал: FACH 2 Апреля 2010 21:51 | ICQ: 562039160 |
#2 написал: NEBO 3 Апреля 2010 12:15 | ICQ: 289373990 |
#3 написал: FACH 3 Апреля 2010 12:34 | ICQ: 562039160 |
#4 написал: DeMoon 6 Апреля 2010 09:44 | ICQ: Не Указано |
#5 написал: FACH 6 Апреля 2010 18:12 | ICQ: 562039160 |
Информация
Посетители, находящиеся в группе Гости, не могут оставлять Комментарии в данной новости...
|
|
|
При копировании материалов, активная ссылка на UNREAL-LEVEL.RU обязательна! © 2008—2012, UNREAL-LEVEL.RU. Все права защищены. |