Визуализация растений: трава
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] Исправлены некорректные/битые ссылки.