Trees
Reference Manual > Terrain Engine Guide > Trees

Trees

Unity Terrain Engine прекрасно работает с деревьями. Можно разместить буквально тысячи деревьев без особого ущерба производительности. Дело в том, что деревья, близкие к камере, отрисовываются как 3D-объекты, а удалённые деревья превращаются в 2D-изображения, билборды.  Билборды автоматически вращаются сообразно перемещениями камеры. Переход деревьев от 3D к билбордам детально настраивается.


Достаточо легко создать нечто подобное.

Adding Trees

Инструмент — Place Trees.

Чтобы разместить деревья на ландшафта, сначала нужно добавить их в библиотеку доступных деревьев. Для этого используем кнопки Edit Trees>Add Tree. Появится диалоговое окно Add Tree.


Диалог Add Tree.
Выберем дерево из Project View и перетащим на свойство Tree. Можно также настроить коэффициент изгиба (Bend Factor), если нужно добавить дереву дополнительный бит  эффекта «изгиб при ветре». Когда всё готово, нажимаем Add. Дерево отображается в Inspector.


Добавленное дерево в Inspector.

Можно добавить много деревьев.

Выделенное дерево подсвечивается синим.

Painting Trees

Инструмент — Place Trees. ЛКМ на ландшафте размещает там дерево. Shift+ЛКМ убирает его.


Свойства инструмента:

Brush Size Радиус кисти (в метрах).
Tree Spacing Плотность расстановки деревьев.
Color Variation Включает цветовые вариации между деревьями.
Tree Height Высота деревьев.
Height Variation Включает вариации высоты.
Tree Width Толщина/ширина деревьев.
Width Variation Включает вариации толщины.

Tree Painting Tips


Кисти разных размеров покрывают разные площади (слева направо — увеличение кисти).

Слева направо — повышение плотности деревьев (Tree Spacing).

Editing Trees

Редактирование дерева (2 способа):
* Кнопка Edit Trees>Edit Detail;
* Двойнок клик по дереву.

Mass Placement

Если нужно создать сразу целый лес, используется команда Terrain>Mass Place Trees. Открывается диалог Mass Place Trees. Здесь настраивается количество деревьев и их позиции. Для массового размещения могут использоваться все деревья, добавленные в ландшафт.


10 000 деревьев размещены разом.

Refreshing Source Assets

Если исходный файл дерева был измененё, нужно реимпортировать его с помощью команды Terrain>Refresh Tree and Detail Prototypes.

Creating Trees

Каждое дерево должно содержать один меш с двумя материалами. Один материал для листьев и один для коры. Из соображений производительности желательно не использовать больше 2000 треугольников на одно дерево. Точка вращения дерева должна быть точно в корнях (где дерево контактирует с поверхностью).

Trees must use the Nature/Soft Occlusion Leaves and Nature/Soft Occlusion Bark shader. In order to use those shaders you also have to place the tree in a special folder that contains the name "Ambient-Occlusion". When you place a model in that folder and reimport it, Unity will calculate soft ambient occlusion specialized for trees. The "Nature/Soft Occlusion" shaders need this information. If you don't follow the naming conventions the tree will look weird with completely black parts.

В Terrain Demo.unitypackage есть несколько высококачественных деревьев. Крайне желательно ознакомиться с ними. Можно использовать их в любых проекта.

Using Low Poly Trees

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

The tree itself wastes a lot of fillrate by having large polygons but almost everything is invisible due to the alpha. This should be avoided for performance reasons and of course because the goal is to make dense trees. This is one of the things that makes Oblivion's trees look great. They are so dense you cant even see through the leaves.

Setting up Tree Collisions

If you'd like your trees to make use of colliders, it's very easy. When you've imported your Tree asset file, all you need to do is instantiate it in the Scene View, add a Capsule Collider and tweak it, and make the GameObject into a new Prefab. Then when you're adding trees to your Terrain, you add the tree Prefab with the Capsule Collider attached. You can only use Capsule Colliders when adding collisions with trees.