для чего нужно запекание текстур в blender
Запекание визуализации¶
Запекание – в общем случае, это акт предварительного вычисления чего-либо для того, чтобы ускорить последующий процесс. Визуализация с нуля, в зависимости от выбранных вами параметров, занимает много времени.Поэтому Blender позволяет «запечь» некоторые части изображения, чтобы сократить время визуализации выбранных объектов. После нажатия на кнопку «Визуализация» вся сцена отрисовывается намного быстрее, поскольку не нужно пересчитывать цвета запечённых объектов.
Запекание создаёт двумерные растровые изображения полисетки отображаемой поверхности объекта. Эти изображения могут быть повторно спроецированы на объект при помощи UV-координат. Запекание производится для каждой полисетки индивидуально и может быть выполнено только при наличии UV-развёртки у полисетки. Хотя оно и требует некоторого времени для настройки и отрисовки, оно сильно экономит время основной визуализации. Если вы отрисовываете длительную анимацию, время, потраченное на запекание, может быть гораздо меньше времени, требуемого на визуализацию всех её кадров.
Используйте запекание для решений, интенсивно использующих свет и тень, например, для AO или мягких теней от ламп-областей. Если вы запечёте AO для всех основных объектов, вам не придётся включать его при полной визуализации, что сэкономит вам время отрисовки.
Use Full Render or Textures to create an image texture; baked procedural textures can be used as a starting point for further texture painting. Use Normals to make a low resolution mesh look like a high resolution mesh. To do that, UV unwrap a high resolution, finely sculpted mesh and bake its normals. Save that normal map, and Mapping (texture settings) the UV of a similarly unwrapped low resolution mesh. The low resolution mesh will look just like the high resolution, but will have much fewer faces/polygons.
Параметры¶
Режим запекания¶
Полная визуализация¶
Запекает все материалы, текстуры и освещение, за исключением бликового и подповерхностного рассеивания.
Ambient Occlusion¶
Запекает ambient occlusion, как указано в панелях «Окружающая среда (мир)». Игнорирует все источники освещения в сцене.
Запекает тени и освещение.
Нормали¶
Bakes tangent and camera-space normals (among many others) to an RGB image.
Нормали могут быть запечены в различных пространствах:
Камера Метод по умолчанию. Окружающая среда (мир) Нормали в координатах объекта, зависящие от преобразований и деформации объекта. Объект Нормали в координатах объекта, не зависящие от преобразований объекта, но зависящие от его деформации. Тангенс Нормали в координатах касательного пространства, не зависящие от трансформации или деформации объекта. Это пространство – новое умолчание и верный выбор в большинстве случаев, поскольку такая карта нормалей так же может использоваться для анимированных объектов.
В материалах в настройках изображения текстуры могут быть выбраны те же самые пространства под существующей настройкой Карта нормалей. Для получения правильных результатов, данная настройка должна совпадать с настройкой, используемой для запекания.
Текстуры¶
Запекает только цвета материалов и текстуры, без затенения.
Смещения¶
Так же как и при запекании карты нормалей, при помощи параметра Выделение к активному можно запечь карты смещений с высокополигонального объекта в развёртку для низкополигонального объекта.
When using this in conjunction with a Subdivision Surface and Displacement modifiers within Blender, it is necessary to temporarily add a heavy Subdivision Surface Modifier to the „low-res“ model before baking. This means that if you then use a Displacement Modifier on top of the Subdivision Surface, the displacement will be correct, since it is stored as a relative difference to the subdivided geometry, rather than the original base mesh (which can get distorted significantly by a Subdivision Surface). The higher the render subdivision level while baking, the more accurate the displacements will be. This technique may also be useful when saving the displacement map out for use in external renderers.
Излучение¶
Запекает цвета излучения или свечения материала.
Альфа¶
Запекает альфа-значения (прозрачность) материала.
Цвета отражения и Интенсивность отражения¶
Запекает цвета отражения или значения интенсивности отражения.
Цвета бликов и Интенсивность бликов¶
Запекает цвета бликов или значения интенсивности бликов.
Дополнительные параметры¶
Включение запекания информации с других объектов на активный объект.
Расстояние Controls how far a point on another object can be away from the point on the active object. Only needed for Selected to Active. A typical use case is to make a detailed, high-poly object, and then bake its normals onto an object with a low polygon count. The resulting normal map can then be applied to make the low-poly object look more detailed. Погрешность Bias towards further away from the object (in Blender units).
Полисетки должны быть видимы при визуализации
Если полисетка не видима при основной визуализации, например, потому что она исключена из визуализации в «Структуре проекта», либо к ней применено дублирование вершин, она не сможет быть запечена.
Рабочий процесс¶
© Copyright : This page is licensed under a CC-BY-SA 4.0 Int. License.
Большая идея: «Запекание»
«Запекание» представляет собой часто используемый термин в компьютерной графике (CG) когда речь идет о разработке компьютерных игр и традиционном рендеринге, не в режиме реального времени (Cycles или Blender Render). Но «запекание» приносит с собой определенные коннотации в реальный мир, которые вводят в заблуждение. Моя цель в этой статье состоит в том, чтобы согласовать этот термин и уточнить, что на самом деле означает запекание.
Различные типы запекания
Существует несколько различных видов запекания. Но прежде чем я начну перечислять и обсуждать их, хочу предложить общее резюме термина, то как оно относится к CG. Думайте о запекании, как о консолидации системы данных в упрощенной, более постоянной форме. Эта концепция обычно применяется тремя способами:
1. Запекание текстур
Наиболее распространенным способом является запекание текстур (или карта запекания). Преимущество запекания текстуры заключается в способности перенести характеристики 3D-геометрии на 2D-изображение.
Существует много признаков, которые могут быть запеченны, от изолированных атрибутов (Ambient Occlusion, нормали, цвета вершин, и т.д.) до их комбинаций, включая материалы, текстуры и освещение запеченные в одну текстуру. На изображенный ниже приведен пример последнего:
И это очень здорово! Сложные материалы и комплексное освещение могут быть объединены в одной текстуре и это является отличным трюком. Вы, наверное, можете себе представить насколько полезным является этот метод для игр и других приложений реального времени. Но важно понимать, что это ограниченная статичная текстура, не динамическая. Другими словами, если вы переместите голову обезьянки, то тень от нее останется в том же месте, где и была, вместо того, чтобы обновляться в режиме реального времени, как это происходит во время рендеринга в окне 3D-вида с помощью движка рендеринга Cycles. Таким образом, данная методика ограничена, хотя и чрезвычайно полезна при грамотном использовании.
В дополнение к запеканию результатов визуальных характеристик, таких как освещение и материалы, мы можем также аппроксимировать геометрию высокого разрешения на низкополигональную модель благодаря запеканию нормалей. Это экономит огромные ресурсы за счет незначительных различий воспринимаемых между низким и высоким разрешениями. Опять же, вы можете себе представить, сколько выгоды от данной техники получают игры. Вот пример:
Наконец, запекание некоторых атрибутов может помочь в процессе разукрашивания текстуры. Например, вместо того, чтобы вручную рисовать темные области в щелях объекта, вы можете запечь текстуру окружающей окклюзии (AO) и она все сделает за вас. Точно также, если вы хотите создать эффект потертости на краях объекта, можно запечь текстуру цветов вершин (dirty vertex colors). И таких примеров еще можно привести огромное количество.
2. Запекание анимации / симуляции
Та же идея консолидации системы данных в упрощенной форме продолжается в анимации и симуляции. Если подумать о ключевых кадрах анимации персонажа, то существует огромное количество работы, которую должен выполнить компьютер, чтобы мы в итоге могли увидеть результат. Риг персонажа со всей своей иерархией, ограничителями и деформациями мешей вместе с сотнями или даже тысячами ключевых кадров, каждый из которых имеет собственный тип интерполяции. Это очень много работы.
Существует несколько способов упростить все это с помощью запекания. Во-первых, в Blender вы можете выполнить операцию под названием «Bake Action». Это просто добавляет ключевой кадр для всех преобразований каждой кости для каждого кадра анимации. Хотя это может показаться «не особо то и проще», это, на самом деле, упрощает анимацию, так как она больше не зависит от ограничителей костей и других реляционных зависимостей. Bake Action также служит своеобразным «блокировщиком» анимации, что позволяет сохранить ее целостность.
3. Запекание света
Этот тип запекания более специфичен для игровых движков. Но так как игры тесно связаны с более широкой областью компьютерной графики, я думаю, что будет уместно коснуться еще одного варианта термина «запекание».
Целью в данном случае является сохранение ресурсов, поэтому игра должна работать настолько эффективно, насколько это возможно. Существует два типа освещения, которые могут использоваться для создания игр: статичное и динамическое. Динамическое освещение реагирует на все изменения в сцене, такие как смещение тени и информация о материале, на который они падают. Статичное освещение является стационарным и может быть исключено из расчетов динамического освещения для экономии ресурсов.
Мобильные и веб-игры часто используют запеченные карты света, которые предоставляют информацию об освещении всей сцены или конкретного уровня игры. Это означает, что вы можете создать хорошо освещенные места лишь за незначительную часть стоимости (ресурсов) динамического освещения. При запекании карт света, как статичное, так и динамическое освещения могут быть использованы одновременно, чтобы создать более реалистичную среду.
Unity использует систему светового зонда которая позволяет не статичному (анимированный или динамический) объекту получать информацию из запеченных карт света, что позволяет сэкономить ресурсы с их помощью при симуляции динамического освещения.
Я надеюсь, что смог разъяснить, что же означает термин «запекание». Если вы желаете получить еще больше информации о запекании текстур и их практическом применении, пожалуйста, посмотрите эти курсы:
Запекание визуализации¶
Panel: | Render ‣ Bake |
---|
Cycles для запекания использует настройки визуализации (количество сэмпов, отскоков и прочие). Таким образом, качество запечённых текстур должно совпадать с результатом, который вы получите после визуализации сцены.
Параметры¶
Тип запекания «Ambient Occlusion»
Тип запекания¶
Запекает все материалы, текстуры и освещение, за исключением бликового.
Combined Pass options.
Проходы, которые вносят вклад в тип «Комбинация», могут быть включены по отдельности, чтобы сформировать итоговую карту.
Ambient Occlusion Запекает ambient occlusion, как указано в панелях «Окружающая среда (мир)». Игнорирует все источники освещения в сцене. Тень Запекает тени и освещение. Нормали
Запекает нормали в цветах RGB.
Normal Pass options.
Нормали могут быть запечены в различных пространствах:
Объект Нормали в координатах объекта, не зависящие от преобразований объекта, но зависящие от его деформации. Тангенс Нормали в координатах касательного пространства, не зависящие от трансформации ии деформации объекта. Это пространство по умолчанию и верный выбор в большинстве случаев, поскольку такая карта нормалей так же может использоваться для анимированных объектов. Смешение Указание осей, запекаемых в каналах красного, зелёного и синего цветов.
В материалах в настройках изображения текстуры могут быть выбраны те же самые пространства под существующей настройкой Карта нормалей. Для получения правильных результатов, данная настройка должна совпадать с настройкой, используемой для запекания.
UV Запекает только цвета материалов и текстуры, без затенения. Свечение Запекает цвета излучения или свечения материала. Окр. среда Запекает окружение в том виде, в котором оно видится из центра объекта. Диффуз., Глянец, Передача, Подпов. рассеяние
Запекает диффузный, глянцевый проходы, проходы передачи и подповерхностного рассеяния материала.
Diffuse Pass options.
Дополнительные параметры¶
There is a CPU fixed memory footprint for every object used to bake from. In order to avoid crashes due to lack of memory, the high-poly objects can be joined before the baking process. The render tiles parameter also influence the memory usage, so the bigger the tile the less overhead you have, but the more memory it will take during baking (either in GPU or CPU).
Объект, используемый в качестве клетки вместо автоматически рассчитываемого выдавливания от активного объекта при использовании параметра Выдавливание клетки.
Если выдавливание базовой полисетки не даёт хороших результатов, вы можете создать копию базовой полисетки и изменить её, чтобы использовать её в качестве объекта-клетки. Обе полисетки должны иметь одинаковую топологию (количество граней и порядок их расположения).
© Copyright : This page is licensed under a CC-BY-SA 4.0 Int. License.
Всё про 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 — карту неровностей
2) Ambient Occlusion (AO) — карту затенения
3) Color ID — цветные маски
В Marmoset можно запечь гораздо больше карт, про это будет дальше.
Мы добавим эти карты на нашу low poly модель, на ней появится вся детализация с high poly и скульпта, а благодаря карте Color ID модель будет легче разбить по материалам и текстурировать.
Все карты создаются на основе развёртки, которую мы сделали на прошлом этапе пайплайна. Без развёртки карты не запекутся. Если есть ошибки на развёртке или low poly модели, то мы столкнёмся с кучей проблем.
Ссылки на теорию
Вот несколько наших статей, прочитав которые ты точно поймёшь, как работает «магический» трюк с обманом вертекс нормалей.
Какие карты будем печь
Нет смысла запекать карты, если не знаешь, что они делают и как работают.
1. Normal Map
Normal 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.
При сохранении есть выбор, сохранять в 24 или 32 bit.
Если есть Альфа-канал — сохраняем с 32 bit.
Если Альфа-канала нет — в 24 bit.
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.