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