Заснеженные деревья в 3D

Заснеженные деревья в 3D

Снег для 3D графики часто является непростой задачей. Не существует универсального способа его создания.

В ходе работы над одним проектом мне пришлось «чесать репу» над созданием заснеженных деревьев. Хочу поделиться своим решением этой задачи.

Этот снег подойдет для широкого спектра погодных условий и объектов.

Вот пример того, для чего способ подойдет отлично:

А вот пример того, для чего этот способ не подойдет: 

Также способ не годится для хвойных деревьев.

Выделим особенности снега, лежащего на деревьях, которые мы будем имитировать:

  1. Снег на ветках и стволах лежит с той стороны, с которой, собственно, снег и падает. В безветреную погоду снег налипает на ветки сверху, а на ствол — местами — там, где выступает кора. Наличие ветра меняет направление падения снега и, соответственно, картину налипания. Появляется много снега на стволах с подветреной стороны.
  2. Граница между заснеженным и незаснеженным участком обычно нерезкая — по градиенту, и, при этом, неровная. Но эта граница может быть и довольно резкой — например, когда немного пригреет Солнце.

Первым делом создаем дерево. Хорошее дерево — залог успеха. Для большинства задач подойдут деревья, сгенерированные, в Onyx. Деревья можно делать и в других программах, в том числе и в самом 3DS Max. К модели дерева есть следующие требования:

  1. Модель обязательно должна содержать лофтовый мэппинг.
  2. Количество сегментов окружности ствола и крупных веток — желательно не меньше 8. В ониксе этот параметр называется Transversal.
  3. Неверные нормали объекта могут сильно исказить внешний вид снега. Модель из Оникса имеет много открытых ребер вдоль веток и стволов — соответственно, нормали там неверные. Их быть не должно — сшейте точки обязательно.

Допустим, дерево у нас готово. В моей модели 230К треугольников.

Теперь самое важное — создание маски для снега. Хотя эта маска довольно проста, получить ее мне удалось далеко не сразу.

Бросьте на дерево стандартный материал и поставьте Self-illumination на 100 — так мы сможем лучше видеть создаваемую маску.

Создайте саму маску, состоящую их двух процедурных карт: вначале Gradient Ramp с типом градиента Mapped, и в слот Map поместим Falloff с отмеченными параметрами.

Карта Falloff при этих настройках возвращает цвет в зависимости от направленности нормали относительно направления вверх. Обратите внимание, что я немного порулил кривую этой зависимости. Кривая в нашем случае влияет на ширину границы снега, а также на его общее количество. Карта Gradient Map используется для получения шума на этой границе (параметром Noise). Настройки этого шума позволяют имитировать снег в диапазоне от свежевыпавшего в холодную погоду до начинающего таять. Мэппинг сказывается на том, как выглядит этот шум. На данном этапе его (мэппинг) можно отредактировать (Вам может понадобиться другой текстурный слой), но мы опустим это.

Не тратьте много времени на получение идеальной маски. Позже я поясню, почему.

Создадим новый материал для дерева и будем использовать полученную маску снега (в примере она называется Map #48) для смешивания в различных каналах.

В диффузном канале я использовал карту Mix, в канале Bump — композитную текстуру. Я также использовал маску снега в канале Self-Illumination — фейковое подповерхстное рассеивание.

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


(в сцене только дефолтный источник света)

Небольшое пояснение: изначально я использовал одну и ту же карту (композитную) для диффуза и бампа, но композитная карта в диффузе вызвала овербрайты при рендере Виреем в большой сцене с множеством деревьев. В итоге я заменил ее на карту Mix. Вы можете создавать материал по своему вкусу, используя такую маску для снега.

Включение/выключение бампа радикально меняет вид снега. Карта Bump при рендере искусственно меняет нормали, а на это в свою очередь реагирует карта Falloff — вот почему я просил вас не тратить много времени на отдельную маску снега. Настраивать детально эту маску нужно, когда материал уже собран.

Если в карте Falloff запихнуть в верхний слот процедурный Noise (вместо белого цвета), в качестве текстурных координат выбрать World XYZ, то все деревья будут иметь уникальный рисунок покрытия снегом:

А если в Falloff в качестве направления использовать объект, то можно сымитировать деревья облепленные снегом в ветренную погоду:

Именно так я и поступил при создании этой работы. Здесь на всём, включая собаку, лежит снег, полученный описанным способом.

Надеюсь, урок вам понравился!

Блог автора: http://superka-01.livejournal.com
793 0 850 61
32
2011-03-02
Молодец! Думаю, подобную технику можно применить и других приложениях. Возьму на заметку. 5\5
2011-03-02
как сложно блин...а то бы мы не догадались всунуть вертикальную маску
2011-03-02
Отлично! Этот способ мне больше нравится. Лучше чем геометрией снег делать. Хотя от задачи зависит! +5
2011-03-03
Спасибо!
2011-03-03
[quote=Mr.Core]как сложно блин...а то бы мы не догадались всунуть вертикальную маску [/quote] Может быть, юный 19 летний пользователь без работ на сайте мы не будем умничать и напишем что то свое? Вы, может быть и догадались бы, а кто то нет, значит урок для них, а не для вас. Почему нельзя спокойно пройти мимо, а обязательно отложить личинку своего негативчика. Автор урока спасибо тебе!
2011-03-03
В дополнение к уроку предлагаю два способа. Первый проще чем в уроке, даёт эффект попримитивнее - использовать материал top/bottom где top - текстура снега а bottom - любой другой. Второй способ для создания [b]объемного[/b] снега - распределить частицы по выделенным сверху и отдетатченым с копированием поликам модели (подойдёт PFlow) и применить к ним стандартный blobmesh или сторонний prWraper(из плагина). полученную "жидкость" скопировать через snapshot и назначить материал снега. Вопросы в лс. 4/5 за узкоспециализированную тему.
2011-03-03
Мне урок понравился. Полезный. Существует огромное количество способов это сделать - каждый из способов нужен для той или иной задачи. 5/5
2011-03-03
Давно так снег делаю - очень удобно. Молодец, что описал! Поставлю пятёрки, т.к. способ на обычное включение мозга, а это всегда актуально. И результат хороший. Поэтому обе пятёрки.[quote=T M] Может быть, юный 19 летний пользователь без работ на сайте мы не будем умничать и напишем что то свое? Вы, может быть и догадались бы, а кто то нет, значит урок для них, а не для вас. Почему нельзя спокойно пройти мимо, а обязательно отложить личинку своего негативчика. [/quote]Это у нас так в русском сообществе принято. Поэтому все мэтры отсюда съезжают )))
2011-03-04
Спасибо! Я рад что урок понравился. Чесно говоря с маской снега попарился. В каких только комбинациях не крутил этот "фэллоф". Потом отложил эту задачу - были другие дела по работе. А потом вдруг решение пришло неожиданно, само...
2011-03-04
[quote=Додобаев Шуха] [/quote] Top/buttom совсем не подойдет для деревьев, а второй способ с выделением файсов может и прокатит, только уже внуки закончат выделение нужных полигонов на дереве)
2011-03-04
Придать объем или сделать, что-то похожее на втором фото можно с помощью Vray materials на карту Displace положить карту fallof с другой кривой из черного в белый. Вместо белого цвета кинуть нойз фрактал с серым и белым цветом
2011-03-04
Спосибо автору, попробую, давно хотел, но кроме частиц ничё в голову не лезло))
2011-03-04
T M Потому что есть уроки качественные ( например недавний про плагин к максу или про создание мышц в кси) , а есть из одного очевидного действия, к которому этот и относится, не лучше было бы ещё что-то добавить в этот урок, а потом уже присылать для публикации ?
2011-03-04
[quote=Mr.Core] Потому что есть уроки качественные ( например недавний про плагин к максу или про создание мышц в кси) , а есть из одного очевидного действия, к которому этот и относится, не лучше было бы ещё что-то добавить в этот урок, а потом уже присылать для публикации ? [/quote] Судить об очевидности, даже если бы это было одно действие, - Вам пока рановато. К тому же render.ru сами предложили опубликовать урок, а у них компетенции поболее вашей будет. Не расстраивайтесь!
2011-03-04
[quote=Mr.Core] [/quote]Слишком по-хамски комменируешь, друг. Человек старался, делится собственным опытом. Кто-то нашел для себя здесь ответы на свои вопросы, кто-то предложил свои варианты. Если нечего сказать - пройди мимо, и найди для себя то, что тебе интересно.
2011-03-05
[quote=Mr.Core] Потому что есть уроки качественные ( например недавний про плагин к максу или про создание мышц в кси) , а есть из одного очевидного действия, к которому этот и относится, не лучше было бы ещё что-то добавить в этот урок, а потом уже присылать для публикации ? [/quote] Это урок не из одного действия, тут показанно решение проблемы, качественно и строго по делу, за что автору спасибо. Урок не обязательно должен быть 10 страничным трудом, в котором нам поведают что то невероятно сложное, разные нужны уроки и просты е и сложные. Я нехочу разгребать гиганский универсальный урок иногда мне нужно просто делать что что (тот же снег), я нахожу такой урок и быстро разбираюсь что к чему, а не ковыряю многостраничный труд. И вообще дело не в уроке и его качестве (хотя я бы еще с удовольствием почтитал уроки этого автора), дело в отношении одних людей к труду других.
2011-03-05
Хороший урок, взял на заметку. Ниразу не делал зимних рендеров, надо попробовать.
2011-03-06
[b]SuperK[/b], спасибо за труд. Интересный пример реализации снега, буду знать :)
2011-03-11
интересный урок, понравился! 5/5
2011-03-13
Просто кратко в тему !!! Спасибо !!!
2011-03-14
Замечательный урок. Пока не приходилось делать заснеженные обьекты, но урок возьму на заметку.
2011-03-18
Здорово! Коротко и ясно!
2011-03-25
Спасибо большое вам за отзывы!
2011-03-25
[quote=SuperK] Спасибо большое вам за отзывы! [/quote] Вам спасибо, ждем новых уроков от Вас!
2011-03-31
А я все мучился снег делать.. всякими путям... А оказалось, все прозаично и просто. Огромное спасибо автору. С удовольствием буду следить за ваш ими уроками.
2011-04-08
Очень полезный урок. Спасибо!
2011-04-10
otli4nii urok, lohkii i horowii, aftor horowo ego prepodnios! vopros k aftoru: takim je sposobom mojno delat gori s zasnejenimi verhushkami da? :) P.S. prowu prowenie za angliskie bukvi! 5/5! molodez :)
2011-04-10
Спасибо всем! AndrewAT, вероятно можно, надо попробовать. Конечно это не только для деревьев: я для лавок, собаки, бордюров использовал.
2011-05-03
Спасибо за быстрый и качественный урок очень пригодился =))
2011-07-21
Класс! Мне пригодилось. Благодарю автора за урок.
2012-03-14
Все гениальное просто)))) Как раз пригодился урок)))
2017-02-24
Автор ты гений! Спасибо тебе за урок, он довольно старый, на компе храню давно, но в виду отсудвия опыта раньше всего не понимал, перечитав сегодня, вникнув во все.... урок просто бомба, гениально и просто Благодарю за крайне интересную и важную для меня информацию 
RENDER.RU