Бинт, средствами 3DS MAX и ZBrush
Всем привет! Меня зовут Матросов Евгений, в данный момент мне 23 или 24 года, честно, не помню, частенько забываю, родился и живу в Днепропетровске, Украина. Работаю в сфере рекламы, люблю все, что связано с творчеством и нестандартным подходам к решению задач.
Недавно я столкнулся с интересной задачей, которая, вскоре, обратилась в большую проблему. Работал я над очередной идеей, в которой мне нужно было средствами 3Д софта создать повязку из медицинского бинта. Проблема заключалась в том, что эта повязка расположена на переднем плане, что требовало от нее качественной и детальной обработки. Повязка намотана несколькими слоями, в хаотичном (перекрученном) порядке, имеет утолщения, что требует геометрической проработки, и по краям бинта, всегда торчат нитки. Вот, решение именно этой задачи (на примере этой же работы) подтолкнуло меня написать данный урок. Есть несколько теоретических вариантов решения задачи, но практически я использовал только один – о котором я и буду говорить.
Примечание: Урок рассчитан, на тех, кто работает в 3D max и для тех, кто только начал заниматься, а также минимально знаком с ZBrush. А кто не знаком, то будем знакомиться…
Первый раунд
Беру «2 рубля», шлепаю в ближайшую аптеку, где приобретаю медицинский бинт, и рулю обратно домой. Беру, какой-нибудь круглый или цилиндрический предмет, который бы напоминал человеческую голову, в моем случае, предметом «издевательств и пыток» стала моя жена :-). Хаотично, перекручивая бинт, наматываем корявую повязку. Далее, беру свой сканер, снимаю крышку, снимаю бинтовую повязку с «головы», и укладываю ее на сканер, далее, сканирую два разных фрагмента этой повязки. Это все, я делаю для изготовления нужных текстурных карт.
Примечание: Крышку сканера я снимаю специально, если она не снимается, ломать не надо, просто не закрывайте ее. Так как, при отсутствии крышки, после сканирования, все пустоты бинтовой сетки будут черными, а это нам и нужно.
Вот что получаем:
Открываем 3D max, и создаем Plane, конвертируем ее в Edit poly и обматываем ее вокруг головы примерно так:
Примечание: Плоскость я делаю в два раза больше, с учетом того, что из бинта выступают нитки, они нам тоже нужны.
Открываем редактор материалов, выбираем пустой слот, и в Diffuse вставляем процедурную карту Checker и в tiling выставляем 10, (можно и больше) и применяем к нашей будущей повязке. Далее, применяю модификатор UVW Map, в нем выбираю Cilindrical и ровняю его таким образом, чтобы он повторял форму нашей повязки.
Примечание: Зеленая линия на контейнере цилиндра обозначает место, где «разрезается» развертка текстуры, контейнер лучше повернуть так, чтобы зеленая линия была позади повязки. Черно-белые квадраты помогают нам определить, правильно ли мы создаем нашу развертку.
К повязке применяем модификатор Unwrap UVW, в свитке parameters нажимаем кнопку Edit... Появляется окно с разверткой нашей повязки, с помощью кнопок масштаба и передвижения, редактируем нашу развертку, как показано на картинке, т.е. масштабируем в пределах поля, ограниченное синим контуром. После, делаем скриншот развертки и копируем его в Photoshop.
Открываем Photoshop, создаем новый документ и в него вставляем наш скриншот. Также, добавляем, ранее отсканированный материал. И сейчас займемся тем, что будем делать текстуру для повязки. Вырезаем, рисуем, вытираем, в общем – делаем все, чтобы получилась текстура бинта.
Так, текстура для слота Diffuse готова. Далее, нам понадобится еще две текстурные карты:
- Карта Bump для выдавливания ниток бинта
- Карта Opacity, с помощью этой карты, все просветы между нитками мы сделаем полностью прозрачными.
Примечание: вот для этого нам и нужно было снять крышку сканера. Черный цвет делает объект полностью прозрачным, белый цвет – полностью непрозрачным, чисто серый – прозрачность на 50%.
Примечание: Карта Bump формирует неровности, черный цвет определяет впадины, белый выпуклости
Карта Opacity. Берем нашу текстуру бинта, переводим в оттенки серого. С помощью Brightness/Contrast или Level максимально убираем серые оттенки.
Карта Bump. Текстура бинта в оттенках серого, для улучшения результата, можно поиграться с контрастностью.
Второй раунд
Теперь будем работать с Zbrush 3.1. В детстве с пластилином играли? Вот и сейчас будем, только виртуально - лепить складки нашей повязки. Отличная программулина, низкий поклон ее разработчикам! Кто не работал в ней, советую попробовать.
Итак, заходим в 3D max, берем нашу голову модели, повязку и экспортируем их, File - Export – формат obj. Экспортировать нужно каждый объект отдельно. Ах, да, еще, при экспорте выскочит окно, в котором во вкладке Geometry нужно выбрать polygons, чтобы наши полики были четырехугольные.
Открываем Zbrush и импортируем нашу голову и повязку.
Во вкладке SubTool выбираем повязку и опускаемся ниже, до вкладки Geometry, в которой, нажатием на кнопку Divide, мы повышаем плотность сетки до 6 единиц. С помощью кнопок lower Res и Highe Res мы можем опускаться и подниматься по уровню плотности сетки, т.е. от 6 до 1 и наоборот.
Возникает у нас маленькая проблема! Как нам сделать так, чтобы все рисуемые нами складки полностью совпали со складками на текстуре. Просто, вверху, в меню мы выбираем Texture и импортируем нашу Diffuse текстуру. Она сразу накладывается на нашу повязку, может, получится, что текстура ляжет не правильно, чтобы это исправить, в панели меню Texture, нужно отзеркалить ее по вертикали или горизонтали, что я и сделал.
Теперь откроем вкладку Texture (не путайте «вкладка» и «меню»), если не включена кнопка EnableUV, то включить ее, и нажимаем на кнопку Txr>Col. Теперь мы можем, приблизительно видеть, как расположены складки, и по ним лепить геометрию.
Итак, лепим геометрию. Во вкладке Layers создаю новый слой.
Примечание: Советую, для каждого «основного» фрагмента повязки создавать отдельный слой. Так легче контролировать, и устранять проблемные места. Помимо этого, управлять интенсивностью каждого слоя.
Некоторые комбинации клавиш:
- В комбинации «Alt + левая кнопка мыши» геометрия выдавливается и наоборот вдавливается.
- В комбинации «Alt + левая кнопка мыши» на пустом поле – перемещаетесь по рабочей области.
- Если нажать «Alt + левую кнопку мыши, на пустом поле» и во время перемещения мышки в сторону отпустить Alt – объект будет приближаться и отдаляться.
- Комбинация «Shift + левая кнопка мыши» сглаживает разные «бока» и неровности.
- Комбинация «Ctrl + левая кнопка мыши» и «Ctrl + Alt + левая кнопка мыши» маскирует геометрию от воздействия на нее, и снимает маску. Щелчок, с зажатым Ctrl, инвертирует маску.
Этого пока хватит…
В общем, поехали.
Ну, где-то так, если уделить больше времени, можно сделать еще лучше.
Теперь сделаем карту Displacement, эта карта выполняет туже функцию, что и карта Bump, только с некоторыми отличиями.
Открываем вкладку Geometry, и кнопкой lower Res понижаем плотность сетки до 1. Затем, открываем вкладку Displacement, и в DPRes указываем размер нашей карты, в данном случае 2048 pix., и нажимаем Creat DispMap. Слева, от рабочей области есть панель кистей, текстур, материалов, жмем на области Alpha, и в поле User Alphas находится наша созданная карта. Выбираем ее, и на панели меню открываем вкладку Alpha, в ней мы зеркально отображаем текстуру по вертикали, если мы это не сделаем – в максе она ляжет не правильно. Ну, и экспортируем ее. Чуть не забыл, в панели меню Alpha, смотрим и запоминаем значение Alpha Depth Factor, у меня он 7.5, подробней, о нем, расскажу позже.
Третий раунд
Вот и добрались до последнего этапа. Открываем Макс, делаем материал для нашей повязки, как показано на рисунке, и применяем.
Примечание: текстуру для Diffuse я немного усложнил для пущего эффекта, кистями добавил кровавые пятна и придал, более поношенный вид.
Далее, применяем модификатор VrayDisplacementMod, и настраиваем его, как показано на рисунке. В Type выбираем 2D mapping, в Textmap ставим нашу Displacement карту. А теперь, немного расскажу о Alpha Depth Factor. В одной литературе, я вычитал, что значение Alpha Depth Factor, (которое у меня равняется 7,5) указывает значение выдавливания карты Displacement, и его нужно указывать в поле Amount, а в Shift половину от Amount со знаком «-».
Amount = 7,5
Shift = -3,75
Но, у меня, это правило, не всегда срабатывало. Если, кто знает, в чем прикол, мне любопытно узнать почему…
Я накрутил:
Amount = 50
Shift = -25
В поле Resolution ставим разрешение нашей карты 2048 pix.
Ну и рендерим, экспериментируем с настройками, и снова рендерим…
Ну, в общем-то, и ВСЕ! Надеюсь, мой урок будет полезным. Спасибо за уделенное внимание, творческих Вам успехов!
С уважением, QBit.