Что означает запечь текстуру
Большая идея: «Запекание»
«Запекание» представляет собой часто используемый термин в компьютерной графике (CG) когда речь идет о разработке компьютерных игр и традиционном рендеринге, не в режиме реального времени (Cycles или Blender Render). Но «запекание» приносит с собой определенные коннотации в реальный мир, которые вводят в заблуждение. Моя цель в этой статье состоит в том, чтобы согласовать этот термин и уточнить, что на самом деле означает запекание.
Различные типы запекания
Существует несколько различных видов запекания. Но прежде чем я начну перечислять и обсуждать их, хочу предложить общее резюме термина, то как оно относится к CG. Думайте о запекании, как о консолидации системы данных в упрощенной, более постоянной форме. Эта концепция обычно применяется тремя способами:
1. Запекание текстур
Наиболее распространенным способом является запекание текстур (или карта запекания). Преимущество запекания текстуры заключается в способности перенести характеристики 3D-геометрии на 2D-изображение.
Существует много признаков, которые могут быть запеченны, от изолированных атрибутов (Ambient Occlusion, нормали, цвета вершин, и т.д.) до их комбинаций, включая материалы, текстуры и освещение запеченные в одну текстуру. На изображенный ниже приведен пример последнего:
И это очень здорово! Сложные материалы и комплексное освещение могут быть объединены в одной текстуре и это является отличным трюком. Вы, наверное, можете себе представить насколько полезным является этот метод для игр и других приложений реального времени. Но важно понимать, что это ограниченная статичная текстура, не динамическая. Другими словами, если вы переместите голову обезьянки, то тень от нее останется в том же месте, где и была, вместо того, чтобы обновляться в режиме реального времени, как это происходит во время рендеринга в окне 3D-вида с помощью движка рендеринга Cycles. Таким образом, данная методика ограничена, хотя и чрезвычайно полезна при грамотном использовании.
В дополнение к запеканию результатов визуальных характеристик, таких как освещение и материалы, мы можем также аппроксимировать геометрию высокого разрешения на низкополигональную модель благодаря запеканию нормалей. Это экономит огромные ресурсы за счет незначительных различий воспринимаемых между низким и высоким разрешениями. Опять же, вы можете себе представить, сколько выгоды от данной техники получают игры. Вот пример:
Наконец, запекание некоторых атрибутов может помочь в процессе разукрашивания текстуры. Например, вместо того, чтобы вручную рисовать темные области в щелях объекта, вы можете запечь текстуру окружающей окклюзии (AO) и она все сделает за вас. Точно также, если вы хотите создать эффект потертости на краях объекта, можно запечь текстуру цветов вершин (dirty vertex colors). И таких примеров еще можно привести огромное количество.
2. Запекание анимации / симуляции
Та же идея консолидации системы данных в упрощенной форме продолжается в анимации и симуляции. Если подумать о ключевых кадрах анимации персонажа, то существует огромное количество работы, которую должен выполнить компьютер, чтобы мы в итоге могли увидеть результат. Риг персонажа со всей своей иерархией, ограничителями и деформациями мешей вместе с сотнями или даже тысячами ключевых кадров, каждый из которых имеет собственный тип интерполяции. Это очень много работы.
Существует несколько способов упростить все это с помощью запекания. Во-первых, в Blender вы можете выполнить операцию под названием «Bake Action». Это просто добавляет ключевой кадр для всех преобразований каждой кости для каждого кадра анимации. Хотя это может показаться «не особо то и проще», это, на самом деле, упрощает анимацию, так как она больше не зависит от ограничителей костей и других реляционных зависимостей. Bake Action также служит своеобразным «блокировщиком» анимации, что позволяет сохранить ее целостность.
3. Запекание света
Этот тип запекания более специфичен для игровых движков. Но так как игры тесно связаны с более широкой областью компьютерной графики, я думаю, что будет уместно коснуться еще одного варианта термина «запекание».
Целью в данном случае является сохранение ресурсов, поэтому игра должна работать настолько эффективно, насколько это возможно. Существует два типа освещения, которые могут использоваться для создания игр: статичное и динамическое. Динамическое освещение реагирует на все изменения в сцене, такие как смещение тени и информация о материале, на который они падают. Статичное освещение является стационарным и может быть исключено из расчетов динамического освещения для экономии ресурсов.
Мобильные и веб-игры часто используют запеченные карты света, которые предоставляют информацию об освещении всей сцены или конкретного уровня игры. Это означает, что вы можете создать хорошо освещенные места лишь за незначительную часть стоимости (ресурсов) динамического освещения. При запекании карт света, как статичное, так и динамическое освещения могут быть использованы одновременно, чтобы создать более реалистичную среду.
Unity использует систему светового зонда которая позволяет не статичному (анимированный или динамический) объекту получать информацию из запеченных карт света, что позволяет сэкономить ресурсы с их помощью при симуляции динамического освещения.
Я надеюсь, что смог разъяснить, что же означает термин «запекание». Если вы желаете получить еще больше информации о запекании текстур и их практическом применении, пожалуйста, посмотрите эти курсы:
Что означает запечь текстуру
Урок по запеканию текстур в 3d’s max
Benz | Дата: Вторник, 26 Января 2010, 16:05 | Сообщение # 1 |
Сегодня мы рассмотрим «запекание текстур» в графическом пакете 3D Studio Max. Что такое запекание текстур? Запекание текстур это преобразование нескольких текстур сцены, в одну. Для чего нужно запекание текстур, и какую пользу, оно может принести? Запекание текстур очень удобное средство, для облегчения создания 3D моделей. Наверное каждый из вас хоть раз замечал как устроены текстуры в других играх? Одно из главных преимуществ этого способа наложения текстур в том, что вам не нужно настраивать множество материалов, а порой и заново текстурировать модель, возиться с настройками материалов в игровом движке, так как на выходе получается всего 1 текстура. Помимо всех выше перечисленных преимуществ, запекание текстур очень удобно использовать дизайнерам, и всем тем кто работает в 3D редакторах, так же можно Для начала мы должны иметь уже готовую(затекстуренную) сцену: Прежде чем начать процесс запекания текстуры, убедитесь что в качестве основного визуализатора установлен «Default Заходим в Render=>Render to Texture или просто жмем на клавишу «0» Появится вот такое вот окошко: Теперь нам нужно создать развертку, путем перемещения и масштабирования объектов так, чтобы все елементы модели поместились в «синий квадратик» Жмем Render, ждем пока отрендерится изображение: вот что получилось у меня: А теперь наложим новоиспеченную текстуру на нашу модель, для этого создайте новый материал, импортируйте на карту *Примечание: Если у вас большая сцена с интерьером, вы так же можете использовать запекание текстур, со всеми тенями На этом пожалуй все. Пробуйте, эксперементируйте! RailUnion.netРусскоязычное железнодорожное сообщество Запеченные текстуры, Baked Textures: вопросы и ответыЗапеченные текстуры, Baked Textures: вопросы и ответыМне уж порядком надоело повторять одни и те же ссылки и рекомендации по сабжу. Поэтому давайте в отдельной теме обсуждать насущную проблему Запеченных Текстур, методы их создания. Baked Textures переводится как Запеченные Текстуры, что подразумевает создание затемнений (теней) на текстуре. Re: Запеченные текстуры, Baked Textures: вопросы и ответыТак же для создания текстурной развертки, очень рекомендуеться учить эту статью! Re: Запеченные текстуры, Baked Textures: вопросы и ответыRe: Запеченные текстуры, Baked Textures: вопросы и ответыRe: Запеченные текстуры, Baked Textures: вопросы и ответыRe: Запеченные текстуры, Baked Textures: вопросы и ответыЕсли кому надо: быстрая настройка vRay для запекания текстур. Re: Запеченные текстуры, Baked Textures: вопросы и ответыRe: Запеченные текстуры, Baked Textures: вопросы и ответыАндрей, ты неправильно что-то понял. Или я тебя каким-то образом сбил с толку, когда мы с тобой на эту тему разговаривали. Цитирую: А вот раскладку до запекания можно создавать как твоей душе угодно. Что касается повторяющихся деталей, опять же, можно спокойно отекстурить их одной текстурой, при запекании рендер в текстуру создаст для каждой отдельную раскладку, и ты уже вручную после завершения процесса удалишь все дубли и склонируешь на их место первый. Естественно лишние области текстуры придётся очистить. Вновь созданные клоны будут ссылаться на общую область текстуры. Кстати, можно поступить иным образом. Если созданные раскладки дублей идентичны, ты берёшь все кроме первой и перемещаешь на место первую. Теперь без удаления и повторного клонирования твои дубли ссылаются на единую раскладку. Надеюсь я правильно объяснил Re: Запеченные текстуры, Baked Textures: вопросы и ответыВ первом посте пункт 3, который ты процитировал, идет ДО запекания, и относится к целому текстурному листу. Поэтому там раскладки не должны накладываться и пересекаться. Применимо же к игровому текстурному листу, на котором все текстуры уже запечены, это правило не относится. По крайней мере я в мануале такого не видел. Re: Запеченные текстуры, Baked Textures: вопросы и ответыВсё правильно, после создания первоначальной неигровой и возможно весьма черновой раскладки ты создаешь вторую, в которую будет проводиться запекание. Вторая до запекания не должна накладываться/пересекаться. Но вот после того как рендер завершился можно спокойно идентичные объекты с идентичным или очень малоотличимым освещением/текстурами отослать к раскладке первого объекта, а раскладки дублей на текстуре стереть, освободив тем самым место на текстурном листе. Либо можно поступить вообще хитро. Все дубли изначально отсылать на отдельный лист (второй раскладки). Не будет тратится место на основном листе и не образуется свободного места. Re: Запеченные текстуры, Baked Textures: вопросы и ответыRe: Запеченные текстуры, Baked Textures: вопросы и ответыRe: Запеченные текстуры, Baked Textures: вопросы и ответыRe: Запеченные текстуры, Baked Textures: вопросы и ответыRe: Запеченные текстуры, Baked Textures: вопросы и ответыКстати, вот ещё какой вопрос. Вы вроде сторонник мелких «прибамбасов» на модели (гаек, болтиков, проводов, и т.п.), которые после запекания и создания ЛОДов образуют чёрные теневые пятна на текстуре. Как вы решаете эту проблему? И ещё один вопрос: плоскости отекстуренные текстурой с альфа-каналом (8 битным), такие как стёкла окон, запекаются вместе со всем остальным или как-то отдельно? Всё про Bake (Запечку) как этап ААА-пайплайнаПривет! Мы продолжаем цикл статей по пайплайну разработки стилизованных персонажей. Сегодня расскажем, что такое этап запечки, и как перенести детализацию с высокополигональной модели (high poly) на низкополигональную (low poly). Запечка (Bake) — четвёртый этап ААА-пайплайна. На прошлом мы сделали развёртку, а сейчас будем её использовать для создания Normal Map, AO и Color ID. Примечание: нам часто говорят, что правильнее писать «запекание», а не «запечка». Мы пишем «запечка», потому что это устоявшийся термин в индустрии. Гугл на слово запечка показывает то, что нам нужно, а на слово запекание предлагает запечь курочку Что такое запечкаВзглянем на low poly модель, которую сделал наш студент Leon. Низкополигональная модель, созданная на этапе ретопологии В ней минимум полигонов и чистая сетка. Эта модель будет загружаться в игровой движок. Есть ещё high poly модель с высокой детализацией и скульпт. Хайполи модели под сабдив и скульпт Технология запечки позволяет нам перенести все детали с high poly и скульпта на low poly-модель. В итоге, в игровом движке будет low poly модель с минимальным количеством полигонов, но выглядеть она будет так, как будто на ней есть все эти детали: Для внимательных: ID Map никак не влияет на вид модели, в отличие от нормала и АО, но она пригодится при текстурировании, поэтому эту карту тоже будем печь. Как это работает?Мы берём low poly модель и добавляем на неё запечённые карты Нормала и АО. А эти карты обманывают поведение игрового света. Модель начинает бликовать так, как будто на ней есть все эти фаски, вырезы и прочие детали. Для тех, кто не понимает, о чём речь: мы очень подробно писали про вертекс нормали и принцип работы нормала в статье про сетку.На этом этапе пайплайна — запечке, наша задача: запечь 3 карты. 1) Normal map — карту неровностей В Marmoset можно запечь гораздо больше карт, про это будет дальше. Мы добавим эти карты на нашу low poly модель, на ней появится вся детализация с high poly и скульпта, а благодаря карте Color ID модель будет легче разбить по материалам и текстурировать. Все карты создаются на основе развёртки, которую мы сделали на прошлом этапе пайплайна. Без развёртки карты не запекутся. Если есть ошибки на развёртке или low poly модели, то мы столкнёмся с кучей проблем. Ссылки на теориюВот несколько наших статей, прочитав которые ты точно поймёшь, как работает «магический» трюк с обманом вертекс нормалей. Какие карты будем печьНет смысла запекать карты, если не знаешь, что они делают и как работают. 1. Normal MapNormal Map переводится как «карта нормалей» Карта создаёт виртуальные вертекс нормали в каждой точке low poly модели и искажает поведение света. Если наложить запечённый нормал на модель, то она будет выглядеть почти как high poly. Вот хороший пример: low poly модель с включенным Нормалом и без него. Модель с включенным нормалом и без него Новые полигоны не создаются, это лишь иллюзия формы: Приглядись, видишь low poly сетку? Все детали и затенения, которые ты видишь — иллюзия. Чтобы создать нормал, нужно взять развёртку, которую мы делали ранее, взять high poly и скульпт, загрузить в программу для запечки и нажать кнопку «bake». Там много нюансов, но мы обо всём расскажем. Из чего печётся Normal map Что нужно знать о НормалеНебольшие чёрные полосы на нормале — это нормально. Чёрные полоски на нормале Почему не стоит сильно волноваться о чёрных полосах? Та же модель, но на расстоянии. Чёрные полосы не режут глаза, — значит, всё окей. Из чего состоит карта нормалейNormal map создает иллюзию объёма благодаря трем картам в каналах текстуры: красный, зелёный, синий. Чтобы переключаться между каналами, откроем файл с нормалом в Photoshop и зайдём во вкладку Channels. Красный канал показывает искажение вертекс нормалей по горизонтали. Чем светлее пятно на красном канале — тем сильнее виртуальная поверхность наклонена вправо, а чем темнее — тем больше «поверхность» бликует влево. Красный канал нормала Зелёный канал — работает так же, но искажает шейдинг по вертикали. Зелёный канал Нормала Чтобы лучше понять разницу между этими двумя каналами, посмотрим на эту часть модели: У бочки на high poly есть фактура дерева. Так как красный канал нормала показывает искажение вертекс-нормалей только по горизонтали, а скосы между досками как раз и отклоняются влево или вправо, то на нём будет много информации. А зелёный канал — показывает искажения по вертикали. Так как виртуальные плоскости не отклоняются вверх/вниз, то затемнений почти нет, то информации на нормале в этом канале почти не будет: Зелёный и красный канал нормала на примере бочки Красный и зелёный каналы — основные для нас (как моделлеров). Синий канал имитирует углубления в объекте. За счет изменения синего цвета на нормале создаются искажения на плоской поверхности. Если на синем канале есть артефакты, можно просто выключить этот канал, т.е. отключить синий цвет у нормал мапа в фотошопе. Или просто их замазать артефакты кисточкой. Синий канал нормал Больше про три канала Нормала — в этой статье. У каждого канала — своя функция. Нейтральный цвет Нормала128х128х255 — нейтральный цвет нормала. Если добавить полностью нейтральный нормал, то особой разницы видно не будет. Модель будет шейдить так же, как обычная лоуполи. В каком формате лучше хранить нормалПосле запечки, скорее всего, придётся вносить изменения в нормал, используя фотошоп. Поэтому файл лучше сохранять в форматах Targa или TIF. 2. Карта АОТак выглядит запечённая карта АО Карта Ambient occlusion (AO) — это карта затенения. Отличный пример того, что сложно сделать без АО — это грязь. Она забивается в самые глубокие места модели, — карта АО поможет легко сгенерировать маску углублений, чтобы забить их грязью. Если добавить на low poly модель карту АО, на модели появятся самые глубокие тени Также как и нормал, карта АО печётся на развёртку модели из high poly и скульпта. Карта AO создаётся из highpoly и скульпта При запекании по-умолчанию эта карта чёрно-белая, но на этапе текстурирования её можно покрасить. С картой АО разобрались, последняя карта, которая нам нужна — Color ID 3. Карта Color IDУ наша модель состоит из разных материалов: металла, камня, дерева и ткани. Во время текстурирования нам нужно быстро выделять геометрию, которая будет, например, металлом или деревом. Чтобы это можно было сделать в один клик внутри Substance Painter, нам нужно запечь карту Color ID. Она позволяет быстро выделять большие куски. А в программе для текстурирования эту группу объектов можно легко затекстурить. Вот так, с помощью этой карты мы в считанные секунды красим модель в разные цвета: Быстро красим модель в Substance Painter, используя карту Color ID Для того, чтобы создать карту Color ID, нам нужно покрасить high poly-модель в разные цвета. Один цвет — это одна группа объектов, как правило разбитая по материалам. Например, всё дерево на Color ID оранжевое, вся кожа —розовая, ржавый металл — синий, шерсть — голубая, а новый и чистый метал —зелёный. Это не цвета будущей модели — здесь они могут быть любыми. Главное, чтобы они были контрастными. Дополнительные картыВ мармосете куча карт, которые можно запечь. Их в разных пайплайнах используют разные художники для текстурирования: Position map с помощью градиентов помогает накладывать текстуры в разных плоскостях модели. Сurvature выделяет все края на модели и упрощает создание затёртостей и повреждений. Очень полезная карта на ряду с АО. Thickness запекает толщину, что необходимо для имитации подповерхностного рассеивания. Часто для hand paint текстур пекут свет прямо на текстуру. Иногда необходимо запечь альфу — карту прозрачности. Еще мармосет умеет печь цвета и материалы с других моделей и текстур, это иногда помогает не переделывать много текстур с нуля. Сейчас проще печь дополнительные карты прямо в Substance Painter. Mental ray для 3ds max. Часть 5. Запекание текстур (render to texture)При обычном способе рендеринга расчет изображения выполняется либо через камеру, либо «от лица» наблюдателя. Эта схема настолько привычна, что представить себе рендеринг в отсутствии наблюдателя довольно сложно. Получаемое через камеру статичное изображение является мгновенным снимком трехмерной сцены, выполненным из одной единственной точки наблюдения в каждый отдельный момент времени. Однако, вне зависимости от того, видим ли мы заднюю сторону объекта через камеру или нет, она все равно освещена, имеет материал, рельеф и так далее. При изменении положения камеры мы сможем увидеть то, что ранее было скрыто от наблюдения, а то, что мы только что видели, станет невидимым. На самом деле не все так просто. Только очень небольшой класс расчетов может быть выполнен корректно и полностью за один раз. В качестве позитивного примера могу назвать фотонные карты и radiosity. Большинство других расчетов в принципе не может быть выполнено однократно в полном объеме. Например, отражения и преломления света поверхностями объектов основываются на относительном положении наблюдателя, объекта и источника освещения. Исключение из этой схемы наблюдателя делает такой расчет некорректным. Поэтому, истинные отражения и преломления запечь нельзя, и для их рендера в текстуру используются разные хитрости. В режиме mesh mode шейдер mib_lightmap_write вызывается непосредственно при рендеринге. В этом режиме основной шейдер снова вызывает сэмплер, на сей раз для расчета каждого пиксела запекаемой карты, кроме вершинных пикселов, которые уже посчитаны. В результате получается качественная и точная растровая карта, каждый пиксел которой рассчитан сэмплером по соответствующей точке поверхности объекта. Для того чтобы инициализировать процесс запекания в 3ds max средствами mental ray, необходимо предварительно создать для поверхности объекта текстурные координаты и затем назначать шейдер mib_lightmap_write в слот Light Map материала объекта. После этого запекание текстур (light map) для поверхности, которой назначен такой материал, будет выполнено автоматически во время рендеринга. Существует еще один способ: в качестве сэмплеров можно использовать любой материальный шейдер mental ray. В этом случае основной шейдер будет в нужное время вызывать материальный шейдер для каждой точки поверхности и записывать возвращаемый им цвет в запекаемую текстуру. Использование материальных шейдеров является недокументированной возможностью mental ray, использовать этот метод «можно, но осторожно». Назовем этот способ запекания «способом №1» Существенным недостатком RTT является некорректная работа с материалами, чьи свойства определяются шейдерами через mental ray Connection. При запекании таких материалов RTT воспринимает их как стандартный материал 3ds max, полностью игнорируя закладку mental ray Connection в его свойствах. В итоге, запекание дает совершенно неправильный результат. При этом даже оригинальный материал, по которому выполняется запекание, повреждается. В качестве выхода из этой ситуации можно либо воспроизвести материал на основе mental ray material, тогда RTT будет правильно его обрабатывать, либо использовать способ №1 запекания материала шейдером mib_lightmap_write. Типичная процедура запекания материала при помощи шейдера mib_lightmap_write состоит из следующих шагов. 2. Удобнее всего для работы создать новый mental ray material и использовать его в качестве контейнера запекаемого материала. Удобнее, потому что придется копировать запекаемый материал в сэмплер поверхности mib_lightmap_write. 3. В слот Light Map назначаем шейдер mib_lightmap_write. В слоте Texture задается название, формат файла и разрешение запекаемой карты. Примечание: при рендеринге можно получить сообщение об отсутствии карты, которую вы указали. Это сообщение можно спокойно проигнорировать. В UV Generator (3dsmax) определяем, как использовать созданные ранее текстурные координаты. 4. В слоте Surface Sampler по умолчанию назначен Lightmap Sample (base). Если нужно посчитать карту освещения, оставляем его. Если же нужно запечь какой-нибудь материал, назначаем вместо Lightmap Sample сначала Material to Shader и в его слот «material» копируем материал, который нужно запечь. 5. При необходимости, в слот Surface, через Material to Shader можно еще раз скопировать запекаемый материал, хотя это необязательно. 6. Теперь настраиваем сам рендер и выполняем рендеринг. По завершении запеченная растровая карта будет находиться по указанному в настройках пути. После запекания RTT в паре со scanline-рендером 3ds max получаем совершенно правильный результат: Если этот же материал запечь при помощи RTT и mental ray, получим: Эта ошибка относится к некорректной работе RTT и происходит только при запекании, рендер blend-материала в камеру выполняется корректно. Чтобы mental ray смог правильно запечь «бленду», воспользуемся способом №1. Для этого создаем новый mental ray материал, назначаем mib_lightmap_write в слот Light Map. Переходим на закладки mib_lightmap_write, в слоте Texture указываем путь, имя и тип файла, разрешение (я выбрал 512х512, потому что карты большего размера в видовом окне max не отображаются) и цветовую модель (8 бит на канал даст обычное RGB изображение). Затем нажимаем кнопку Coordinates и настраиваем параметры генератора текстур. Поскольку текстурные координаты были уже созданы ранее при помощи Unwrap UVW, необходимо только проследить, чтобы MapSlotType=0 (текстура, а не окружение), MapChannel имел значение номера канала, который назначен для текстурных координат, Blur=0. Выходим из генератора «наверх» и нажимаем кнопку Surface Sampler. Для параметра Surface по умолчанию назначен Lightmap Sample (base), нажимаем кнопку справа и из списка выбираем Material to Shader. Теперь перетягиваем запекаемый blend-материал на кнопку material в Material to Shader. На вопрос отвечаем «Instance», если нужно сэкономить память, или «Copy». Эту же операцию копирования можно повторить и для слота Surface материала mental ray. Тогда при рендере мы будем видеть рассчитываемое изображение. Если этого не сделать, объект будет черным при рендере, но на запекаемую текстуру это не повлияет, а время сэкономит. Если источники света не выключать, то запечется такая текстура: То есть, вместе с цветом текстуры рассчиталось и запеклось освещение. Как я уже говорил выше, описанный метод работает и во многих других случаях. Однако результат его работы будет зависеть от конкретной ситуации, и почти всегда будет отличаться от рендера с тем же материалом в «камеру». Поэтому, для достижения идентичности, или похожести, запекаемой текстуры и рендера «в камеру» почти всегда требуется специальное редактирование материала «под запекание». Описанный метод запекания не документирован и официально не поддерживается (и даже не упоминается) в документации mental ray или 3ds max. Поэтому, используйте его на свой страх и риск. Хочется особо подчеркнуть, что для полноценного запекания материальных шейдеров все же требуется программировать специальные полноценные сэмплеры. Теперь рассмотрим более подробно штатные средства рендера в текстуры, RTT в 3ds max, или способ №2. Дело того стоит, поскольку в некоторых ситуациях без него никак не обойтись, к тому же, он серьезно автоматизирует и упрощает весь процесс запекания. RTT (Render To Texture) в 3ds max 7.5 Рассмотрим подробно предназначение настроечных параметров панели Render to texture. Секция параметров General Settings. Группа параметров Output. Группа Selected Object Settings. Список Modifier для выбранного в видовом окне объекта показывает список имен уже назначенных ему модификаторов Projection. Пуст, если работа с объектом выполняется впервые. Галочка в Object Level заставляет 3ds max выполнять проекцию на уровне объекта. Установка галочки в Sub-Object Levels выполняет проекцию выбранного в настоящий момент подобъекта или их группы. Full Size и Proportional взаимно исключают друг друга. Группа Mapping Coordinates. Use Existing Channel, в качестве источника будет использован канал с ранее подготовленными текстурными координатами. Channel, позволяет выбрать номер канала с готовыми текстурными координатами. Use Automatic Unwrap позволяет создать набор новых текстурных координат, использует модификатор Unwrap UVW с автоматическим проектированием координат в режиме Flatten Mapping. Секция параметров Output Если элемент уже назначен для запекания выделенному объекту, он в списке доступных не появляется. Для добавления элемента в список запекаемых карт нажимаем кнопку Add и выбираем элемент из появляющегося в диалоговом окне списка. Для удаления выделяем элемент и нажимаем Delete. Группа параметров Selected Element Common Settings. Target Map Slot определяет назначаемый запекаемой карте слот нового материала. Содержимое списка зависит от того, выполняется запекание в стандартный материал 3ds max или mental ray material. В последнем случае в списке будут перечислены доступные типы шейдеров для определения свойств материала. Группа параметров Selected Element Unique Settings. Секция Baked Material Кнопка Update Baked Materials создает для выделенного объекта новый Shell материал и расставляет по слотам запеченные карты. Кнопка Clear Shell Materials удаляет из объектов и замещает его либо оригинальным материалом, либо материалом с запеченными картами. Выбор позволяют осуществить опции Keep Source Materials или Keep Baked Materials. Секция Automatic Unwrap Mapping Автоматическое создание координат происходит, если в секции Objects To Bake выбрана опция Use Automatic Unwrap при создании нового набора координат. Объекту назначается модификатор Automatic Flatten Uvs. Модификатор можно использовать для редактирования текстурных координат, выбрав его в стеке объекта. Группа параметров Automatic Unwrap Mapping Fill Holes позволяет вкладывать мелкие кластеры в пустые неиспользуемые пространства (дыры) внутри больших кластеров. Эта опция, также как и Rotate Clusters, минимизирует бесполезные потери координатного пространства. Spacing определяет минимально допустимое расстояние между кластерами. Величина Spacing всегда должна быть больше нуля, иначе произойдет наложение координат друг на друга. Группа параметров Automatic Map Size. Заканчивая обзор возможностей RTT в 3ds max, нужно отметить, что этот инструмент автоматизирует всю работу по запеканию текстур и очень удобен в использовании. Рассмотрим запекание фотонной карты на примере простой сцены с одним omni источником света и двумя объектами: кольцо с отражающим материалом, обеспечивающим фокусирование фотонов после отражения, и плоскость, на которой лежит кольцо с диффузным материалом. Фотонная карта для расчета каустики настроена, просчитана и сохранена, чтобы при рендере подгружаться из файла. Рендер сцены выглядит следующим образом: Запекать нужно карту для плоскости, на которой лежит кольцо, поскольку каустика отражается на него. Выделяем плоскость и вызываем RTT. Выполняем следующие настройки параметров рендера в текстуры: Для создания текстурных координат используется Automatic Unwrap с установками по умолчанию, поскольку плоскость довольно простой объект. В качестве элемента запекания выбрана LightingMap и включен расчет только непрямого освещения Indirect Light, поскольку запекается только фотонная карта. В качестве целевого слота выбран диффузный цвет нового материала (Diffuse Color). После небольшого редактирования текстурных координат получаем рендер с запеченной фотонной картой: Normal bump map относительно новая возможность 3ds max и представляет собой тип карты для получения детализации низкополигонных поверхностей по высокополигонным аналогам. Normal map является растровой картой, каждый пиксель которой своим положением и цветом кодирует положение и направление нормалей поверхности и высоту точек поверхности объекта относительно направления нормали. Пример создания и использования Normal bump map. После обработки в Zbrush модель состоит из 141 тысячи полигонов и содержит множество мелких деталей. Создадим карту Normal bump map для исходной модели (цель) по этой высокополигонной модели (источник). После завершения редактирования Cage можно считать подготовительную работу законченной. Возвращаемся в панель RTT и нажимаем Render. Устанавливаем для Bump Amount =100, скрываем высокополигонный объект и выполняем рендеринг. Сгенерированную Normal bump map можно дополнительно использовать и в слоте Displacement, это позволяет добавить деталей на краях объекта, хотя и замедляет рендер. Таким образом, рендер в текстуры в 3ds max с использованием mental ray является гибким многофункциональным и вполне рабочим инструментом, знание и умение работать с которым позволяет существенно расширить возможности рендеринга и создания новых материалов. А появление Normal bump map превращает запекание текстур в полноценный инструмент моделирования, владеть которым должен каждый, кто работает с 3d. И хотя RTT не лишен недостатков, они не принципиальны. Будем надеяться, что в последующих релизах 3ds max эти недостатки полностью исчезнут.
|