Создание текстурной развертки
Если в качестве материала установить какую либо текстуру, после чего назначить ее объекту, то текстура просто "натягивается" на объект, располагаясь с учетом текстурных координат. Но иногда необходимо расположить некоторые части текстуры в определенных местах объекта.Например, чтобы нарисованные глаза на текстуре совпадали с геометрией глаз на 3D-модели. Теоретически (как и практически) это возможно и довольно просто, ведь всем вершинам 3D-модели назначены текстурные координаты, следовательно, если определенным текстурным координатам назначить определенную часть изображения, то данная часть изображения расположится именно там, где нам нужно.
Текстура, с рассчитанными координатами для определенных ее частей называется текстурной разверткой.
Сейчас мы познакомимся с методом создания текстурной развертки, а именно с модификатором Unwrap UVW . Мы создадим простую модель книги и протекстурируем ее.
Для этого сначала создайте модель книги, как показано на рисунке 1.
Box
в форме книги">Рисунок 1. Объект Box
в форме книги.
Теперь необходимо применить к данному объекту модификатор EditMesh
.
После этого перейдите в режим выделения граней (клавиша 3
) и выделите все грани объекта (комбинация клавиш Ctrl + A
- выделить все) (рис. 2).
Рисунок 2. Выделение всех граней.
Теперь, не снимая выделение, примените к объекту модификатор Unwrap UVW
. В открывшихся настройках модификатора нажмите на кнопке Edit
для редактирования развертки и создания текстурных координат (рис. 3).
>Рисунок 3. Настройки модификатора Uwrap UVW
.
Откроется окно Edit UVWs
, предназначенное для создания текстурной развертки (рис. 4).
Рисунок 4. Окно Edit UVWs
.
Существуют разные способы создания текстурных развёрток. В нашем случае мы имеем объект в виде книги, поэтому легко представить себе развертку в виде шести фотографий книги с разных сторон, следовательно нам оптимально подойдет метод Flatten Mapping
.
Нажмите комбинацию клавиш Ctrl + A , что бы выделить все, затем выберите меню Select (выделение) и в открывшемся списке выполните опцию Convert vertex to face .
Теперь мы можем применить к нашему объекту метод Flatten Mapping
. Для этого откройте меню Mapping -> Flatten Mapping
(рис. 5).
>Рисунок 5. Применение метода Flatten Mapping
.
В открывшемся окне параметров нажмите кнопку OK
.
Теперь мы можем увидеть разметку для всех наших граней (рис. 6).
Рисунок 6. Разметка книги.
Темно-синяя линия указывает на границу текстуры, зелеными линиями указаны границы граней нашей книги. Для визуализации текстуры откройте меню Tools
и выберите опцию Render UVW Template
.
В открывшемся окне настроек рендера текстурной развертки вы можете установить цвета для изображения и размер создаваемой текстуры (рис. 7).
Рисунок 7. Настройки визуализации текстурной карты.
Установите разрешение 512
пикселей и визуализируйте изображение, нажав на кнопку Render UV Template.
Рисунок 8. Визуализированная текстурная карта.
Сохраните полученное изображение на жесткий диск, после чего откройте его с помощью любого графического редактора, например Adobe PhotoShop
. Надпишем каждую грань и сохраним изображение текстуры на жесткий диск (рис. 9).
Рисунок 9. Текстурная развертка с подписанными гранями.
Откройте редактор материалов и назначьте новому материалу в качестве карту Diffuse
данное изображение. Полученный материал будет выглядеть следующем образом (рис. 10).
Рисунок 10. Материал с назначенной текстурой.
Теперь создадим еще одну книгу, сделав ее копию и назначим им данный материал.
Переверните вторую книгу, чтобы увидеть ее заднюю грань.
Визуализируем сцену. Результат визуализации показан на рисунке 11.
Рисунок 11. Визуализация книг с текстурными развертками.
Теперь нам вновь нужно поработать с нашим материалом в графическом редакторе. Но в этот раз нам необходимо разместить изображение книги на гранях, чтобы текстурная развертка стала выглядеть следующем образом (рис. 12).
Рисунок 12. Текстурная развертка книги.
Сохраните новую текстуру, и установите ее в качестве карты Diffuse
нового материала. После этого создайте еще одну книгу методом копирования и назначьте данный материал всем книгам.
Добавьте в сцену плоскость, имитирующую пол и источники света по желанию.
Визуализируйте полученную сцену (рис. 13).
Рисунок 13. Визуализация полученной сцены.
Если вы решили начать работать в 3d max, то первое, что нужно научиться делать - это моделировать. Видимо, вы уже что-то создали, раз решили научиться накладывать текстуру на объект. В данной статье вы узнаете, как текстурировать на начальном этапе. Предупреждаю: этот урок только для новичков.
Новички! Поехали!
Чтобы наложить текстуру на объект, нужно научиться правильно работать с редактором материалов (material editor). Чтобы его вызвать, нужно нажать горячую клавишу «m» , либо кликнуть по значку справа вверху.
Перед вами появится окно с этим самым редактором. Выглядит оно так:
Slate Material Editor
Надпись «Slate Material Editor» вверху окна говорит о том, что вы открыли обновленный редактор, который появился в последних версиях 3ds max, включая версии 2013, 2014, 2015, 2016 и 2017.
В старых версиях 3ds max использовался только компактный редактор материалов, который выглядит, как таблица с ячейками. Для многих он наиболее привычен и работать в нем удобнее. Поэтому новичкам рекомендуется пользоваться именно им. Чтобы переключить на компактный вариант, нажмите на раздел «Modes» и выберите «Compact Material Editor».
Перед вами появится такое окно:
Compact Material Editor
Следующее, что нужно сделать — это увеличить количество ячеек, т.к. уже в ближайшее время их для вас станет слишком мало. Нажимаем правой кнопкой мыши на любой ячейке (сером шарике) и выбираем 6×4 Sample Windows.
Теперь перед нами 24 ячейки. Если хотите сделать еще больше ячеек, то читайте . Следующее, что нужно сделать, это выбрать первую ячейку и прописать название. Это и будет наш первый материал (шейдер).
Даем имя материалу и выбираем текстуру
Назовем его соответственно. Например, «Дерево пола». Только писать будем английскими буквами, потому что в будущем, например, в другой версии 3ds max, это название может отображаться каракулями (проблема русских шрифтов). Поэтому старайтесь выработать привычку писать все по-английски. И не обязательно знать язык. Пишем просто «derevo pola» и этого вполне достаточно, чтобы понять всем.
Следующее, что мы делаем, это открываем раздел «Maps». Он нам как раз и нужен для добавления текстуры в наш материал. Ведь просто текстуру на объект (3d-модель) не наложить. Накладывается именно материал(шейдер), который будет содержать внутри себя текстуру, например, дерева или штукатурки.
Важно! Материал может иметь не одну, а сразу несколько разных текстур, например, смешанных между собой, а так же текстуру рельефа, отражения и т.д.
Об этом позже, т.к. сейчас вам нужно понять только основы. Продолжаем. Нажимаем «Maps»:
Здесь нам нужен для начала только раздел Diffuse Color, в котором и будет храниться основная текстура. Кликаем на слот None напротив Diffuse Color, выбираем свиток «Standart» и 2 раза кликаем по Bitmap.
Теперь остается только выбрать на вашем компьютере подходящую текстуру и добавить (загрузить) ее в bitmap.
Привыкайте на разбрасывать текстуры по всему жесткому диску, а необходимую сразу загружать или копировать, затем сохранять изображение в папку с проектом, туда же, где сохраните свой файл 3ds max.
Назначаем материал объекту
Чтобы 3d-модель приняла достойный вид, нужно «натянуть» на нее нашу выбранную текстуру. Применяем материал к объекту. Это можно сделать двумя путями:
- просто перекинуть из редактора на объект (действие 1 на скриншоте ниже);
- выделить объект, выделить нужный материал, кликнуть на значок (действие 2).
Вот и все. Материал назначен объекту. Чтобы текстура была видна на 3d модели, нужно нажать на шахматный значок (действие 3 на скриншоте).
От автора: Если вы решили изучить редактор материалов на профессиональном уровне, рекомендую не учиться по таким статьям, а пройти специальный курс на эту тему. Эти знания помогут вам реально создавать красивые интерьеры и зарабатывать этим на жизнь, как работают профессиональные 3d-визуализаторы. Но предупреждаю! Стандартными средствами 3ds max у вас не получится создать красивое освещение, поэтому вам нужно будет установить Vray или Corona Renderer. Это специальные плагины, которые помогут создать более реалистичный свет в сцене.
Знаменитые 3D-художники дают советы по текстурированию начинающим специалистам и делятся секретами с профессионалами.
Если концепт-художники могут позволить себе мечтать и летать в облаках, то текстуровщики должны быть собраны и внимательны к деталям. И этим ребятам нужно не только расставить все точки над i, но и «вылизать» каждую травинку, а также оставить пару ржавых пятен на самом новом и чистом в мире танке. Если в этих строках вы видите себя, то вам прямая дорога в гильдию текстуровщиков. Если нет, то возможно вы почерпнете для себя что-то новое и вдохновляющее.
«Необязательно детализировать объект в той же программе, в которой вы его скалптите. Очень часто, особенно для детализации одежды и всевозможных мелких деталей, я использую Photoshop» José Alves da Silva
Совет №1: Сегодня волосы, завтра деньги
«Я прорабатываю меши волос персонажей как можно тщательней, в топологии стараюсь придерживаться естественной формы волос. Таким образом, я могу легко развернуть свою модель, а затем, сузив волосы у кончиков, для которых я затем воспользуюсь текстурой шума (или фильтром Motion blur в Photoshop), создать видимость стильной прически», — говорит Andrew Hickinbottom .
Каждый волосок стоит проработки
Совет №2: Дела органические
«В Mudbox есть очень полезная кисть, Dry brush (и подобные ей кисти в других программах), которая позволяет быстро придать органической или не органической поверхности эффект пошарпанности. И, поскольку, эта кисть работает только с выступающими или впадающими участками геометрии, вы можете рисовать только по тем областям, которые наиболее подвержены воздействию окружающей среды. Вместе с картой Cavity вы можете нарисовать грязь, ржавчину или пыль на органике», — говорит Carlos Ortega Elizalde .
Игра называется «Добавить объекту грязи, ржавчины и несовершенства»
Для создания текстур Carlos Ortega Elizalde любит использовать Dry brush в Mudbox
Совет №3: PolyPaint в ZBrush
«Я раскрашиваю свои модели по простой схеме: 1 - основной цвет; 2 - второй основной цвет; 3 - светлые или темные оттенки основных цветов; 4 - теплые оттенки основного цвета, смешанные с цветом крови; 5 цвета со скрученной насыщенностью; 6 растеризованные цвета”, — говорит Luca Nemolato .
Создайте свою собственную схему работы, но всегда сохраняйте цвета и текстуры «чистыми»
Совет №4: Детализируйте с помощью Normal-карт
«Необязательно детализировать объект в той же программе, в которой вы его скалптите. Очень часто, особенно для детализации одежды и всевозможных мелких деталей, я использую Photoshop. С таким бесплатный софтом, как, например, xNormal (который устанавливает в Photoshop ряд удобных фильтров), можно легко сконвертировать Bump в Normal-карту (Height2Normals). Затем добавить эту карту новым слоем поверх существующего слоя с картой Normal, режим смешивания установить Overlay. Детализацию можно отрегулировать с помощью значения Fill», — говорит José Alves da Silva .
Детали должны быть видны на модели или на финальном ренедере?
Металлический материал очень сложно настроить, но, судя по работе José Alves da Silva, оно того стоит
Совет №5: Экспорт волос из ZBrush в 3Ds Max
«Волосы, созданные в ZBrush с помощью FiberMesh, можно воссоздать в 3Ds Max. Для этого нужно экспортировать кривые из ZBrush в 3Ds Max, чтобы использовать их как направляющие кривые. Выберите Export Curves из меню FiberMesh в ZBrush и сохраните волосы в формате OBJ. Выберите Import из меню File в 3ds Max и выберите OBJ-файл. В настройках импорта OBJ включите опцию Shapes/Lines, чтобы импортировать сплайны, также включите опцию Import as a single mesh, чтобы кривые импортировались одним файлом. Нажмите Import.
"Измените режим выделения объекта и выберите все сплайны. Общее количество сплайнов будет показано в меню модификатора (внизу Selection menu). Запомните это число. Примените модификатор Hair and Fur (WSM) к сплайнам. Значением Hair count будет число сплайнов. Выключите опцию Interpolate. Включите Rand. Отмасштабируйте до 0, а в настройках Frizz установите Frizz Root и Frizz Tip 0, чтобы исключить любую рандомность. Готово!”, — говорит José Alves da Silva.
Работать с волосами сложно, но возможно
Совет №6: Идеальные текстуры
«Текстуры я создаю в BodyPaint 3D, импортируя в программу геометрию из 3Ds Max с помощью специального плагина. В BodyPaint 3D я могу разрисовывать модель в режиме реального времени, а также легко получать такие карты как Diffuse, Reflection, Bump и Normal. Таким образом, я могу быстро детализировать 3D-модели и добавить им различных эффектов», — говорит Sérgio Merêces .
С помощью плагинов удобно получать различные текстуры
Совет №7: Все внимание на камеру
«Сложные сцены иногда состоят из сотен объектов, на то, чтобы создать для них UV-развертку и затекстурить, может уйти вечность. Поэтому я хорошо прорабатываю только те объекты, которые видны из камеры. Если объект попадает в фокус, его прекрасно видно, я создаю идеальную UV-развертку, детально раскрашиваю текстуры и создаю детальные материалы. В противном случае я использую сочетание из тайловых текстур, процедурных шумов и пары разных текстур для различных объектов. BerconMaps помогают отлично разнообразить текстуры объектов. Рисование по вертексам в 3Ds Max также дает неплохой результат для создания грязи или ржавчины. При этом наличие хороших UV-разверток необязательно», — Toni Bratincevic .
Неплохой подход - различная степень детализации объектов в сцене, в зависимости от их близости к камере
По-настоящему хорошие текстуры могут перевернуть мир. Toni Bratincevic
Toni Bratincevic - настоящий про во всем, что касается Dirt-карт. Toni Bratincevic
VertexPaint - еще один способ детализировать картинку и добавить ей реалистичности. Toni Bratincevic
Совет №8: Не мешайте свету «работать»
«Без корректно настроенных материалов очень тяжело «вытянуть» картинку. В таком случае даже хорошо поставленный свет не спасет ситуацию. Корректно настроенный материал и тщательно подобранные текстуры добавят шоту визуального разнообразия, а правильно поставленный свет завершит начатое», — говорит Francesco Giroldini .
Хорошие текстуры - самое важное в любой работе
Совет №9: Добавьте блеска
«Отражения - одна из важнейших и незаменимых составляющих реалистичной картинки. Их отсутствие может испортить весь шот», — говорит Francesco Giroldini.
Отражения - одна из самых сложнейших штуковин
Совет №10: Балансирование на грани
«При настройке шейдеров очень важно всегда найти золотую середину между тем, должен ли материал быть скорее диффузным или отражающим. Материалы с накрученной диффузностью дают более темные и размытые отражения, в то время, как сильно отражающие материалы, скорее всего, не будут отражать рассеянный свет или отразят его многократно», — говорит Francesco Giroldini.
При работе с текстурами берите за образец реальный мир
Не торопитесь
В моделировании, как и в текстурировании, очень важно помнить, что все детали могут использоваться по нескольку раз. Не жалейте времени и тщательно прорабатывайте текстуры, поскольку внушительный банк текстур всегда пригодится. Кроме того, практика ведет к совершенству, чем больше вы работаете над текстурами, тем лучше они будут.
«Без корректно настроенных материалов очень тяжело «вытянуть» картинку. В таком случае даже хорошо поставленный свет не спасет ситуацию», — говорит Francesco Giroldini.
Продолжаем работу над проектом бутика. В предыдущей статье мы подготовили помещение: создали стены, перегородки, пол, потолок. Добавили ниши, молдинги, плинтуса, картуши, дверь. В этой статье мы добавим материалы в проект: обои, штукатурку, а так же «постелим» паркет.
Подготовим текстуры обоев для создания материалов обоев в 3ds MAX
Создание данной текстуры обоев в Photoshop здесь описывать не буду. На эту тему будет написана отдельная статья.
Подготовим файл с расширением psd для работы в 3ds MAX из готовой текстуры обоев:
- Откроем файл с текстурой в Photoshop, назовем этот слой Diffuse .
- Создадим черно-белый слой Bump
(определяет рельеф объекта). Смысл здесь в том, что черным цветом определяется глубина рельефа, а белым соответственно его высота.
Изображение → коррекция → черно-белое. При необходимости можно сделать инверсию (поменять местами черный и белый цвет в файле) с помощью клавиш Ctrl - I. Можно добавить корректирующий слой Уровни для большего контраста.
- Создадим черно-белый слой Reflection
(отражение). Чем светлее (белее) участок текстуры в этом слое - тем выше интенсивность отражений будет в материале, чем темнее - тем интенсивность ниже.
Изображение → коррекция → черно-белое. Корректирующий слой Уровни.
- Для того, чтобы «постелить» паркет, я воспользовалась скриптом Floor generator. (Сам скрипт по этическим причинам я разместить для скачивания не могу.) Файл со скриптом (FloorGenerator_ver1_00.ms) нужно поместить в папку C:\Programm Files\3ds Max 201\Stdplugs.
Выделяем пол. Делаем его копию, переносим на свободное место и со включенными привязками создаем замкнутую линию по контуру пола. Create → Shapes → Line → Close spline → Yes.
Копию пола удаляем, полученную линию выделяем. Вызываем скрипт: MaxScript → RunScript → в папке C:\Program Files\Autodesk\3ds Max 2011\stdplugs → FloorGenerator.
Настройки на рисунке ниже.
Нажать кнопки Interactive Update и Create. Закрыть окно, переместить паркет на место. Изменить параметры скрипта после закрытия окна уже нельзя. При необходимости проделать заново. Оставшуюся от пола линию удаляем. Так же удаляем исходный объект - пол.
- Применим к созданному полу модификатор Material by Element. Это необходимо, так как текстура не должна повторяться в каждой дощечке. Параметры модификатора: ID Count (число материалов) - 7, маркер поставим у Random Distribution.
- Создаем Multi/SubObject материал. Клавиша M → Выбираем свободный шар, даем имя материалу. Кнопка Get material. В окне Material/Map Browser → Свиток Materials. → Standart дважды щелкаем мышью по строке Multi/Sub-object. Set Number - 7.
Заходим в первый «подматериал». Нажимаем кнопку Standart правее названия материала. В появившемся окне Material/Map Browser, в свитке Materials → V-Ray Adv 2.40.03 → выбираем строку VRayMtl → Ok.
Теперь копируем этот подматериал с помощью перетаскивания 6 раз в режиме Copy, но при этом меняем обрезки карт для Diffuse и Reflect. В каждом подматериале нажать кнопку Show standard map in viewport!
- Назначаем полученный Multi/SubObject материал на паркет.
- Чтобы пол не бликовал в меню Views выбираем Viewport configuration. В закладке Rendering Method выбираем Viewport Clipping.
Создаем материалы (обои) в 3ds MAX из подготовленных текстур
Аналогичным образом создаем материалы для всех обоев, используемых в проекте.
Создадим многокомпонентный материал Multi/Sub-object
Так как обоев несколько, а объект стены (Walls) в нашем проекте - один, необходимо воспользоваться Multi/Sub-object. Его суть в том, что он позволяет наложить несколько материалов на один объект. Для этого нужно указать ID на группу полигонов, имеющих один и тот же материал.
Клавиша M → Выбираем свободный шар, даем имя материалу . Кнопка Get material. В окне Material/Map Browser → Свиток Materials. → Standart дважды щелкаем мышью по строке Multi/Sub-object.
Задаем необходимое число «подматериалов» (кнопка Set Number). Материалы копируем перетаскиванием из ранее созданных. В появившемся окне указываем тип копирования - Instance. Новый «подматериал» связан с оригиналом, его изменение затронет оригинал и наоборот.
Применяем созданный материал Multi/Sub-object к стенам
Выбираем стены. Важно: чтобы текстуры корректно наносились на стены - применим модификатор UVW Map: маркер поставим у Box, с реальными размерами текстуры (обои в моем случае 520 мм х 520 мм).
Применяем материал Multi/Sub-object к стенам. Стены должны быть при этом выделены. Клавиша M. Выбираем материал Multi/Sub-object. Кнопка Assign Material to Selection - применить материал к выделенному объекту.
Для того,чтобы указать к каким полигонам применить какой материал вновь добавляем модификатор Edit poly, переходим на уровень Polygon. Выбираем полигоны, задаем ID нужного материала в свитке Polygon: Material IDs.
Создадим декоративную штукатурку на потолок, стены, картуши
Открываем Material editor материалу
В Diffuse поместим карту Mix: в окне Material\Map Browser → Maps → Standard → выбираем Mix → Ok.
Настройки: Color1 Hue 255, Sat 10, Value 221; Color2 Hue 255, Sat 10, Value 180, правее Mix Amount по кнопке None загружаем текстуру штукатурки. В окне Material\Map Browser → Maps → Standard → Выбираем Bitmap → Ok→ выбрать файл с текстурой. Кнопка Go to parent.
Файл с текстурой штукатурки:
В свитке Basic Parameters: Цвет у Diffuse : Hue 0, Sat 0, Value 242. Цвет Reflect : Hue 0, Set 0, Value 88.
По кнопке правее Reflect загрузить ту же текстуру штукатурки. Go to parent. Значение Refl. glossines - 0,6. Галочка у Fresnel reflections. Отжать кнопку L у Fresnel reflections. Значение Fresnel IOR - 4.
В свитке Maps: значение Reflect - 50.
Копию карты из Reflect перетаскиваем в Bump , значение Bump - 24. Не забыть нажать кнопку Show standard map in viewport!
Выделяем потолок. Применяем модификатор UVW Map: маркер поставим у Box, длина, ширина и высота - 800. Применим материал на потолок.
Применим штукатурку и на стены. Для этого добавим штукатурку в многокомпонентный материал Multi/Sub-object (простым перетаскиванием). На уровене Polygon - выбираем полигоны, задаем ID штуктурки в свитке Polygon: Material IDs.
Применим так же этот материал и на картуши. С помощью кнопки Select by Name выбираем все картуши, группируем их, применяем модификатор UVW Map (Box, 800х800х800), потом применяем материал.
Создадим материалы для молдингов и для плинтусов
Открываем Material editor (горячая клавиша М). Выбираем свободный шар, даем имя материалу . Кнопка Standart правее названия материала.
В окне Material\Map Browser → В свитке Materials → В подсвитке V-Ray Adv 2.40.03 → выбираем VRayMtl → Ok.
Выбираем белый цвет у Diffuse (не ставьте значение чистого белого 255, поставьте поменьше 242, например, для того, чтобы белый потом не имел пересветов). Цвет у Reflect выбираем серый (где-то посередине значения Value). Ставим галочку у Fresnel reflections. Значение Refl. glossiness 0.6. Не забыть нажать кнопку Show standard map in viewport!
Применяем материал к молдингам и плинтусам.
Создадим материал для паркета. «Постелим» паркет с помощью скрипта Floor generator
В следующей статье мы продолжим работу над проектом - добавим источники света.
Уровень сложности: Легко
1 шаг
Для того, чтобы наложить текстуру, необходим любой объект. Рассмотрим это на примере кубов (Box). Первый 1Box будет землей, второй 2Box будет нашим объектом. (см. Скриншот).
2 шаг
Нажимаем англ. M на клавиатуре, появится меню текстур. Щелкаем по свободной сфере, чуть ниже есть подменю Maps открываем его, в Diffuse Color (вторая строчка) нажимаем на кнопку None. В еще одном подменю нажимаем на Bitmap (растровая текстура). (см. Скриншот)
3 шаг
Теперь предстоит выбрать само изображение для текстуры, оно может быть любого формата и любого разрешения. Поставим значение All Formats, для того, чтобы отображались все графические форматы. Я выбрал текстуру Металла. Нажимаем на кнопку Применить. (см. Скриншот)
4 шаг
Перетащим (сферу) на объект 2Box, чтобы она отображалась в окне просмотра, нужно включить опцию Show Standart Map in Viewport (см. Скриншот). Все, текстуру мы наложили, теперь нужно только подогнать. В меню Coordinates есть два параметра: Offest, Tiling они нам понадобятся для подгона. При изменении параметра Offest текстура передвигается, а при изменении параметра Tiling текстура уменьается, увеличивается. Таким образом можно подогнать текстуру на любой объект.