Создание ковра средствами 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 макса, включающую в себя пучок ворсинок, можно скачать здесь.

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

745 0 850 190
49
2010-09-10
Весьма полезный урок. Полагаю, это можно считать новым этапом в «ковростроении» :-)
2010-09-10
Замечательно! Сейчас сяду повторять "по горячему")
2010-09-10
Актуально. Благодарствую.
2010-09-10
5 & 5
2010-09-10
Круто! Вот бы еще сцену под 2009 макс... )
2010-09-10
Ухты прикольно))) Отличный урок [smile=04]
2010-09-11
Спасибо за оценки и комментарии) Сцену под 2009 макс поищу.
2010-09-12
Интересный урок, спасибо 5/5. В принципе если делать мультискаттером можно получившийся ковер конвертнуть в меш, затем "загнать" в прокси, ради облегчения сцены.
2010-09-12
Спасибо за урок. и отдельноеспасибо за полезные ссылочки 5x5 :)
2010-09-13
Очень интересно! Результат впечатлил, по больше бы таких качественных уроков! Спасибо!
2010-09-13
Очень круто!
2010-09-13
молодец дим! ковереки реально крутые у тя получаются!
2010-09-13
Спасибо!!!! 5-5. Желаю тебе 9000 :)
2010-09-14
Да урок отличный.Только можно предворительно перевести ворсинки в прокси, а потом уже рассаживать.Multi skater видит и прокси тоже.Урок актуальный от меня тоже 5/5.
2010-09-15
так в уроке же и написано "......... Все это делалось в виде сверху, и лишь затем с помощью Bend сворачивалось в некую трубочку для большего объема. Переводим этот пучок в прокси-объект"
2010-09-15
Sory не заметил.
2010-09-16
Спасибо всем)
2010-09-18
Отличный урок!
2010-09-18
отличнейший урок!!!5! Всегда хотел сделать такой ковер. Вопрос:Морро делал ковер Hair&Fur?
2010-09-18
У Морро ковры делаются всем чем только можно, насколько я знаю, год назад он предпочитал Hair&fur.
2010-09-22
хм..а у меня не получилось.....(((( создала ворсинки line-extrude-edit mesh..потом по точкам придала им форму и объединила несколько ворсинок в пучок эттэчем...а вот дальше включила ментал рэй..создать прокси добавила один пучок( нажала в прокси на кнопку none и как бы поместила один из пучков в куб) ..второй прокси объект-пучок создать не получается макс виснет и вылетает..(((......помогите..скажите что делаю не так...мне кажется что-то я напортачила с переводом пучка в прокси..я так и не поняла, нужно ли помещать весь пучок в куб прокси..
2010-09-24
Актуально и качественно.Дима как всегда на высоте!55
2010-09-25
Спасибо, было познавательно еще в мае делал ковер таким способом, но там были червяки такие толстые - похожие на анемонов, и мультискатера не было в помине, на нойзе не получилось выдать приемленный результат, пришлось рисовать карту смешивания в шопе, А тут так круто и далеко расковырял, просто огромное спасибо - видно что много времени потрачено. Могу сказать оценка 10 из 5!!!
2010-09-25
хороший тутор. Спасибо. Жаль коврик нельзя одной текстурой раскрасить. Прийдется делать несколько скаттеров.
2010-09-26
[quote=a2-art] хм..а у меня не получилось.....(((( создала ворсинки line-extrude-edit mesh..потом по точкам придала им форму и объединила несколько ворсинок в пучок эттэчем...а вот дальше включила ментал рэй..создать прокси добавила один пучок( нажала в прокси на кнопку none и как бы поместила один из пучков в куб) ..второй прокси объект-пучок создать не получается макс виснет и вылетает..(((......помогите..скажите что делаю не так...мне кажется что-то я напортачила с переводом пучка в прокси..я так и не поняла, нужно ли помещать весь пучок в куб прокси.. [/quote] Уважаемая [b]a2-art[/b]. Должен уточнить, что с ментал реем работает только Multiscatter. В этом случае не обязательно переводить пучки в прокси. Достаточно выполнить следующие действия: 1. При выделенной поверхности, создать объект Multiscatter 2. Щелкнуть на изображении чайника со знаком + и выбрать пучок (можно выбрать несколько пучков). Удачи! [quote=ivan ivanov] хороший тутор. Спасибо. Жаль коврик нельзя одной текстурой раскрасить. Прийдется делать несколько скаттеров. [/quote] Не совсем понял, что значит "раскрасить коврик" и при чем тут несколько скаттеров)
2010-09-27
Если сложный узор нужен. Как на твоей пдфке. Ну там черный с белым. Тогда придется изголятся.
2010-09-27
[quote=ivan ivanov] Если сложный узор нужен. Как на твоей пдфке. Ну там черный с белым. Тогда придется изголятся. [/quote] Если речь идет о простой диффузной карте на ковер, чтобы получить разные узоры - она прекрасно накладывается и на скаттер) Подробнее [url=http://mentalscatter.com/docs/multiscatter_russian.pdf]здесь[/url] для Multiscatter (страница 43) либо [url=http://rendering.ru/index.php/plugins-manual/vrayscatter/using_of__vrayscattertexture/]здесь[/url] для VRayScatter.
2010-09-28
[quote=BlackAgate] Если речь идет о простой диффузной карте на ковер, чтобы получить разные узоры - она прекрасно накладывается и на скаттер) Подробнее здесь для Multiscatter (страница 43) либо здесь для VRayScatter. [/quote] Спасибо большое. Я вот с фуром разобрался. [url]http://3dart.com.ua/uroki/109-vray-fur-sozdanie-kovrolina-ili-prosto-kovrika.html[/url]
2010-09-28
Там внятно написано про цвета, которые участвуют в картах наклона, поворота итд.
2010-09-29
Может кто нибудь подскажет где в мультискаттере кнопка "Move pivet to center" (размещение нижних точек на поверхности) ?
2010-09-29
[quote=ELAGO] Может кто нибудь подскажет где в мультискаттере кнопка "Move pivet to center" (размещение нижних точек на поверхности) ? [/quote] С одной стороны, я ее тоже не нашел, с другой стороны, там все проще: поскольку мультискаттер берет объект прямо из сцены, можно смещать и поворачивать пивот у исходного объекта, при это визуально вы сразу увидите изменение мультискаттера.
2010-10-04
Забыл написать в уроке. Существенная деталь, о которой многие забывают: подложка под ковром должна быть невидимой по краям. То есть, ближе к центру ковра ее можно оставить на всякий случай, чтобы пол не просвечивал, но если мы видим жесткую границу, выбивающуюся из под ворсинок по краям - это смотрится неопрятно и некрасиво. Решение простое: карта Gradient Ramp в режиме Box в слот Opacity, делающая подложку прозрачной по краям.
2010-10-20
Спасибо! отличный урок!
2010-10-20
Я не понял о чём урок? Создать плоскость и применить плагин? О всём этом на оф.сайте можно почитать, причём на русском языке. Там даются понятные рекомендации по использованию этого плагина. А в уроке читаю: "Цвета зеленый и оранжевый выбраны далеко не случайно. На финальный результат влияет всё: оттенок, яркость, насыщенность. Многие дни тестов оставили именно этот вариант." Из всего этого я понял, что автор предлагает нажать на определённую кнопку и не заморачиваться с объяснениями??? Вообще-то урок для того нужен чтобы научить пользоваться программой, а не нажимать последовательность кнопок. Хотя возможно урок написан для рекламы этого плагина. Тогда всё правильно.
2010-10-20
[quote=clipper] Я не понял о чём урок? [/quote] Я думаю, вам следует вдумчиво перечитывать его раз за разом, и тогда вы все поймете. Удачи)
2010-10-21
Итак. Раскрыт секрет занижения баллов со стороны оппонента. Тема [url=http://render.ru/books/show_book.php?book_id=945]тут[/url] (читать комментарии). Последний комментарий оставлен тоже этим мошенником.
2010-10-23
Хороший урок. +5 Вопрос - Можно ли реализовать анимацию травы данным методом?
2010-10-23
[quote=paz] Хороший урок. +5 Вопрос - Можно ли реализовать анимацию травы данным методом? [/quote] Можно. Саму геометрию гнуть нельзя, но достаточно реалистичное движение травы легко реализуется посредством анимации карт поворота.
2010-10-24
Дима, мне вот интересно, что за компьютеры у тех товарищей, которые пишут, что в интерьере этот коврик будет успешно рендериться? Наверное моих 8 гб оперативки явно маловато и лайт кеш с не самыми высокими настройками считался 11 часов((( Хотя коврик офигенно красивый... пошла делать фуром(
2010-11-01
отличный урок! спасибо
2010-12-23
!!!Замечательный урок-мэйкин оф ---называйте как хотите Противно что всякие уроды пишут что ерунда а не тутор-Вот из за таких люди и не делятся секретами своего мастерства--Напишешь распишешь-а тебе еще в лицо плюнут и скажут, а кому оно надо, хэлп написал и вообще это реклама. Скажу за себя-Ковер выдающийся нигде на просторах интернета похожего не видел-сразу захотелось узнать КАК!!! Автор в своем блоге написал что напишет урок))Ждал долговато но когда увидел его здесь--это был замечательный сюрприз. Спасибо огромное за урок.
2011-01-25
Господа, подскажите пожалуйста как можно ускорить просчет Light cache. Сделал коврик по уроку, причем Max count поставил 200 000 вместо 400 000 . Все очень красиво, но Light cache рендерился 12 часов. Проц i7 920 6гб ОЗУ. Заранее спасибо
2011-02-01
[quote=qub] Господа, подскажите пожалуйста как можно ускорить просчет Light cache. Сделал коврик по уроку, причем Max count поставил 200 000 вместо 400 000 . Все очень красиво, но Light cache рендерился 12 часов. Проц i7 920 6гб ОЗУ. Заранее спасибо [/quote] Перегоняете весь ковер в VRproxy и все, конкретно этот ковер в 300000 укладывается в 584мб, рендерится в интерьере на ура. Озу на ковер при этом уходит примерно 3.8гб и лайткэш считаеться быстро, без прокси у меня схавал больше 10 после этого я остановил, на тот момент расчетное кол-во времени на просчет лайткэша ушел в ~ ))
2011-02-03
разве тожесамое нельзя сделать стандартным максовским скаттером?
2011-03-19
Большое человеческое спасибо вам!
2011-05-20
отличный урок!
2012-03-20
А можно каким ни будь образом получить геометрию на выходе из multiscatter?
2015-04-06
Добрый день! Я новичок в 3д мах, пожалуйста как сделать ворсинки? Спасибо!
2016-06-24
BlackAgate, спасибо огромное, очень полезный урок! К слову сказать, при переводе сцены в Corona render, с использованием встроенного Corona scatter получается отменный результат! жаль нельзя картинку прикрепить...
RENDER.RU