3Ds max render to texture

В статье подробно рассмотрен процесс создания процедурных карт для real time render ( визуализации внутри любого игрового движка). К таким картам можно отнести:

Затем я расскажу немного о принципах модуля проецирования для фиксации деталей на картах с высокополигональной оболочкой.

Прежде всего, следует сказать пару слов о процессе подготовки низкополигональной модели ( LowPoly ) перед запеканием карт нормалей. Очень важно перед запеканием провести чистку полигональной сетки. Даже если вы имеете составную модель с разной сеткой, как этот револьвер:

С такими моделями могут возникать небольшие проблемы. Обратите внимание на этот участок:

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

Кстати! Для всех познающих мы готовим видеокурсы , в которые заложены наши самые лучшие наработки по компьютерной 3d-графике! Если Вы действительно хотите БЫСТРО и СИСТЕМНО осваивать 3d-графику, то приобретайте наши продукты по выгодным ценам

Остальным заходить сюда не нужно!

Как вариант, можно спрятать на время рендера карты нормалей корпуса эту детальку, а после дорендерить и ее, но это скажется на детализации карты. Придется доводить карты путем композитинга. Для получения реально чистой карты следует использовать метод называемый « Разнесенная оболочка » ( Exploded Mesh ).

Данный метод заключается в анимации сдвига на 1-2 кадра отдельных деталей модели на разные позиции во въюпорте :

На изображении выше мы разнесли («взорвали») два меша, которые точно совмещены друг с другом:

  • НightPoly (высокополигональные модели, используемые в качестве основы для проецирования на карту нормалей мелких деталей на поверхности);
  • LowPoly (низкодетализированная оболочка, полученная путем ретопологии поверх высокополигональной оболочки). Эта модель уже должна нести в себе данные UV -развертки, именно она импортируется в игровой движок в качестве одного из 3 d -ассетов (компонентов) будущей игровой вселенной.

Подготовительный процесс

Что нам нужно сделать для этого:

1. Каждый из элементов обеих оболочек разнести в стороны при включенном режиме AutoKey и сдвинутом бегунке на 1-2 кадра;

2. Выделить все детали только LowPoly – модели;

3. Вывести бегунок таймлайна в начало, чтобы вернуть все детали в исходное положение и удалить кадры движения LowPoly – модели:

4. Теперь если вы сдвините бегунок снова на 1-2 кадра вперед, то сдвинется в стороны только высокодетализированная оболочка, а LowPoly остается на своем месте:

Теперь следует начать процесс совмещения деталей низко и высокодетализированной оболочек друг с другом. Проделаем процесс на примере барабана:

На примере барабана в окне совмещения я выбрал лишь ось X и выставил «По центру» у обоих объектов.

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

Кроме того, в процессе совмещения должен быть включен режим AutoKey ( клавиша N );

Хочу обратить ваше внимание, что после того, как вы совместите все детали, основа – корпус как LowPoly , так и Н ightPoly остались точно совмещенными на одном месте:

Примечание: несмотря на то, что в данной статье мы подробно рассмотрим процесс запекания текстур в 3d max, существует множество других приложений и утилит для реализации данной цели

Пришло время заняться настройкой материала для ID -маски.

Итак, что такое ID -маска? Фактически материал, состоящий из множества различных цветов, на месте которых должна появиться в будущем текстура, т. е. это то, что называют diffuse color. Каждый цвет интерпретирует отдельную текстуру. Это очень удобно при рисовании текстуры, например, в Photoshop . Мы понимаем, какую область и как закрашивать благодаря цветовым областям маски на UV .

Сперва мы выделяем нашу Н ightPoly модель и изолируем ее от остальной геометрии:

Необходимо придать каждой отдельной части револьвера уникальный цвет. Для этого воспользуемся редактором материалов в 3d max.

Включаем редактор и настраиваем материал будущего металла, который позже будет перенесен из 3d max в фотошоп для создания основной текстуры.

Создаем новый материал Standard c названием GunMetal ( Метал пистолета ):

Создадим еще материал с названиями Brass ( Латунь ):

И естественно нужен еще материал дерева, который также создается в 3d max в качестве цветовой основы-маски:

Для материала металла назначим ярко красный цвет со следующими показателями:

Для материала латуни назначаем зеленый цвет:

И для материала дерева назначаем синий цвет:

В результате мы имеем такой результат:

Запекание карт нормалей и масок ID

Итак, первое что нужно понять: все детали модели, должны быть развернуты в UV в одном квадратном поле текстуры, тогда запекание ID -карты будет иметь смысл. Кроме того, после совмещения LowPoly c HighPoly элементами нам следует применить функцию Attach и соединить все детали LowPoly оболочки в одно целое:

После соединения всех элементов есть смысл задать новое название нашему LowPoly револьверу:

Теперь открываем диалоговое окно Render to Texture . С его помощью мы и будем запекать все наши карты (можно запустить его, нажав на клавишу «0»):

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

Нажмите на кнопку Setup , чтобы перейти от диалогового окна создания текстур для моделей к диалоговому окну с настройками рендера и убедитесь, что у вас выставлен Default Scanline Render :

Далее перейдите на вкладку Render и проверьте настройки фильтров Antialiasing и Global SuperSampling :

Особое внимание стоит обратить на фильтр Hammersley и Supersample Maps . Эти настройки понадобятся нам при запекании карты AO ( ambient occlusion ).

То, что Вам нужно находится здесь !

Убедитесь, что LowPoly револьвер выделен, в диалоге Render to Texture он должен появиться в списке объектов запекания текстур:

Далее нажимаем на кнопку Pick , чтобы указать объекты, с которых будет производиться запекание:

И указываем все элементы HighPoly меша:

Опускаемся ниже и переходим к свитку « Output ». Здесь – то мы и будем назначать карты, которые хотим запечь. Если у вас в данном списке случайно уже находятся какие-то карты, то нажмите кнопку « Delete », чтобы очистить список. Мы назначим их вручную:

Теперь нажимаем на кнопку « Add », чтобы добавить в список карты, которые нам нужны – Diffuse Map или цветовая карта, которая создаст нам ID -маску и Normal Map ( Карта Нормалей ), в завершение нажимаем кнопку « Add Element »:

Далее нужно настроить карты, которые только что загрузили в канал Output для просчета. Меняем название карты и выставляем разрешение 2048 x 2048 , чтобы получить качественное изображение (не фонтан конечно, но вполне достаточно для игрового движка):

Если вы планируете загружать подготовленные в 3d -пакете ассеты в бесплатные игровые движки, то есть смысл ограничить разрешение всех карт, протестировать быстродействие, и уже затем сделать нужную карту в более высоком разрешении .

Проделываем то же самое с картой нормалей, однако обратите внимание на поле Target Map Slot , по умолчанию там может стоять значение Bump . Нужно переключиться на None , чтобы поле было пустым:

Далее, если мы перейдем на вкладку Modify нашего выбранного LowPoly объекта, то увидим в стеке модификатор Projection , сам револьвер покроется синеватой «паутинкой»:

Это модуль проецирования в 3 ds max , который позволяет переносить данные с HighPoly оболочки на LowPoly оболочку, которая несет данные о UV -развертке. В результате мы получаем текстуру, запеченную по UV — координатам.

Однако следует настроить Cage ( Клетку ) модуля Projection , отметив галочками показатели « Shaded » и « Point to Point »:

Далее опускаемся чуть ниже и нажимаем на кнопку « Reset »:

Раскрываем список модуля Projection и выбираем оттуда Cage :

Нам нужно выделить полностью основную часть револьвера:

Обратите внимание, что некоторые области поверхности не попадают под С age , эти места могут быть рассчитаны на рендере с ошибками.

Поэтому нужно перейти к области Push и увеличить значение Amount , чтобы немного преподнять С age и захватить в область влияния модуля проблемные области:

Эти манипуляции следует проделать и с остальными элементами нашей модели:

В некоторых местах значение Amount может быть слишком большим, поэтому следует выделить отдельно точки данной области и немного уменьшить значение Amount вручную:

После всех настроек выходим из режима редактирования модуля Projection и нажимаем на кнопку Render диалогового окна Render to Texture :

В результате чего через некоторое время 3 ds max сгенерирует нам первую ID -карту:

Полученную цветовую карту можно далее использовать в фотошоп в качестве вспомогательного слоя, опираясь на который создаются основные текстуры. Если полученную в итоге текстуру загрузить в канал diffuse map и расставить (но грамотно) хотя бы базовые источники света, доступные в 3ds max по умолчанию, то можно получить весьма неплохую визуализацию револьвера.

Создание карты нормалей осуществляется по такому же принципу, что и ID

Подписывайтесь на нашу рассылку, и Вы всегда будете получать эксклюзивные статьи первыми! Форма для подписки справа вверху

Помимо описанного выше назначения ID , у этой карты есть еще одна важная функция – выявлять проблемные области, которые не смог правильно обработать модуль Projection . Это важно исправить сразу, т.к. в противном случае карта нормалей и AO ( ambient occlusion ) будут сгенерированы с ошибками. Для того, чтобы выявить такие места на модели, нужно:

  • Вызвать диалоговое окно ProjectionOption , нажав на кнопку Option :

  • В данном диалоговом окне назначить галочку Raymisscolor и изменить цвет, отвечающий за функцию Ray Miss Color :

По умолчанию цвет назначен красный, но так как красный мы использовали как основной цвет заполнения в качестве металла для будущей текстуры, то рекомендую назначить белый цвет:

Перерендериваем картинку еще раз. В результате чего на текстуре отобразятся мелкие белые точки, по которым мы сможем отследить и исправить проблемные области Cage :

Вот как выглядят те самые области ДО исправления и ПОСЛЕ (следующее изображение):

Я просто выбрал Cage в раскрывающемся списке модуля Projection и оттянул вершину немного в сторону, чтобы ликвидировать проблемную область. Кстати, перетаскивание вершины желательно выполнять с предварительно выбранной системой Local :

Эти процедуры необходимо провести со всеми проблемными местами.

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

К вопросу об использовании сторонних плагинов для визуализации. Поскольку мы создавали процедурные (вспомогательные карты), то функционала 3ds max для настройки материалов (надо сказать весьма примитивных) вполне достаточно.

Для создания той же карты AO существуют специальные материалы, например, у v-ray это материал VRay Dirt . Но это уже совсем другая история…

Could not retrieve table of contents

By:

Rendering to texture, or "texture baking,” allows you to create texture maps based on an object’s appearance in the rendered scene. The textures are then “baked” into the object: That is, they become part of the object via mapping, and can be used to display the textured object rapidly on Direct3D devices such as graphics display cards or game engines.

  • Make sure the default scanline renderer or the mental ray renderer is the active renderer. > Select one or more objects. > Rendering menu > Render To Texture

You can render to textures using the Scanline Renderer or the mental ray renderer. The iray renderer and Quicksilver Hardware renderer don’t support Render To Texture.

Typical Texture Baking Method

    Set up a scene with lighting.

In this dialog, you can also choose various display options for showing the baked texture in shaded viewports.

After you click Render in the Render To Texture dialog, a number of things happen. (This is a typical set of events; the dialog gives you a lot of control over how texture baking actually occurs.)

    The elements you chose are rendered, each to its separate bitmap file.

By default, the texture type is Targa, and the element maps are placed in the images subfolder of the folder where you installed 3ds Max .

The new textures are “flat”: In other words, they are organized according to groups of object faces.

In the modifier stack, a new modifier is applied to the object. It is called Automatic Flatten UVs. It is simply an Unwrap UVW modifier, automatically applied.

This modifier manages the mapping of the flattened texture to faces of the object, and lets you adjust that mapping if necessary.

The Shell material lets you access both materials and adjust their settings, if necessary. It also lets you choose which material to view, the original material or the texture-baked material, in shaded viewports or in renderings.

That is texture baking in a nutshell.

For best results, Logarithmic exposure control is recommended for Render To Texture.

If Linear or Automatic exposure controls are used, each object will have different lighting levels, generating a different histogram. Each object renders as if it had a different light level and in some cases, you may not get a rendering at all. This happens because Linear and Automatic exposure controls are view dependent.

Logarithmic Exposure Control is not view dependent, and will reproduce the image correctly. See the Exposure Controls topic for more information about Linear, Automatic and Logarithmic exposure controls.

Using 3ds Max 2012, I’ve been able to use the "render to texture" function to successfully bake my lighting. The only problem is that these image files are always output to TGA files. I need PNG files. If I select all of my objects I want to bake, the option button with [. ] that opens up the "file name and type" selection menu is GREYED OUT.

If I select ONE object and try to export only that one object then the "file name and type" menu becomes clickable and I can select my file type. But when I click "render" I get an error message "The following nodes output to invalid directories and will not be rendered" with my one object listed below and it’s output directory which is "sceneassetsimages"

Оцените статью
Много толка
Добавить комментарий