Документация/Типы объектов/Base/HeightmapTerrain.type

From NeoAxis 3D Engine Wiki

Jump to: navigation, search
Перейти на уровень выше

Contents

Описание

HeightmapTerrain является базовым инструментом для создания пересеченной местности на базе карт высот. В нем имеются удобные инструменты для создания геометрии и раскрашивания рельефа. Перед тем как приступить к работе с ландшафтом, рекомендуется изучать урок по созданию простой карты.

Ландшафт на базе карты высот

Работа с ландшафтом

Чтобы добавить ландшафт на карту, нужно в окне Object Creation редактора карт использовать тип Base\Types\HeightmapTerrain.

HeightmapTerrain 001.jpg

По умолчанию ландшафт является плоским и выкрашен в цвет травы. Для редактирования нужно выделить объект ландшафта в окне Objects и нажать кнопку Edit, которая находится под списком свойств.

HeightmapTerrain 002.jpg

После этого появляется окно редактирования ландшафта.

HeightmapTerrain 003.jpg

Инструменты редактирования ландшафта

С помощью инструментов редактирования ландшафта можно менять геометрию, раскрашивать, а также вырезать отверстия.

Изменение ландшафта сродни рисованию: ландшафт — это полотно, а инструмент — это кисть. Инструмент применяется при зажатой левой кнопки мыши. Чем дольше инструмент применяется к одному и тому же месту ландшафта, тем сильнее изменяется ландшафт.

Для редактирования ландшафта используется 3 набора инструментов.

Редактирование геометрии

Набор инструментов для редактирования геометрии ландшафта.

HeightmapTerrain 004.jpg
Название Описание
Geometry Raise Поднять уровень. Если зажать клавишу Shift, то ландшафт будет опускаться.
Geometry Lower Опустить уровень. Если зажать клавишу Shift, то ландшафт будет подниматься.
Geometry Smooth Сглаживание поверхности. Используется для выравнивания соседних участков.
Geometry Flattern Выравнивание поверхности.
HeightmapTerrain 005.jpg

Раскраска

Набор инструментов для раскраски ландшафта. Раскрашивание осуществляется по слоям, которые настраиваются в свойстве Layers.

HeightmapTerrain 006.jpg
Название Описание
Paint Рисование кистью. С зажатой клавишей Shift инструмент очищает ландшафт.
Clear Очистка ландшафта. Удаляет изменения сделанные кистью. С зажатой клавишей Shift инструмент раскрашивает ландшафт.
Paint Smooth Сглаживание раскраски соседних участков.
Paint Flattern Выравнивание раскраски. С помощью этого инструмента можно расширить уже раскрашенный участок.
HeightmapTerrain 007.jpg

Создание отверстий

Набор инструментов для создания отверстий в ландшафте.

HeightmapTerrain 008.jpg
Название Описание
Add Hole Создание отверстий. Если зажать клавишу Shift, то отверстия будут удаляться.
Remove Hole Удаление отверстий. Если зажать клавишу Shift, то отверстия будут создаваться.
HeightmapTerrain 009.jpg

Настройка инструментов

Настройка кисти

Кисть, редактирующую ландшафт, можно регулировать. В окне редактирования ландшафта для этих целей служат четыре параметра.

HeightmapTerrain 010.jpg
Название Описание
Shape Форма кисти. Можно выбирать между Circle (круг) и Square (квадрат).
Outer Radius Внешний радиус кисти. В области между внешними и внутренним радиусами воздействие на ландшафт плавно ослабевает.
Inner Radius Внутренний радиус кисти. В области внутри внутреннего радиуса инструмент воздействует на ландшафт в полной мере.
Strength Сила воздействия инструмента на ландшафт. Чем больше значение, тем быстрее будет изменяться ландшафт.

Настройка слоев

Для раскраски ландшафта используются слои, которые настраиваются в свойстве Layers. Для настройки слоев нужно нажать кнопку "...".

HeightmapTerrain 012.jpg

В появившемся окне можно редактировать список слоев.

HeightmapTerrain 013.jpg

Для добавления и удаления слоев используются кнопки Add и Remove соответственно.

Слой содержит следующие параметры:

Название Описание
BaseMap Базовая диффузная текстура.
BaseNormalMap Базовая карта нормалей.
BaseScale Коэффициент растяжения базовой текстуры.
BaseSpecularMap Базовая карта бликов.
DetailMap Детальная диффузная текстура.
DetailNormalMap Детальная карта нормалей.
DetailScale Коэффициент растяжения детальной текстуры.
DetailSpecularMap Детальная карта бликов.
Name Имя слоя.
ProjectionAxis Параметр устанавливает, по каким осям нужно растягивать текстуру. Выбранная ось устанавливает нормаль к плоскости, в которых будет растягиваться текстура. Если выбрана ось ZAxis, то растягиваться текстура будет по осям X и Y. Аналогично для Y — по X и Z и для X — по Y и Z. Также нужно помнить, что, к примеру, текстура скал может располагаться как на вертикальных поверхностях, так и на горизонтальных. Чтобы этого избежать, для такого типа текстур можно создавать 2 слоя с разными ProjectionAxis.
SpecularColor Цвет бликов.
SpecularShininess Определяет силу блеска (угол рассеивания).

Свойства

Специальные свойства ландшафта разбиты на 4 группы: General, Geometry, Painting, Physics.

Название Описание
class Entity
Components Список прикрепляемых компонент.
LogicClass Ссылка на класс редактора логики. Подробнее о работе с классами редактора логики.
Name Имя объекта.
Tags Пользовательская информация. Представляется списком пар вида ключзначение. Используется для нужд разработчика.
Type Тип объекта. Не подлежит изменению.
Geometry
AllowVertexTextureFetchOptimization Включить/выключить специальную оптимизацию рендеринга ландшафта. Данная оптимизация в несколько раз уменьшает количество используемой памяти.
HeightmapSize Размер сетки ландшафта. Чем выше значение, тем детальнее будет ландшафт.
HorizontalSize Размер ландшафта по горизонтали.
LODSettings Группа свойств для настройки уровней детализации.
  • Enabled позволяет полностью отключить уровни детализации.
  • LodLevelDistances задает формулу расчета уровней детализации. Можно ввести произвольную формулу. Параметр "level" является уровнем детализации и принимает значения 0, 1, 2, 3 и так далее. На выходе формула дает дистанцию переключения определенного уровня на следующий. По умолчанию: "100 + level * 200".
  • MaxCount — максимальное количество уровней детализации.
  • MorphAreaPercent определяет ширину перехода между уровнями детализации. По умолчанию равен 0.3, т.е. 30% от дистанции между двумя уровнями.
  • ShowLevels позволяет наглядно оценить распределение уровней детализации (свойство для отладки).
Position Положение ландшафта на карте.
TileSize Размер тайла. Тайл представляет собой группу ячеек ландшафта, которые отрисовываются как единое целое. К примеру, 16x16 — это 256 ячеек, которые отрисовываются вместе. Если видна хоть одна ячейка из тайла, то движок прорисовывает их все. Также нужно помнить, что на один тайл нельзя наложить более 5 слоев. Поэтому в картах, где может быть закрашено более 5 слоев в одном тайле, тайлы нужно делать поменьше. Этот параметр рекомендуется подобрать в процессе оптимизации карты.
VerticalSize Максимальная высота в метрах. Ландшафт нельзя будет поднять выше, чем указано в этом параметре. Важно настроить его перед началом редактирования HeightmapTerrain, иначе при изменении этого параметра будет изменена высота всех возвышенностей и низменностей.
Visible Показать или скрыть ландшафт.
Painting
AmbientOcclusion Группа свойств для настройки и расчета Ambient Occlusion.
  • Blur — размывать ли текстуру после расчета.
  • Enabled позволяет включить/выключить Ambient Occlusion.
  • IterationCount — количество итераций при расчете. Чем больше это количество, тем лучше качество и дольше расчет.
  • Power — сила эффекта AO.
  • RayLength — длина луча при расчете. Влияет на мягкость получаемого результата.
  • Size — размер текстуры.
CastDynamicShadows Включить/выключить тени от ландшафта. Если выбрано значение True, то ландшафт отбрасывает тени.
DetailMapDistance Радиус видимости детальных текстур в слоях. Если камера приближена к ландшафту на расстояние меньше данного, то будет использована детальная текстура. Если камера отстоит от ландшафта на расстояние больше данного, то детальные текстуры не накладываются на ландшафт.
Layers Список слоев ландшафта. Слои используются для раскраски ландшафта. Подробнее редактирование списка слоев рассмотрено в этом разделе.
MasksSize Размер пикселя для раскрашивания. Чем выше значение параметра, тем детальнее/плавнее смешивание слоев и четче раскраска.
ReceiveStaticShadows Включить/выключить участие геометрии ландшафта при расчете статичного освещения. Подробнее работа со статическим освещением рассмотрена здесь.
RenderQueueGroup Очередь рендеринга данного ландшафта относительно других объектов.
SimpleRendering Включить режим упрощенной отрисовки. В таком режиме отключаются карты нормалей, блики и тени. Такой режим увеличивает производительность. К примеру, его будет полезно использовать при генерации отражений воды.
Physics
Collision Включить или выключить расчет столкновений объектов с ландшафтом.
CollisionHeightfieldThickness Толщина тела, используемого при расчете физики ландшафта. Используется только в PhysX.
CollisionMaterialName Тип поверхности ландшафта. Позволяет выбрать из 4 значений: Metal (металл), Wood (дерево), Rubber (резина), Ice (лед). Данный параметр влияет на свойства взаимодействия физических тел.

Проблемы и решения

Настройка уровней детализации

Часто при редактировании ландшафта можно увидеть дыры в геометрии. Данная проблема решается настройкой формулы расчета дистанций уровней детализации или полным отключением уровней детализации (при отключении уровней детализации общая скорость работы заметно уменьшается). Для настройки формулы нужно перейти к свойствам, развернуть список LODSettings и настроить свойство LodLevelDistances, которое описано выше.

HeightmapTerrain 014.jpg