Уроки: Общие принципы

Создание ковра средствами VRayScatter

Добрый день, меня по-прежнему зовут Дмитрий Ярков, и сегодня я хотел бы поделиться придуманным мной способом создания ковров в интерьерах с помощью плагина VRayScatter. Также для этой цели можно использовать более новую версию плагина под названием MultiScatter.

Из описания плагина на официальном сайте www.rendering.ru можно узнать, что применяется он для размножения больших массивов объектов по какой-либо поверхности. При этом разработчики постарались сделать огромное количество параметрических функций, применяя которые, можно добиться разительно отличающихся результатов. Плагин заявлен в первую очередь как вспомогательное средство для архитектурной визуализации, однако люди вроде меня задаются вопросом, нельзя ли применить его мощности где-то еще, в данном случае - в интерьере. Итак, попробуем сделать ковер средствами VRayScatter.

Любой визуализатор или моделлер, имевший дело с интерьерами, однажды сталкивался с созданием ворсистых ковров. Чаще всего результат однотипный, по умолчанию устраивающий всех визуализаторов, несмотря на то, что ковры получаются похожи на один и тот же волосатый ковер, без излишней изобретательности. Иногда ковер получается похожим на траву, а иногда - на траву, скошенную ураганом. Цель данного урока заключается в том, чтобы помочь визуализаторам и моделлерам составить новые представления о том, какими могут быть ковры, если подойти к этому делу серьезно, и предоставить им инструменты для этого.

Итак, мы собрались сделать ковер. Чтобы иметь представление о предмете, нужно собрать референсы, фотографии ковров. В гугле нашлось не так много фотографий, поэтому я позвонил в фирму, специализирующуюся на коврах, и попросил у них каталог. Мне повезло - они прислали каталог в PDF с хорошими картинками. Каталогу уже год, тем не менее, его можно и нужно использовать, а скачать его можно здесь http://narod.ru/disk/24660813000/Bayliss.rar.html

В каталоге очень много ковров, мы остановимся на этом:


Этот ковер мне очень нравится по своему виду, и как видите, он вовсе не похож на траву. Я еще ни разу не видел подобного ковра в интерьерах, потому что его очень сложно сделать. Не будем стремиться к 100% совпадению, но возьмем его за основу.

Рядом с основной фотографией в увеличении показаны цвета и текстуры:

Особо пристальное внимание я уделил нижнему левому фрагменту. Если приглядеться, можно заметить, что ворсинки на нем слипаются между собой и таким образом заостряются кверху, оставаясь хаотичными внизу. Получается некий вытянутый треугольник, чуть согнутый (примятый). Отсюда я сделал вывод, что при создании ковра лучше размножать не единичные ворсинки, а целые пучки таких слипшихся ворсинок. Эти пучки могут быть самыми разными для разных ковров.

Из нескольких плоскостей сделаем пучок ворсинок. Вот как он выглядит у меня:

В нем 50 треугольников. Пучок 5 см в высоту. Грубо говоря, это десяток ворсинок, изогнутых по двум-трем направлениям и имеющих общий изгиб в одну сторону. Все это делалось в виде сверху, и лишь затем с помощью Bend сворачивалось в некую трубочку для большего объема. Переводим этот пучок в прокси-объект.

Теперь создаем основу для ковра. Это простой плейн, однако он немного помят с помощью модификатора Noise, при этом модификатор не влияет на края (это делается с помощью Poly Select с мягким выделением). Края прижаты к полу, чтобы ковер не выглядел парящим в воздухе, а центр немного поднят, чтобы углубления не опускались ниже пола:

Размер этой плоскости 2 метра на 1 метр. Маловато для большого помещения, но в самый раз для теста и урока.

Теперь создаем объект VRayScatter. Подробную инструкцию по использованию плагина всегда можно найти на http://rendering.ru/index.php/plugins-manual/vrayscatter/

Указываем в качестве прокси наш пучок, а в качестве объекта для размножения плоскость. Внизу в настройках скаттера сразу ставим галочку Auto update:

Это требуется для того, чтобы в дальнейшем видеть все операции с скаттером в реальном времени. Теперь мы видим перед собой плоскость с некоторым количеством боксов на ней:

Боксами отображаются наши прокси, максимальное количество отображаемых объектов можно регулировать в том же свитке Preview, сейчас это 1000, но рекомендую сразу переключить на 10000, если только ваша видеокарта позволяет это. Это нам пригодится при настройке скаттера.

Идем по настройкам сверху вниз. В базовых настройках поставим галку Move pivot to center и выберем ось, по которой встанут прокси. У меня получилась Y:

Таким образом можно отрегулировать базовое размещение прокси-пучков на плоскости, т.е. чтобы они были расположены вертикально и их нижняя точка лежала на поверхности ковра.

Далее идем в настройки распределения проксей по поверхности. Опытным путем для своего размера ковра и ворсинок я поставил количество пучков равным 400.000:

Use random Position означает, что пучки будут размножены хаотично, не подчиняясь какому-либо порядку. Остальные настройки в этом свитке для нашего ковра не важны.

Если сейчас отрендерить наш ковер, мы увидим очень густой, но при этом совершенно неинтересный, фактически квадраный ковер без какого-либо разнообразия. Вообще, это больше похоже на текстуру, чем на геометрию, несмотря на 400.000 пучков:

Снова обращаемся к референсу. Обращаем внимание, что по периметру ковра ворсинки загибаются в направлении периметра. К огромной чести разработчиков, такая функция в скаттере предусмотрена, и находится она в свитке Border Behavior. Можно загибать ворсинки к краям самого объекта, а можно и к краям сплайна, который предварительно нужно указать. Тут хотелось бы отметить, что у меня загибание по объекту (Use Surface Border) работало некорректно, и я решил обойтись сплайном. Я создал прямоугольный сплайн четко по периметру плоскости и в свитке Border Spline указал его в качестве сплайна. Дистанция до края, начиная с которой начинается деформация ворсинок, составляет у меня 10 сантиметров, а режим деформации только Rotate:

Настолько хороших параметрических функций очень не хватает в других системах создания ковров, таких как VRayFur и Hair&Fur. Рендерить ковер не обязательно, изменения можно увидеть прямо во вьюпорте, благодаря настройкам превью:

Теперь немного поиграем с размером ворсинок. В процессе экспериментов, в настройках масштаба я до 60% уменьшил пучки по осям X и Y и до 50% по оси Z:

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

В первую очередь задаем случайное вращение по оси Z на 360 градусов, а также на 30 градусов по осям X и Y для наклона ворсинок. Однако это мало приближает нас к великолепному ковру, который мы видим на фотографии, и теперь мы используем очень мощные настройки поворота ворсинок в зависимости от цветной карты. Для этого ставим все три галки X/R, Y/G и Z/B. На первый взгляд все просто: Red управляет осью X, Green управляет осью Y, а Blue вращает ворсинки по Z. Однако смешения этих цветов дают самые непредсказуемые результаты, поэтому на эксперименты у меня ушло очень много дней.

Назначим на нашу плоскость материал, которому в любой слот положим карту Noise и отобразим ее во вьюпорте. Noise это трехмерная процедурная карта, и в своем трехмерном режиме во вьюпорте она будет выглядеть совсем не так, как при рендере (сильно изменяется масштаб), что совершенно не подходит для настройки. Меняем режим карты на Explicit Map Channel и задаем плоскости планарный UVW Mapping. Теперь карта Noise в двумерном режиме и ее вид во вьюпорте будет точно соответствовать рендеру. Перетягиваем карту в режиме Instance.в слот скаттера Mask в настройках вращения.

Самое время еще раз взглянуть на референс. Долгие минуты его разглядывания привели меня к тому, что я вывел одну важную особенность данного ковра: от хождения по нему ногами, некоторые участки ворсинок взбиваются и приподнимаются, тогда как другие участки более плотно прижаты к земле. Участки, которые вздымаются, по своему виду напоминают горные хребты, т.е. они довольно узкие и извиваются как змеи, пересекаясь друг с другом. Красным я выделил самые высокие участки этих хребтов:

Такой же структуры можно добиться, если перевести Noise в режим Turbulence и поставить следующие настройки:

Цвета зеленый и оранжевый выбраны далеко не случайно. На финальный результат влияет всё: оттенок, яркость, насыщенность. Многие дни тестов оставили именно этот вариант.

Если вы это еще не сделали, то теперь в настройках скаттера можно увеличить количество отображаемых во вьюпорте объектов до 10.000 (а то и больше), и мы сможем рассмотреть поведение объектов на плоскости:

Однако, для достижения более точных результатов все равно придется рендерить каждый этап.

Области "хребтов" нас устраивают, а вот примятые участки необходимо дополнительно разнообразить, но чтобы они при этом оставались примятыми. Для этого в оранжевый слот нашей карты Noise, отвечающий за примятые области, кладем еще одну карту Noise, уже с другими настройками:

Как видите, цвет вращения может быть не только цветным, но и черным. Режим Noise уже Fractal, так как нам больше не требуется структура горных хребтов. Вот как выглядит финальная карта на плоскости:


Четко видны зеленые хребты, а между ними оранжево-черные равнины. А вот объекты на ней:

Я думаю, вы согласитесь с тем, что на данном этапе вьюпорт помогает очень мало, уже не давая представления о всей картине. Чтобы понять, насколько же хорошим получился ковер, нужно отрендерить его так, чтобы падающий свет подчеркнул объем ворсинок.

Теперь нас устраивает распределение ворсинок по плоскости. Кажется, мы позаботились обо всем, и можно с замиранием сердца отрендерить наш ковер. Для гламурных и крайне точных визуализаций, когда требуется показать каждую ворсинку во всей красе, придется использовать метод Brute Force на первичном и вторичном отскоках GI. По крайней мере, таким образом мне удалось показать реальный объем и подчеркнуть структуру ковра:

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

Финальную сцену с ковром в формате 2010 макса, включающую в себя пучок ворсинок, можно скачать здесь.

Приятных ковров вам:)

77787 Автор:
Актуальность: 655
Качество: 628
Суммарный балл: 1283
Выбор Публики
Голосов: 379 оценки

Отзывы посетителей:

2 3 | След.
аватар
 
7acrow 1 0

BlackAgate, спасибо огромное, очень полезный урок! К слову сказать, при переводе сцены в Corona render, с использованием встроенного Corona scatter получается отменный результат! жаль нельзя картинку прикрепить...

аватар
 
Христинааа 1 0

Добрый день! Я новичок в 3д мах, пожалуйста как сделать ворсинки? Спасибо!

аватар
 
Грустный Кот 42 0
А можно каким ни будь образом получить геометрию на выходе из multiscatter?
аватар
 
Anton Viborniy 66 0
отличный урок!
аватар
 
ARTUS 42 0
Большое человеческое спасибо вам!
аватар
 
el604 1 0
разве тожесамое нельзя сделать стандартным максовским скаттером?
аватар
 
samorez 6 0
Цитирую qub:
Господа, подскажите пожалуйста как можно ускорить просчет Light cache.
Сделал коврик по уроку, причем Max count поставил 200 000 вместо 400 000 . Все очень красиво, но Light cache рендерился 12 часов.
Проц i7 920 6гб ОЗУ. Заранее спасибо

Перегоняете весь ковер в VRproxy и все, конкретно этот ковер в 300000 укладывается в 584мб, рендерится в интерьере на ура. Озу на ковер при этом уходит примерно 3.8гб и лайткэш считаеться быстро, без прокси у меня схавал больше 10 после этого я остановил, на тот момент расчетное кол-во времени на просчет лайткэша ушел в ~ ))
аватар
 
qub 2 0
Господа, подскажите пожалуйста как можно ускорить просчет Light cache.
Сделал коврик по уроку, причем Max count поставил 200 000 вместо 400 000 . Все очень красиво, но Light cache рендерился 12 часов.
Проц i7 920 6гб ОЗУ. Заранее спасибо
аватар
 
igor mikhailov 1 0
!!!Замечательный урок-мэйкин оф ---называйте как хотите

Противно что всякие уроды пишут что ерунда а не тутор-Вот из за таких люди и не делятся секретами своего мастерства--Напишешь распишешь-а тебе еще в лицо плюнут и скажут, а кому оно надо, хэлп написал и вообще это реклама.

Скажу за себя-Ковер выдающийся нигде на просторах интернета похожего не видел-сразу захотелось узнать КАК!!! Автор в своем блоге написал что напишет урок))Ждал долговато но когда увидел его здесь--это был замечательный сюрприз. Спасибо огромное за урок.
аватар
 
Юра Кошель 464 0
отличный урок! спасибо
аватар
 
katemanson 1 0
Дима, мне вот интересно, что за компьютеры у тех товарищей, которые пишут, что в интерьере этот коврик будет успешно рендериться? Наверное моих 8 гб оперативки явно маловато и лайт кеш с не самыми высокими настройками считался 11 часов((( Хотя коврик офигенно красивый... пошла делать фуром(
аватар
  vip
BlackAgate 1047 0
Администратор Арх. Галереи
Цитирую paz:
Хороший урок. +5 Вопрос - Можно ли реализовать анимацию травы данным методом?

Можно. Саму геометрию гнуть нельзя, но достаточно реалистичное движение травы легко реализуется посредством анимации карт поворота.
аватар
  vip
Paz 471 0
Преподаватель курсов RENDER.RU
Хороший урок. +5 Вопрос - Можно ли реализовать анимацию травы данным методом?
аватар
  vip
BlackAgate 1047 0
Администратор Арх. Галереи
Итак. Раскрыт секрет занижения баллов со стороны оппонента. Тема тут (читать комментарии). Последний комментарий оставлен тоже этим мошенником.
аватар
  vip
BlackAgate 1047 0
Администратор Арх. Галереи
Цитирую clipper:
Я не понял о чём урок?

Я думаю, вам следует вдумчиво перечитывать его раз за разом, и тогда вы все поймете. Удачи)
аватар
 
clipper 1 0
Я не понял о чём урок?
Создать плоскость и применить плагин?
О всём этом на оф.сайте можно почитать, причём на русском языке.
Там даются понятные рекомендации по использованию этого плагина.
А в уроке читаю: "Цвета зеленый и оранжевый выбраны далеко не случайно.
На финальный результат влияет всё: оттенок, яркость, насыщенность.
Многие дни тестов оставили именно этот вариант."
Из всего этого я понял, что автор предлагает нажать на определённую кнопку и не заморачиваться с объяснениями???
Вообще-то урок для того нужен чтобы научить пользоваться программой, а не нажимать последовательность кнопок.
Хотя возможно урок написан для рекламы этого плагина.
Тогда всё правильно.

аватар
 
VVP 1 0
Спасибо! отличный урок!
аватар
  vip
BlackAgate 1047 0
Администратор Арх. Галереи
Забыл написать в уроке. Существенная деталь, о которой многие забывают: подложка под ковром должна быть невидимой по краям. То есть, ближе к центру ковра ее можно оставить на всякий случай, чтобы пол не просвечивал, но если мы видим жесткую границу, выбивающуюся из под ворсинок по краям - это смотрится неопрятно и некрасиво. Решение простое: карта Gradient Ramp в режиме Box в слот Opacity, делающая подложку прозрачной по краям.
аватар
  vip
BlackAgate 1047 0
Администратор Арх. Галереи
Цитирую ELAGO:
Может кто нибудь подскажет где в мультискаттере кнопка "Move pivet to center" (размещение нижних точек на поверхности) ?

С одной стороны, я ее тоже не нашел, с другой стороны, там все проще: поскольку мультискаттер берет объект прямо из сцены, можно смещать и поворачивать пивот у исходного объекта, при это визуально вы сразу увидите изменение мультискаттера.
аватар
 
unkind_ 4 0
Может кто нибудь подскажет где в мультискаттере кнопка "Move pivet to center" (размещение нижних точек на поверхности) ?
2 3 | След.
Зарегистрируйтесь, чтобы добавить комментарий.
Эту страницу просмотрели: 906 уникальных посетителей