События

Визуализация растений: трава

2014-05-15

В этой статье описывается, как реализовать травяной покров с помощью системы частиц.

Сцена состоит из следующих ключевых объектов: поверхность земли, выступающая в роли генератора частиц (ground), набор из пяти разновидностей снопов травы (grass_1-5), и большой камень-валун (stone), служащий источником тени. Служебные объекты: объект пустышка для фиксации фокуса камеры (Empty) и источник ветра (Field)

Подготовку сцены начнем с изготовления билбордов травы. Билборды будут не плоские, а слегка искривленные для имитации объема.

Назначим плоскостям материал, содержащий текстуру травинок с маской прозрачности. Текстура травы продемонстирована ниже (цветовая составляющая и альфа-канал). Обратите внимание, что в цветовой составляющей вокруг травинок предусмотрен определенным образом нанесенный неконтрастный фон. Это позволяет избежать mipmap артефактов. Артефакты проявляются на удалении от камеры (когда WebGL использует текстуру с низким разрешением), если фон за пределами маски оставлен контрастным (черным или белым).

Схема нодового материала травы:

Настройки прозрачности:

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

Схема материала подложки под траву приведена ниже:

Теперь займемся посадкой травы. Для тиражирования травы используется группа объектов, которые случайным образом распределяются на выбранном участке меша. Район распределения частиц ограничивается группой вершин grass_1.

На панели Render нужно выбрать поведение Billboard со случайным типом вращения - Random. Кнопки Wind bending позволяют выбрать, какой объект будет являтся источником настроек для эффекта колыхания на ветру. Имеются кнопки Parent (родитель) и Instance (экземпляр). В данном случае нас интересует опция Instance, так как именно с травы будут скопированы настройки эффекта.

Вертексный цвет дает возможность окрасить тиражированную траву в цвета вершин меша. В данном примере вершины меша земли окрашены в усредненные цвета диффузной составляюшей материала ground. Таким образом достигается разнообразие по цвету травяного покрова, а так же большая схожесть цветовой гаммы травы и подложки.

Параметры запекания в цвета вершин меша:

Настройки эффекта колыхания на ветру настраиваем на объектах из группы grass. В настройках доступен угол отклонения от центра объекта (Angle) и частота колебания (Frequency). Для работы данного эффекта обязательно требуется источник ветра.

Ссылка на интерактивную сцену

Исходный blend-файл вы можете найти в Blend4Web SDK в директории: blend4web/blender/tutorials/basic/grass/.

Изменения

[2014-05-15] Изначальная публикация.

[2014-07-07] Удалена вторая вертексная группа для распределения травы, т.к. она не оказывала существенного влияния на конечный результат.

[2015-09-10] Текст и иллюстрации изменены в связи с обновлением интерфейса.

[2017-01-12] Исправлены некорректные/битые ссылки.