Здравствуйте все любители трёхмерно помоделировать! (Или модельно потрёхмерить - кому что больше нравится!)
В сегодняшнем небольшом уроке мы познакомимся с такой очень важной в трёхмерной компьютерной графике темой, как текстурирование. Разумеется, в рамках небольшого урока мы лишь прикоснёмся к этому сложному и ответственному делу. Но ведь с чего-то надо начинать, правда?!
Всё дело в том, что стандартными методами наложить правильно и красиво текстуру на объект даже не очень сложной формы не всегда удаётся. А уж если речь идёт о, например, персонажах компьютерных игр, автомобилях, роботах, бытовых предметах, оружии и прочих т.н. пропсах, то встроенные в программу методы проецирования текстурных карт - "Flat", "Box" и прочие, основанные на геометрических примитивах, разумеется, не подходят.
Если коротко, то суть мэппинга (от слова mapping) заключается в создании развёртки всей поверхности объекта, и эту развёртку потом "раскрашивают" в каком-либо редакторе растровой графики. В профессиональной работе текстурный проект может содержать несколько десятков, а то и сотен слоёв, на все случаи "игровой жизни". Например, при текстурировании автомобиля приходится создавать карты, имитирующие покраску разным цветом, грязь, отверстия от пуль, царапины, ржавчину и т.д.
Созданная таким образом текстурная карта органично накладывается на объект и позволяет даже скрыть недостатки модели. Например, для того, чтобы игры нормально шли на слабых компьютерах, персонажи часто моделируются очень упрощённо, а примитивизм формы скрывается хорошей текстурой.
После такого небольшого теоретического вступления перейдём к практике!
Попробуем смоделировать самый обычный деревянный брусок.
Для меня, как разработчика (с последующим изготовлением!) деревянных головоломок, эта тема очень актуальна. Все мои головоломки относятся к классу т.н. поликубических головоломок, то есть их детали образованы единичными, склеенными между собой кубиками. На практике, конечно, гораздо удобнее делать головоломки не из отдельных кубиков, а из брусочков, длина которых кратна модулю, то есть равна 1, 2, 3 и т.д. длин сторон единичного кубика.
Иногда, в промо-целях, мне приходится моделировать некоторые свои головоломки на компьютере, и вот тут-то и возникает задача качественного их текстурирования.
Дело в том, что, как Вам, разумеется, известно, дерево не относится к типу анизотропных материалов. При продольном распиле мы видим длинные полоски-волокна, а при поперечном - годовые кольца.
Если при моделировании деревянных брусочков в программе трёхмерной графики мы не будем этого учитывать, то получим, строго говоря, не сильно реалистичную картинку:
Даже если покрутить карту, изменив направление текстуры на продольное, то не решим главную задачу: на торцах бруска должен быть рисунок годовых колец!
Давайте уже исправлять эту ситуацию!
Blender мы уже запустили и даже создали сам брусочек. Зафиксируем сразу же масштабирование: Object/Apply/Scale
Это мы сделали для того, чтобы потом фаска получилась корректной.
Итак, выделяем брусок и переходим в режим UV Editing
Рабочее пространство программы разделено на два окна - в правом, в режиме редактирования, показан наш брусок, в левом - его развёртка на плоскости.
Если Вы уже назначили бруску материал, то развёртка будет содержать текстурную карту. Я пока этого не стал делать.
Первым делом выделим рёбра, по которым как бы разрежется развёртка - включаем режим выделения рёбер и с зажатой клавишей Shift выделяем рёбра.
После этого щёлкаем правой клавишей мыши и выбираем пункт Mark Seam
Выделенные рёбра окрасились в красный цвет.
Теперь нужно выделить ВСЕ грани (A)
Далее жмём клавишу U и выбираем пункт Smart UV Project
Задаём величину зазора между элементами развёртки
и нажимаем OK.
Экспортируем полученную развёртку в отдельный растровый файл.
Переключаемся на режим Shading, сворачиваем Blender в трэй и запускаем какой-либо редактор растровой графики. Например, Adobe PhotoShop.
В фотошопе открываем файл развёртки.
Теперь грузим в фотошоп найденные заранее картинки продольной и поперечной текстур дерева:
Выделяем прямоугольником картинку и накладываем её на развёртку. Подгоняем масштаб, удаляем лишнее.
В этом "нелёгком" процессе нам поможет временное изменение прозрачности рабочего слоя
Наложив продольный рисунок, аналогично оформляем и торцы.
При создании развёртки мы специально сделали зазор между квадратиками, чтобы не мучиться с точной подгонкой текстуры по границам.
Если же нам необходима текстура, которая без швов и зазоров как бы перетекает с одной грани на другую, тогда, конечно, лучше не делать зазоры. В этом случае можно просто нажать U и потом выбрать пункт Unwrap.
Ну и рисовать потом надо будет с соблюдением примыкающих друг к другу рёбер. Короче, та ещё песня!
Сохраняем получившуюся текстуру. Лучше - в новый файл.
Возвращаемся в Blender и подгружаем его к материалу бруска. Настраиваем свет, камеру, можно снять небольшую фаску, делаем рендер.
Можно поверху текстуры дерева нанести какие-то надписи, царапины, создать имитацию выжигания; а можно вообще всю развёртку раскрасить в любом стиле. Была бы фантазия!
У меня сегодня с фантазией всё нормально:
Соответственно, брусок получился вот такой. Психоделический. А кому сейчас легко?
В общем, как я и предупреждал в самом начале, нелёгкая это работа - из болота тащить беге..., ой, извините, заниматься текстурированием!
В заключение, продолжая начатую тему головоломок, представляю несколько визуализаций своих авторских головоломок, сделанных с применением показанной в данном уроке технологии.
На этом и всё.
Удачи!
Предыдущий урок "Паровоз по рельсам мчится..."
Следующий урок "Завтрак аристократа"
"Табышмак": деревянные авторские головоломки Андрея Устюжанина