Autodesk 3ds Max 9 – Работа с картами Displacement в Mental Ray
Autodesk 3ds Max 9 – Работа с картами Displacement в Mental Ray
Приветствую вас, дорогие читатели.
Позвольте представиться, меня зовут Дмитрий Чехлов (aka dimson3d), родился и живу в городе Екатеринбурге, и учусь я на 4-ом курсе «Уральского института бизнеса», по специальности «Информатик-экономист». Но основной целью выбрал для себя компьютерную графику. В своих работах использую в основном Autodesk 3ds Max; Autodesk Maya; Adobe Photoshop и изучаю потихоньку Pixologic ZBrush.
Вы можете задать мне любые появившиеся у вас вопросы, по данному уроку и я постараюсь на них ответить. Мои e-mail и ICQ есть в данных обо мне.
Введение
В данном уроке, я хочу рассказать вам про работу с displacement в mental ray для 3ds Max. Я опишу 2 шейдера, предназначенных для работы с displacement в mental ray, и их настройки. Для примера я взял горный ландшафт, что, на мой взгляд, идеально подходит для демонстрации возможностей displacement.
Для данного урока вам потребуется файл архива с необходимыми для урока материалами: practice_resource.rar (3,49 Mb), загрузите его и разархивируйте в удобную для вас папку. В данном архиве находятся стартовая сцена, текстурная карта, для смещения, и три тестовых рендера созданных по ходу работы над этим уроком.
Данный урок ориентирован на пользователей, которые только начинают знакомиться с mental ray или хотят сравнить возможности mental ray displacement и displacement другого визуализатора, к примеру, V-Ray или Final Render.
Подготовка mental ray, активация дополнительных возможностей и расширений.
По умолчанию, mental ray в 3ds Max работает только со стандартными материалами 3ds Max. Нам же требуются для работы возможности и шейдеры mental ray, а не стандартных материалов. По умолчанию вид Material/Map Browser выглядит так:
Вид Material/Map Browser без активных расширений mental ray.
Для активации всех возможностей mental ray реализованных в 3ds Max, выполните следующее:
Откройте меню Customize > Preferences…
Перейдите на закладку mental ray.
Установите флажок Enable mental ray Extensions. Этот флажок активирует шейдеры mental ray необходимые нам для работы.
Подтвердите все изменения, нажав на кнопку Ok.
Активация расширений mental ray для работы с шейдерами и материалами.
Теперь шейдеры для работы с mental ray активны, можно приступать к созданию сцены. И работе с шейдерами смещения.
Немного теории о шейдерах и настройках mental ray для визуализации displacement.
Как известно, карты смещения (displacement maps) служат для деформации сетки модели за счет полутоновых значений карты текстуры, и показателя применяемой силы. Благодаря современным алгоритмам, используемым в современных средствах визуализации, можно создать детальную модель, применив карту смещений всего к одному полигону!
В mental ray встроенном в 3ds Max для работы со смещением предоставляются 2 шейдера, которые добавляются в слот Displacement как в обычном материале типа Standard. Так и в материалах специально созданных для mental ray, такими материалами являются mental ray, SSS Fast Skin Material + displace (mi) и другие. Так же можно добавить шейдеры смещения в слот Displacement в свитке mental ray Connection, у любого стандартного материала.
Свиток mental ray Connection в материале типа Standard.
Свиток mental ray Connection становится доступен после активации расширений mental ray, о чем было рассказано выше.
Какие же шейдеры нам подходят для работы с displacement в mental ray? Нам подходят шейдеры: 3D Displacement (3ds Max), Height Map Displacement (3ds Max). Данные шейдеры специально были разработаны для mental ray и работы с картами смещения (displacement maps).
Шейдер 3D Displacement (3ds Max):
Интерфейс шейдера 3D Displacement (3ds Max).
Object Independent – параметр отвечающий за то что смещение независимо от объекта.
Displacement Length – это значение отвечает за высоту и глубину смещения, чем выше число тем выше будет выступать наша гора.
Extrusion Strength – отвечает за силу смещения.
Extrusion Map – в данный слот можно добавить текстурную или процедурную карту, для того что бы по ней осуществлялось смещение.
Direction Strength – это значение отвечает за степень направленности смещения чем выше значение тем более точным будет смещение и результат.
Direction Map – в данный слот так же добавляется текстурная или процедурная карта по которой будет осуществляться направление выдавливания.
В свиток Shaders добавляются шейдеры или карты текстур для управления Extrusion Strength, Direction Strength.
Шейдер Height Map Displacement (3ds Max):
Интерфейс шейдера Height Map Displacement (3ds Max).
Minimum Height – эта величина указывается для минимального направления смещения, в отрицательных значениях.
Maximum Height – этот параметр указывается для максимального значения смещения в верх.
Height Map – в данный слот добавляется шейдер, текстурная или процедурная карта.
Настройки displacement в Render Scene:
Далее, все настройки выполняются в окне Render Scene на закладке Common, для этого существует свиток Shadows & Displacement и группа Displacement (Global Settings).
Интерфейс глобальных параметров displacement в mental ray Renderer.
View – этот параметр отвечает за пространство в котором рассчитывается displacement. Если данный параметр активен, то расчет длины смещения производится в пикселях, если же он отключен, то расчет производится в единицах измерения сцены, в нашем случае это миллиметры.
Smoothing – Отключите данный параметр, если вы используете height maps, т.к. height maps могут быть созданы посредствам normal maps. Если же данный параметр активен, то он усредняет значение сглаживания между нормалями, и производит плавный переход при использовании стандартных средств смещения, таких как 3D Displacement.
Edge Length – указывает длину ребра для разбиения сетки, когда Mental Ray доходит до этого значения то уплотнение сетки объекта прекращается. Чем ниже значение, тем более детальным будет уплотнение сетки и соответственно модель объекта.
Max. Displace – Управляет максимальным спадом действия смещения на вершины, в мировых единицах.
Max. Subdiv – Управляет степенью рекурсивного разбиения сетки для смещения.
Создание сцены.
Сначала я изменил, единицы измерения в сцене – это необходимо для корректной работы mental ray с displacement.
Открыв диалоговое окно Units Setup, из меню Customize > Units Setup…
Я поставил флажок Metric в группе Display Unit Scale и в раскрывающемся списке выбрал Millimeters, подтвердив все изменения, нажал кнопку Ok.
Настройка единиц измерения в сцене 3ds Max.
Далее я создал плоскость (объект Plane) размером в 400 мм в длину, 400 мм в ширину. Перейдя на панель Modify, изменил Length Segs и Width Segs, сделав их равными 1.
Создание плоскости с одним полигоном, для нашего эксперимента с displacement.
Теперь у нас есть плоскость с одним полигоном, теперь нужно позаботиться об освещении в сцене.
Далее я создал источник света типа Omni и, задал ему следующие параметры: в свитке General Parameters в группе Shadows поставил флажок On, и в раскрывающемся списке выбрал Ray Traced Shadows. Multiplier оставил равным 1.
Затем переместил только что созданный источник света по оси X на -300 мм, по оси Y на 300 мм, по оси Z на 400 мм.
Создав еще один источник света типа Omni, ввел следующие параметры: в свитке General Parameters в группе Shadows поставил флажок On, и в раскрывающемся списке выбрал Ray Traced Shadows. Multiplier сделал равным 0,4. Данный источник света у меня играл роль заливающего света.
Затем переместил только что созданный источник света по оси X на 300 мм, по оси Y на -400 мм, по оси Z на 200 мм.
Создание 2-х источников света в сцене, и настройка их параметров.
Если вы использовали mr Area Omni то, будьте осторожны т.к. в этом источнике света используются площадные (Area) тени, если вы не хотите долго ждать, пока компьютер визуализирует сцену то, отключите их, убрав флажок On в свитке Area Light Parameters.
При финальной визуализации этот параметр можно включить снова.
Отключение площадных источников света mr Area Omni и mr Area Spot, свиток Area Light Parameters, отключается флажок On.
Создание камеры. Для этого нажав Shift+F для активации режима Safe Actions, я отмасштабировал сцену так, чтобы углы плоскости не выходили за границы Action safe (как показано на рисунке ниже) затем, нажав клавиши Ctrl+C, (эта комбинация клавиш создает нацеленную камеру из окна проекции Perspective),я создал нацеленную камеру. Я вам рекомендую пользоваться таким способом создания камеры, когда вы в окне перспективы нашли нужный вам план и композицию, это очень удобно и экономит время. При этом вы всегда можете настроить камеру по своему вкусу.
Создание камеры из окна проекции Perspective, с расположением сцены в кадре. И какие используются клавиатурные комбинации.
Когда сцена была уже готова, осталось только выбрать mental ray для визуализации: нажав клавишу F10 для того, что бы открыть диалоговое окно Render Scene, и на закладке Common в свите Assign Renderer щелкнув на кнопке с троеточием у пункта Production, в окне Choose Renderer выбрал mental ray Renderer.
Теперь у меня все было готово для того, что бы начать работу с displacement шейдерами mental ray.
Выбор mental ray Renderer в качестве основного.
Использование Displacement шейдеров Mental Ray на примере создания модели горного ландшафта.
В 3ds Max для работы с картами смещения существует несколько способов это такие как применение модификатора Displacement, и работа с материалами 3ds Max и шейдерами Mental Ray, я вам опишу способ, который мне дал Mental Ray 3.5. Основные инструменты управления Displacement’ом находятся в: Material Editor и Render Scene Dialog.
В редакторе материалов 3ds Max в стандартном материале используется слот displacement из свитка Maps, в материале Mental Ray используется слот Displacement из группы Extended Shaders. В окне диалога Render Scene для настройки displacement используется свиток Shadows & Displacement, группа Displacement (Global Settings), а так же группа параметров Ray Tracing свитка Rendering Algorithms для оптимизации процесса визуализации.
В редакторе материалов работа с картами смещения представлена в виде наборов шейдеров Mental Ray, которые в свою очередь добавляются в слот канала карт смещения.
Список шейдеров mental ray доступных в 3ds Max для работы с displacement.
Продолжив работу над сценой, я приступил к созданию шейдеров.
Моя цель заключалась не в создании ландшафтов, как таковых, т.к. 3ds Max нам дает массу разных возможностей по созданию ландшафтов. Я на примере модели ландшафта рассматривал работу двух шейдеров Mental Ray для создания смещения – это 3D Displacement (3ds Max) и Height Map Displacement (3ds Max) шейдеров.
Шейдер 3D Displacement (3ds Max).
Открыв редактор материалов, и нажав на кнопку Get Material. Я выбрал в списке материалов, материал Mental Ray – он послужил отправной точкой, в создании шейдера с использование карты смещения.
Создание шейдера (материала) Mental Ray.
Затем, для того, что бы шейдер формировал поверхность объекта, я добавил шейдер DGS Material (3ds Max) щелкнув на кнопке рядом с надписью Surface. После этого задал Diffuse Color практически белый цвет.
Т.к. модель, которую я создавал, не является прозрачной и отражающей, а блики должны быть мягкими я задал следующие значения параметров: Glossy Highlights (Глянцевитость) = R: 0,1; G: 0,1; B: 0,1; Shiny (Сияние) = 5; Index Of Refraction (Преломление) = 1,0
Добавление и настройка шейдера DGS Material (3ds Max) в слот Surface материала Mental Ray.
Добавляем шейдер смещения 3D Displacement:
Вернувшись в материал Mental Ray, и щелкнув на кнопке с надписью None рядом с пунктом Displacement. Это группа Extended Shaders. В открывшемся окне Material/Map Browser я выбрал 3D Displacement (3ds Max).
Далее я начал добавлять карту смещения, щелкнув на кнопке None рядом с надписью Extrusion Map. Выбрал Bitmap и затем открыл карту текстуры mountain.tga.
Данная карта высот была сгенерирована программным обеспечением основанном на фракталах, а не рисовалась вручную, рекомендую вам использовать такие программы т.к. они создают очень впечатляющие ландшафты, небо, и облака и прочие хитрости так необходимые в работе.
Методом перетаскивания, я перетащил карту из слота Extrusion Map в слот Direction Map на кнопку с надписью None, в появившемся диалоговом окне Copy (Instance) Map я выбрал Instance.
Создание шейдера для смещения 3D Displacement (3ds Max) и добавление карты текстуры.
Полученный шейдер я назначил объекту disp_object – это однополигонная плоскость.
Следующее что я сделал – настроил параметры смещения в шейдере 3D Displacement (3ds Max).
В параметрах шейдера 3D Displacement (3ds Max) я указал: Displacement Length = 150,0 mm; Direction Strength = 4,0
Произведя тестовую визуализацию, у меня получилась вот такая картинка.
Время визуализации 3 секунды, объем занимаемой ОЗУ 159,6 Mb.
Визуализация данной сцены выполнялась на компьютере с Intel Core2 Duo 6600 (2,4 GHz), 2 Gb RAM. (файл 019low.jpg)
Не очень да? Правильно сейчас сетка геометрии дробится не так сильно, как хотелось, поэтому она слишком сглажена и не такая плотная.
Для изменений этого, я выполнил настройки в Render Scene, и перейдя на закладку Renderer, в свитке Shadows & Displacement я настроил параметры следующим образом:
Настройка Displacement (Global Settings) в окне Render Scene.
Убрал флажок View, это позволило выполнять алгоритм разбиения в единицах сцены, т.е. миллиметрах.
Установил значение Edge Length равным 0,5 мм, это оптимально разбивает геометрию, при этом, не нагружая память и ресурсы компьютера.
И установил Max. Displace равным 1000,0 мм. Max. Subdiv = 4К (4000).
Для моего примера этого полностью хватает, и не занимает много времени на визуализацию. Теперь я получил результат более детальной модели ландшафта.
Время визуализации 21 секунда, объем занимаемой ОЗУ 337,2 Mb.
Визуализация данной сцены выполнялась на компьютере с Intel Core2 Duo 6600 (2,4 GHz), 2 Gb RAM.
Шейдер Height Map Displacement (3ds Max).
Но результат, который нам дает шейдер 3D Displacement (3ds Max) не всегда дает четкие детали на модели, более четких деталей позволяет добиться шейдер Height Map Displacement (3ds Max), особенно при использовании карт нормалей (normal maps).
Выбрав в списке материалов, материал Mental Ray и поместил его в свободном слоте материалов.
Скопировав шейдер DGS Material (3ds Max) из созданного ранее шейдера 3D Displacement Shader используя Instance.
Я создал новый шейдер для Displacement, для этого щелкнув на кнопке None рядом с надписью Displacement, и выбрав шейдер Height Map Displacement (3ds Max).
После чего я добавил карту высот из файла mountain.tga к параметру Height Map.
Используя тип Instance при копировании, вы можете сэкономить время на том что бы не менять постоянно одни и те же параметры в обоих шейдерах.
Далее, я изменил параметры, Minimum Height = 0 мм; Maximum Height = 150 мм.
В окне Render Scene на закладке Renderer в свитке Shadow & Displacement я убрал Smooth, т.к. при работе с Height Map Displacement (3ds Max) шейдером, этот параметр желательно отключить.
Произведя визуализацию, я получил еще большую передачу деталей ландшафта.
Время визуализации 21 секунда, объем занимаемой ОЗУ 332,4 Mb.
Визуализация данной сцены выполнялась на компьютере с Intel Core2 Duo 6600 (2,4 GHz), 2 Gb RAM.
Давайте сравним результаты визуализации обоих шейдеров, вы увидите, что при визуализации с 3D Displacement шейдером модель очень сглажена, на ней нет всех деталей ландшафта, при визуализации же Height Map Displacement и с отключенным параметром Smoothing, появилось больше деталей на модели ландшафта, он стал с более резкими краями на перепадах, появились мелкие впадины и углубления.
Результат по времени визуализации обоих шейдеров на данном примере одинаков 21 секунда, объем расходуемой памяти так же составляет в разнице 2 -5 мегабайт. Но шейдер Height Map Displacement (3ds Max) визуализирует больше деталей, чем 3D Displacement (3ds Max).
Визуализация данной сцены выполнялась на компьютере с Intel Core2 Duo 6600 (2,4 GHz), 2 Gb RAM.
Главное помните, что вы должны грамотно строить свою сцену, и при использовании разных шейдеров, к примеру, 3D Displacement и Height Map Displacement можно добиться разных результатов, но при этом помните, что при работе с 3D Displacement флажок Smooth должен быть поставлен, а при работе с Height Map Displacement – убран.
Далее я создал текстуры гор, с использованием обычного материала Top/Bottom и материалов Standard с процедурными картами текстур типа Smoke и заданными цветами.
Сцена после финальной визуализации со всеми материалами и шейдерами и последующего композитинга в Photoshop выглядит вот так:
Финальная сцена с горным ландшафтом.
Так же дам вам схему финального шейдера для этого горного массива, созданную посредствам NodeJoe. Вы можете самостоятельно создать текстуру для данного ландшафта или, просто взглянув на схему ниже.
Схема финального шейдера для ландшафта показанного выше.
На этом практическая часть может быть окончена, вы в праве поэкспериментировать самостоятельно с настройками и комбинациями шейдеров, у вас практически безграничные варианты для создания своих собственных моделей за счет карт смещения. Ниже я хочу дать вам пару советов по работе с displacement в mental ray, и привести еще несколько дополнительных примеров по применению displacement в визуализации сложных моделей.
Несколько советов по использованию Displacement и настройки Mental Ray.
Как вы уже, наверное, догадались, смещение в Mental Ray рассчитывается достаточно долго, но это поправимо, сейчас я вам дам несколько советов по ускорению этого процесса.
- При тестовых визуализациях отключайте расчет Area Shadows, если вы используете mr Area Omni или mr Area Spot, т.к. площадные тени достаточно долго считаются в Mental Ray даже при использовании достаточно простых настроек. Это можно исправить, если отключить флажок On в свитке Area Shadows в этих источниках света. При финальной визуализации вы можете включить эти параметры.
- Старайтесь создавать не плотную сетку вашей модели, т.к. при разбиении плотной полигональной сетки оперативная память расходуется моментально, что приводит к падению Mental Ray и 3ds Max. Перед этим 3ds Max выдает сообщение о нехватке памяти или программной ошибке.
- При применении displacement к модели средней плотности аккуратно настройте параметры Max. Displace, Edge Length, Max. Subdiv – это особенно важно, когда вы детализируете органическую трехмерную модель.
- При использовании карт нормалей (Normal Maps) используйте шейдер Height Map Displacement (3ds Max) и отключайте флажок Smoothing в Render Scene.
- При визуализации анимации, необходимо настраивать параметры Max. Displace, Max. Subdiv в Render Scene – это позволяет без искажений визуализировать смещение при анимации полета над объектом или другом типе анимации, особенно обратите внимание на параметр Max. Displace чем он больше тем корректней будет держаться смещение не создавая ряби на каждом кадре анимации.
- Так же, рекомендую вам уделить время настройкам следующих параметров – это: Samples per Pixel, Filter Type из свитка Sampling Quality, Raytrace Acceleration Methods в частности размер и глубина BSP дерева (свиток Rendering Algorithms). Для управления памятью используйте параметры закладки Processing и свитка Translator Options такими параметрами являются Memory Limit, Conserve Memory и Use mental ray Map Manager.
- Так же старайтесь использовать Global Illumination, Caustics & Final Gather уже при подготовке финальной визуализации, т.к. это может существенно замедлить визуализацию при работе со смещением.
- И последний совет – старайтесь использовать и карты рельефности (bump maps) т.к. нет никакого смысла наводить мелкие детали по средствам карт смещения (displacement maps). Это может не только замедлить скорость визуализации, но и может привести к падению 3ds Max.
Эти несколько советов, являются не обязательными к постоянному выполнению всех пунктов, но при их различной комбинации вы можете достичь быстрой визуализации как тестовой, так и финальной и так же преградить внезапное завершение рендера на середине изображения.
Дополнительные примеры использования displacement в визуализации сложных моделей.
Для детализации органических моделей так же используют displacement maps созданных посредствам программ скульпторов, таких как ZBrush или Mudbox. Конечно, можно создавать карты смещения и посредствам обычного Photoshop, но это занимает намного больше времени, чем с использованием, к примеру, ZBrush.
Персонаж «OOlox» детализация на коже и ландшафта была осуществлена за счет применения карт смещения, для детализации модели персонажа использовали ZBrush (Визуализировано с помощью Mental Ray). |
«Скульптура» детали поверхности автор воплотил за счет карт смещения (Визуализировано с помощью Mental Ray). |
|
|
Этот персонаж также был создан с использованием displacement maps созданных в ZBrush. |
На этом я заканчиваю урок по displacement в mental ray для Autodesk 3ds Max 9.
Надеюсь, что вам понравился данный урок, и вы почерпнули для себя что-то новое или провели линию возможностей различных средств визуализации.
Так же хочу поблагодарить Александра Кыштымова (Skif) за то, что он помог в подготовке материалов для данного урока, и сидел скрупулезно вчитывался в варианты урока.
С уважением, ваш dimson3d.