Как сделать карту в 3ds max

Обновлено: 06.07.2024

По прошествии 1,5 месяцев, я написал вторую часть урока по работе с displacement в mental ray для Autodesk 3ds Max.

Для начала, хочется заметить, что я писал данный урок, основываясь на полученных мною знаниях и опыте в ходе работы над изучением настроек и применения displacement в mental ray. Так же дополнительно здесь даны сведения о том, как создать карты смещений в ZBrush и применить их в последствии в 3ds Max. ZBrush я только изучаю, и поэтому прошу меня сильно не «бить» за возможные ошибки, и даже прошу помочь в исправлении появившихся ошибок.

И на последок, в самом низу данного урока находится ссылка на файл в формате pdf. В Данном файле находятся обе части урока, как первая, так и вторая, которую вы сейчас видите. Это сделано для удобства, что бы можно было просто иметь обе части под рукой.

На этой ноте мы переходим ко второй части урока по displacement в mental ray для Autodesk 3ds Max 9.

Управление смещением при использовании разных шейдеров.

При работе с displacement вы можете применить настройки из Render Scene только ко всем объектам сцены сразу.

Но если у вас используются разные шейдеры, например на одном объекте вы используете 3D Displacement (3ds Max), а на другом объекте применен шейдер смещения Height Map Displacement (3ds Max). То обойти проблемы визуализации, которые могут возникнуть, вам позволят настройки в свойствах объекта.

Открываете свойства объекта - Object Properties.

Рис. 1. Квадратичное меню 3ds Max с выбранным пунктом Object Properties. Модель монстра создана Антоном Чеченевым (aka Cafe hypAnimatico).

Переходите на закладку mental ray.

Рис. 2. Закладка mental ray в свойствах объекта.

В группе Displacement убираете флажок Use Global Settings.

Становятся активными параметры View - Depended; Smoothing (turn OFF with Height Maps); Edge Length; Max. Displace; Max. Level.

Рис. 3. Активные параметры View - Depended; Smoothing (turn OFF with Height Maps); Edge Lenght; Max. Displace; Max. Level в свойствах объекта.

Данные параметры полностью дублируют параметры displacement'a из окна Render Scene, НО они применяются к объекту, в свойствах которого они изменены.

И еще, в отличие от Max. Subdiv, параметра в Render Scene, в свойствах объекта указывается параметр Levels, данный параметр влияет на число разбиений модели, а не на количество полигонов как в Render Scene.

Displacement в материале Arch&Design (mental ray).

И так, как же применить displacement к материалу Arch & Design? А вот не просто так.

Давайте сначала разберемся, как выглядит материал Arch & Design.

Рис. 4. Скриншот редактора материалов и материала Arch & Design.

Так выглядит материал Arch & Design, в нем как видите, масса настроек, даже на скриншот вошли не все свитки.

Так же уже тут были применены заготовки материала, в данном случае обычный бетон.

Как же работать с displacement? В материале Arch & Design есть свиток Special Purpouse Maps, он служит для добавления таких эффектов как Bump, Dispalcement (!), Coutout, Environment, Additional Color/Self Illumination.

Рис. 5. Скриншот свитков Special Purpose Maps и mental ray Connection.

Но в этом свитке в пункт Displacement НЕЛЬЗЯ добавить шейдеры 3D Dispalcement (3ds Max), Height Map Dispalcement (3ds Max) - Разработчики, почему-то не включили данные шейдеры на совместимость с данным материалом. Но вопрос решается за счет свитка mental ray Connection, который доступен при активации расширений mentla ray (это описано в основном уроке).

Теперь давайте посмотрим на тестовые примеры. Для этой части я создал сцену с плоскостью, на ней обычный куб, и двумя источниками света.

Сначала я отвизуализировал стандартный материал, без какого либо смещения.

Рис. 6. Тестовая визуализация сцены с кубом.

Т.к. нельзя добавлять нам шейдеры 3D Dispalcement (3ds Max), Height Map Dispalcement (3ds Max) в канал displacement свитка Special Purpouse Maps, то я убрал замочек с пункта Displacmeent в свитке mental ray connection.

Затем я добавил шейдер Height map Dispalcement (3ds Max) и в канал Height Map добавил обычную карту Tiles.

Произвел настройки в параметрах шейдера, указав Minimum Height и Maximum Height, затем в окне Render Scene настроил параметры смещения, и у меня вышло следующее.

Рис. 7. Тестовая визуализация сцены с кубом, здесь я уже добавил шейдер Height Map Dispalcement.

Как видите резкие края, не обеспечивают реалистичности модели, для исправления этого в материале Arch & Design есть свиток Special Effects, в нем есть группа Round Corners, она обеспечивает сглаживание резких граней, как на геометрии созданной обычной сеткой, так и на геометрии с применением displacement.

Рис. 8. Параметры свитка Special Effects.

Для задания сглаженности углов используйте параметр Fillet radius, если же ваш объект пресекается с другим и при пресечении создается кромка, то прибегните к использованию флажка Blend with other materials.

После установки параметров в Round Corners я провел тестовую визуализацию, у меня получилось вот что:

Рис. 9. Финальная картинка, со сглаженными углами кладки, при использовании Round Corners.

При использовании материала Arch & Design можно создавать кирпичные кладки с плавными углами кирпичей и не только, что поможет создать очень реалистичную картинку.

Создание displacement maps в ZBrush 3 и использование их в 3ds Max и mental ray.

Данный микро урок я посвящаю теме ZBrush и созданию в нем displacement карт для последующего использования их в 3ds Max.

Как же использовать ZBrush я вам расскажу на примере модели монстра из первого микро урока, созданной моим другом Антоном Чеченевым (aka Cafe HypAnimatico), за что ему огромное спасибо и уважение.

Модель выглядит так.

Рис. 10. Модель монстра, скриншот окна проекции и тестовая визуализация без применения карт смещения.

Данный урок ориентирован на пользователей, которые уже знакомы с общими принципами и интерфейсом ZBrush 3, но хотят узнать, как создавать карты смещения и добавлять их в основное приложение визуализации.

Первое что я сделал – это импортировал модель монстра в ZBrush посредствам файла формата obj. И сгладил её до 6 уровней. Модель приняла вот такой вид.

Рис. 11. Модель монстра импортированная из 3ds Max в ZBrush 3.

Рекомендую вам при создании моделей персонажей для последующей их обработки в ZBrush (или MudBox) уделять особое внимание топологии, все модели должны обладать 4-х угольными полигонами! Не треугольными, пятиугольными и более, а именно 4-х угольными! В свойствах экспорта obj файла, установите параметр Polygons в группе Geometry пункт Faces (в экспортере для 3ds Max).

Далее я детализировал модель до вот такого вида.

Рис. 12. Детализированная модель монстра.

Теперь пришло время создать карту смещений.

Я воспользовался модулем Multi Displacement 3, находящимся меню ZPlugin > Multi Displacement 3.

Рис. 13. Меню ZPlugin с выбранным пунктом Multi Displacement 3.

Указав размер текстуры в 2048х2048 pix, я перешел к настройкам параметров экспорта.

Щелкнув на кнопке Export Options, откроется окно с настройками экспорта карт смещения, и нормалей.

Рис. 14. Окно параметров экспортера Multi Displacement 3.

Для экспорта своих карт, я выбрал пункты: D32 и D16 это означает что данный экспортер будет экспортировать карты смещений двух видов – изображения с 32 битами на канал, и карты с 16 битами на канал. Когда вы выбираете новый тип или меняете его на другой тип, то нужно отключить или включить его посредствам нажатия кнопки Status.

При помощи ползунка, находящегося в правом нижнем углу с сэмплом изображения, вы можете настроить яркость и контрастность будущей карты.

После того как вы указали все настройки, и закрыли окно настроек экспортера, начинайте экспорт текстур. Для этого нажмите кнопку Create All. Но хочется сразу вас предупредить, что создаваемая карта, зависит от разрешения вашей модели, например я не смог экспортировать модель при 7-ми уровнях сглаживания, но смог спокойно экспортировать её при 6-ти, будьте внимательны.

Рис. 15. Процесс экспорта карт смещения.

После экспорта я открыл полученные карты текстур в Adobe Photoshop.

И сравнил их карта в 32 бита на канал, предает больше деталей, чем карта на 16 бит, НО есть небольшое НО. 3ds Max не поддерживает 32 битный формат tiff. Как же этого избежать? А просто, в Photoshop выберите меню Image > Mode > 16 bits/channel. Затем, если у вас карта текстур оказалась развернутой на 180 градусов, то разверните её в соответствии с разверткой вашей модели, используя команду Image > Rotate Canvas > 180 град.

Рис. 16. Редактирование карты текстуры в Adobe Photoshop.

Для сравнения вида 32 битной карты и 16 битной вы можете посмотреть на этот скриншот.

Рис. 17. Вид карты созданной в 32 bit формате (слева) и в 16 bit формате (справа).

Затем, в 3ds Max я воспользовался стандартным материалом и свитком mental ray Connection, для того, что бы создать простой материал с применением шейдера смещения. В свитке mental ray Connection я снял «замочек» с пункта displacement в группе Extended Shaders, и добавил шейдер 3D Displacement (3ds Max).

Рис. 18. Создание материала с шейдером смещения 3D Displacement (3ds Max).

В шейдере 3D Displacement (3ds Max) я добавил в качестве карты Extrusion Map карту с 16-битным изображением. А в параметрах текстуры указал: Blur = 0,01, RGB Offset = -0,5. Это позволило обеспечить четкость карты текстуры и её деталей (Blur параметр) и немного увеличить контрастность изображения (RGB Offset параметр).

Рис. 19. Установка параметров карты текстуры для параметра Extrusion Map в шейдере 3D Displacement.

В самом шейдере 3D Displacement (3ds Max), я указал следующие значения в параметрах Displacement Length и Extrusion Strength – 10,0 mm и 65,0 соответственно.

Рис. 20. Настройка шейдера 3D Displacement (3ds Max)

В окне Render Scene я выполнил следующие настройки: указав Edge Lentght = 1,0 pix., Max. Displace = 1500,0 mm, Max. Subdiv. = 64K. Флажки View & Smooth я оставил нетронутыми, т.е. включенными.

Рис. 21. Параметры в окне Render Scene.

Произведя визуализацию, я получил вот такой вот результат.

Рис. 22. Результат визуализации карты смещения примененной к модели в 3ds Max.

И не забывайте про совет, старайтесь создавать не только карту смещения (displacement), но и карту рельефности (bump) т.к. карта смещения может не передать всех мелких деталей на модели и при этом, если вы накрутите очень серьезные настройки. Вы можете не дождаться пока компьютер, обработает вашу модель, или чего хуже просто не хватит ОЗУ и 3ds Max сообщит вам об ошибке.

PDF версия урока.

В данном pdf файле на 39 страниц, Вы найдете все две части урока по displacement в mental ray и сможете его распечатать на листах формата А4. Так же в данном документе дано содержание на все пункты урока, с ссылками на них, это позволит вам быстро переместиться на интересующий вас раздел.

Внимание! Убедитесь, что у вас есть Adobe Acrobat Reader (загрузить) версии не ниже 7.0, или аналогичная программа, поддерживающая формат pdf.

Если у вас есть что добавить к данному уроку или вы хотите поделиться опытом по созданию displacement, то пишите в теме форума, посвященной дополнениям к данному уроку.


Карта нормалей спасает в ситуации, когда нам нужна модель с малым количеством полигонов, но с хорошей детализацией. Наложив карту нормалей на lowpoly (низкополигональную) модель, мы увидим результат только на рендере. Такой способ применяется в создании игр, когда каждый лишний полигон требует большей производительности компьютера, а просчёт карты нормалей требует значительно меньше ресурсов ПК.

Создание LowPoly модели

Изначально у нас есть HighPoly модель Box001 (с большим количеством полигонов). У нас стоит задача сделать LowPoly модель, которая будет повторять основные формы заданной модели.

karta-normalej-1

В данном случае хватит всего 14 полигонов что бы сделать основу (Box002) для наложения карты нормалей с Box001.

karta-normalej-2

Настройка визуализации карты нормалей

Выделив Box002, нажимаем на вкладку Rendering/RenderToTexture (горячая клавиша «0»).

karta-normalej-3

Перед нами открылось окно Render To Texture. В параметрах Projection Mapping ставим галочку напротив Enabled, нажимаем Pick…, выделяем HighPoly модель и кликаем Add.

karta-normalej-4

Вокруг объекта появился контейнер проецирования, который надо подогнать так, чтобы в него поместилась вся HighPoly модель. Для этого переходим на вкладку Modify/Projection/Cage, нажимаем Reset, если контейнер был автоматически создан с искаженной формой, и изменяем параметры Amount и Percent, увеличивая контейнер до нужного размера.

karta-normalej-5

В окне Render To Texture, в параметрах Output нажимаем Add… Если вы рендерите с помощью Vray, то выберите Vray Normals Map и нажмите Add Elements. Если используете стандартный рендер, то выберите Normals Map.

Есть возможность изменить имя карты (Name), путь для сохранения карты нормалей (File Name and Type), тип слота материала (Target Map Slot), а также размер карты (Width/Height).

karta-normalej-6

Нажимаем Render и видим результат.

karta-normalej-7

P.S.: Карта нормалей сохраняется автоматически. Стандартный путь сохранения: C:\Users\Документы\3dsMax\sceneassets\images.

Применение карты нормалей к LowPoly модели

Выделяем ранее созданную LowPoly модель.

На панели Modify выбираем модификатор Automatic Flatten UVs, который был создан автоматически в процессе создания карты нормалей. Нажимаем кнопку Open UV Editor… В открывшемся окне выбираем File/SaveUVs…, и сохраняем развёртку.

Открываем редактор материалов MaterialEditor (горячая клавиша М), создаём материал VRayMtl. В слот Bump выбираем карту Normal Bump.

karta-normalej-9

Заходим в параметры карты Normal Bump. В слот Normal выбираем карту Bitmap, и открываем ранее созданную карту нормалей. Применяем созданный материал к LowPoly модели.

karta-normalej-10

На панели Modify добавляем модификатор Unwrap UVW. Нажимаем кнопку Open UV Editor… В открывшемся окне выбираем File/LoadUVs… и загружаем сохранённую развёртку.

karta-normalej-11

В окне Edit UVWs, в правом верхнем углу, открываем свиток текстур и выбираем созданную нами карту нормалей.

karta-normalej-12

Запустив Render, мы увидим, что LowPoly модель имеет те же детали, что и HighPoly. Детали можно сделать более или менее выраженными, меняя значения параметра Bump в используемом материале.

Например, чтобы нарисованные глаза на текстуре совпадали с геометрией глаз на 3D-модели. Теоретически (как и практически) это возможно и довольно просто, ведь всем вершинам 3D-модели назначены текстурные координаты, следовательно, если определенным текстурным координатам назначить определенную часть изображения, то данная часть изображения расположится именно там, где нам нужно.

Текстура, с рассчитанными координатами для определенных ее частей называется текстурной разверткой.

Сейчас мы познакомимся с методом создания текстурной развертки, а именно с модификатором Unwrap UVW. Мы создадим простую модель книги и протекстурируем ее.

Для этого сначала создайте модель книги, как показано на рисунке 1.
Рисунок 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. Визуализация полученной сцены.

Это моя первая статья на 3DDD так что не судите строго.

Итак что мы имеем: 2 вида гаек, один высокополигональный переименуем его в Hi:


и 2-й вид низкополигональные модели, их 3 штуки для 3-х способов, переименуем их в Low, Low_a1 и Low_a2, соответственно:


Итак 1 способ который предлагался в теме на форуме: Это запекание карты нормалей с единственной группой сглаживания и с развёрткой имеющей минимальное количество швов. Для этого выделяем объект Low, нажимаем на кнопку Smoth, панели Ribbon:


И получаем вот такую гайку:


Далее накидываем модификатор Unwrap UVW и выделяем грани которые будут являться швами, после чего нажимаем на кнопку Convert Edge Selection to Seams (Номер 1 на картинке), а затем нажимаем цифру 3 (режим работы с полигонами), Ctrl+A (выделить всё),после чего нажимаем на кнопку Quick Peel (Номер 2 на картинке).


Получаем вот такую развёртку:


Модель подготовлена! Теперь необходимо установить в те же координаты высокополигональную модель и наконец приступить к настройке.

1-е что необходимо сделать это установить источник освещения типа Skylight из свитка Standart. Затем выделить объект Low. (Вообще данный пункт не обязателен для запекания карты нормалей, ибо там не учитывается освещение, устанавливать источник освещения требуется только если с картой нормалей вы запекаете другие карты, к примеру АО, но так как я обычно запекаю несколько карт, данный пункт появился по привычке)

2-е. Нажать на цифру 0(вызов окна Render To Texture по умолчанию)на клавиатуре.

В открывшимся окне включить чекбокс Enable (номер 1 на картинке), этим чекбоксом активируется проецирование выбранного объекта на текстуру. Затем следует нажать на кнопку Pick. (номер 2 на картинке), в появившемся окне выбрать обьект с именем Hi (номер 3 на картинке), после чего подтвердить свой выбор нажав на Enter.

Далее выберите Use Existing Channel (номер 4 на картинке), таким образом вы указываете 3ds max что у вас уже есть развёртка после чего можете выбрать на каком канале находится нужная. Затем нажмите на кнопку Add. (номер 5 на картинке):


В появившемся окне выберите Normal Map (номер 1 на картинке), затем нажмите Add Elements (номер 2 на картинке) и установите Target Map Slot на Bump (номер 3 на картинке), после чего нажмите на кнопку 1024х1024 (номер 4 на картинке), это позволит вам выбрать разрешение будущей карты. Если размер вам не подходит можно указать его в соответствующем окне немного правее, ограничение - квадрат 8192х8192px.


Далее, если хотите, можете указать путь, формат и имя будущей карты нажав на кнопку со знаком . рядом со слотом File Name and Type.

Здесь настройка завершена, однако не стоит закрывать окно, просто отодвиньте его чтобы не мешалось. Теперь выделяем объект Low и видим что появился новый модификатор Projection, открываем в нём свиток Cage, затем включаем чекбокс Shaded (это позволяет видеть границы запекаемого объекта, пересечение с которым приведут к появлению красных зон на будущей текстуре), затем в разделе Percent укажите -100 это позволит вам сбросить Cage до границ низкополигональной модели, а затем, поиграйте со значением Amount - вам потребуется установить такое значение чтобы граница между Low poly и Hi Poly моделью была минимальной, но при этом чтобы не было пересечений, если же подобными махинациями не удаётся достичь требуемого результата можно поработать с Cage на уровне вершин и полигонов выбрав соответствующую иконку в свитке Selection.


Далее возвращаемся в окно Render to Texture и нажимаем окно Render в самом низу. Сразу замечу что 3DS max не отображает карту которую рендерит, а отображает карту Diffuse слота даже если она не установлена на рендер, то есть если ваша высокополигональная гайка была красного цвета, то в окне вы увидите развёртку залитую красным цветом.


Открыв текстуру в фотошопе видим следующее:


Затем если мы подгрузим лоуполи модель с данной текстурой в Marmoset toolbag увидим следующее:


Как бы неплохо, но с косяками. Теперь перейдём ко второму, правильному, способу:

1. Выберите объект Low_a1, нажмите 2 на клавиатуре и выберите все те эджи которые, по вашему мнению, должны быть жёсткими, то есть иметь разные группы сглаживания по разным сторонам эджа. У меня вышло вот так:


2. Нажмите на кнопку Hard (номер 1 на картинке), это позволит вам получить эффект описанный выше.

3. Теперь нам нужно сделать развёртку делая швы аккурат в том месте где у нас проходят Hard эджи, для лучшего ориентирования включите их отображение кликнув по чекбоксу Display Hard Edges(номер 2 на картинке). Чуть левее вы можете выбрать цвет отображения Hard эджей.

4. Накидываем модификатор Unwrap UWV, выделяем все наши хард эджи, а также 1 грань внутри гайки. После чего нажимаем на Convert Edge Selection to Seams, а после на Quick Peel. Получив развёртку нажмите на кнопку Pack: Custom (подчёркнута на изображении ниже)


Данную развёртку можно упаковать и лучше, но для примера.


5. Повторяем все те же действия что и на 1 способе:




Нажав рендер получаем вот такую карту нормалей:


А подгрузив всё в мармосет вот такую модель:


Теперь эксперемента ради рассмотрим третий способ возьмём третью гайку Low_a2, повторим действия с хард эджами и накинем на неё развёртку от гайки Low, что получится? И так ли важна развёртка?

После всех махинаций получаем вот такую карту нормалей:


А в мармосете мы видим вот такую модель, с косяками на хард эджах:


Итак мы приходим к выводам: 1) можно использовать сколько угодно групп сглаживания 2) швы развёртки должны располагаться на хардэджах.

Читайте также: