что значит запекать текстуры
Большая идея: «Запекание»
«Запекание» представляет собой часто используемый термин в компьютерной графике (CG) когда речь идет о разработке компьютерных игр и традиционном рендеринге, не в режиме реального времени (Cycles или Blender Render). Но «запекание» приносит с собой определенные коннотации в реальный мир, которые вводят в заблуждение. Моя цель в этой статье состоит в том, чтобы согласовать этот термин и уточнить, что на самом деле означает запекание.
Различные типы запекания
Существует несколько различных видов запекания. Но прежде чем я начну перечислять и обсуждать их, хочу предложить общее резюме термина, то как оно относится к CG. Думайте о запекании, как о консолидации системы данных в упрощенной, более постоянной форме. Эта концепция обычно применяется тремя способами:
1. Запекание текстур
Наиболее распространенным способом является запекание текстур (или карта запекания). Преимущество запекания текстуры заключается в способности перенести характеристики 3D-геометрии на 2D-изображение.
Существует много признаков, которые могут быть запеченны, от изолированных атрибутов (Ambient Occlusion, нормали, цвета вершин, и т.д.) до их комбинаций, включая материалы, текстуры и освещение запеченные в одну текстуру. На изображенный ниже приведен пример последнего:
И это очень здорово! Сложные материалы и комплексное освещение могут быть объединены в одной текстуре и это является отличным трюком. Вы, наверное, можете себе представить насколько полезным является этот метод для игр и других приложений реального времени. Но важно понимать, что это ограниченная статичная текстура, не динамическая. Другими словами, если вы переместите голову обезьянки, то тень от нее останется в том же месте, где и была, вместо того, чтобы обновляться в режиме реального времени, как это происходит во время рендеринга в окне 3D-вида с помощью движка рендеринга Cycles. Таким образом, данная методика ограничена, хотя и чрезвычайно полезна при грамотном использовании.
В дополнение к запеканию результатов визуальных характеристик, таких как освещение и материалы, мы можем также аппроксимировать геометрию высокого разрешения на низкополигональную модель благодаря запеканию нормалей. Это экономит огромные ресурсы за счет незначительных различий воспринимаемых между низким и высоким разрешениями. Опять же, вы можете себе представить, сколько выгоды от данной техники получают игры. Вот пример:
Наконец, запекание некоторых атрибутов может помочь в процессе разукрашивания текстуры. Например, вместо того, чтобы вручную рисовать темные области в щелях объекта, вы можете запечь текстуру окружающей окклюзии (AO) и она все сделает за вас. Точно также, если вы хотите создать эффект потертости на краях объекта, можно запечь текстуру цветов вершин (dirty vertex colors). И таких примеров еще можно привести огромное количество.
2. Запекание анимации / симуляции
Та же идея консолидации системы данных в упрощенной форме продолжается в анимации и симуляции. Если подумать о ключевых кадрах анимации персонажа, то существует огромное количество работы, которую должен выполнить компьютер, чтобы мы в итоге могли увидеть результат. Риг персонажа со всей своей иерархией, ограничителями и деформациями мешей вместе с сотнями или даже тысячами ключевых кадров, каждый из которых имеет собственный тип интерполяции. Это очень много работы.
Существует несколько способов упростить все это с помощью запекания. Во-первых, в Blender вы можете выполнить операцию под названием «Bake Action». Это просто добавляет ключевой кадр для всех преобразований каждой кости для каждого кадра анимации. Хотя это может показаться «не особо то и проще», это, на самом деле, упрощает анимацию, так как она больше не зависит от ограничителей костей и других реляционных зависимостей. Bake Action также служит своеобразным «блокировщиком» анимации, что позволяет сохранить ее целостность.
3. Запекание света
Этот тип запекания более специфичен для игровых движков. Но так как игры тесно связаны с более широкой областью компьютерной графики, я думаю, что будет уместно коснуться еще одного варианта термина «запекание».
Целью в данном случае является сохранение ресурсов, поэтому игра должна работать настолько эффективно, насколько это возможно. Существует два типа освещения, которые могут использоваться для создания игр: статичное и динамическое. Динамическое освещение реагирует на все изменения в сцене, такие как смещение тени и информация о материале, на который они падают. Статичное освещение является стационарным и может быть исключено из расчетов динамического освещения для экономии ресурсов.
Мобильные и веб-игры часто используют запеченные карты света, которые предоставляют информацию об освещении всей сцены или конкретного уровня игры. Это означает, что вы можете создать хорошо освещенные места лишь за незначительную часть стоимости (ресурсов) динамического освещения. При запекании карт света, как статичное, так и динамическое освещения могут быть использованы одновременно, чтобы создать более реалистичную среду.
Unity использует систему светового зонда которая позволяет не статичному (анимированный или динамический) объекту получать информацию из запеченных карт света, что позволяет сэкономить ресурсы с их помощью при симуляции динамического освещения.
Я надеюсь, что смог разъяснить, что же означает термин «запекание». Если вы желаете получить еще больше информации о запекании текстур и их практическом применении, пожалуйста, посмотрите эти курсы:
Всё про Bake (Запечку) как этап ААА-пайплайна
Это пятая статья из цикла про ААА-пайплайн. Вот ссылки на все пять, выбирай ту, которая тебе нужна:
Эта статья поможет новичкам, которые хотят научиться делать запечку без артефактов. Ты узнаешь, что такое запечка, зачем она нужна и научишься переносить детализацию с high poly на low poly. Внимательное изучение статьи займет около 20 минут. Если возникнут вопросы — пиши в чат-бот (кнопка справа внизу). Там на связи живой менеджер 🙂 Он поможет разобраться. Ну что, давай начнем!
Что такое запечка в 3D
Взглянем на low poly модель нашего студента.
Минимум полигонов и чистая сетка. Эта модель будет загружаться в игровой движок.
Есть ещё high poly модель с высокой детализацией и скульпт.
На low poly мы добавляем запеченные карты нормала и карту затенений. Это карты, которые обманывают поведение игрового света. Свет падает под определенным углом на модель и создает блик. В итоге нам кажется, что в модели много фасок, деталей и вырезов.
На этапе запечки наша задача — запечь 3 карты:
1) Normal map — карту неровностей
2) Ambient Occlusion (AO) — карту затенения
3) Color ID — цветные маски
Если добавим Normal map и AO на low poly модель — на ней появится детализация с high poly и скульпта. Благодаря Color ID модель легче разбить по материалам и текстурировать. Эти карты создают на основе развертки, которую мы делали этапом ранее. Помни, если есть ошибки на развертке или low poly модели — будет куча проблем с артефактами.
Как запекать карты
Пример low poly модели с включенным нормалом и без него
Из-за того, что игрок видит модель в игре на расстоянии, нам не нужно тратить несколько часов, чтобы убрать черные полоски на нормале:
Normal map создает иллюзию объема из-за трех карт в каналах текстуры: красной, зеленой, синей. Чтобы переключаться между каналами, откроем файл с нормалом в Photoshop и зайдем во вкладку Channels.
Если после запечки есть артефакты, нормал нужно править руками. Иногда это делают сразу на всех трёх каналах, а иногда — на одном из них.
128х128х255 — нейтральный цвет нормала.
Если добавить полностью нейтральный нормал — особой разницы видно не будет. Модель будет шейдить так же, как обычная low poly.
В каком формате лучше хранить нормал?
После запечки часто приходится вносить изменения в нормал при помощи Фотошопа. Поэтому файл лучше сохранять в форматах Targa или TIF. При сохранении есть выбор, сохранять в 24 или 32 bit. Если есть Альфа-канал — сохраняем с 32 bit. Если Альфа-канала нет — в 24 bit.
Ambient occlusion (AO) — это карта затенения. Она показывает самые глубокие тени в объекте — в основном в углублениях и на пересечениях. Эту карту используют в игровых движках для создания корректного освещения и в текстурировании.
Например, без АО почти нереально сделать грязь. Но с картой АО мы легко сгенерируем маску углублений, чтобы забить их грязью.
По-умолчанию карта черно-белая, но на этапе текстурирования ее можно покрасить.
С помощью Color ID красим модель в разные цвета
Чтобы создать карту Color ID, нужно покрасить high poly модель в разные цвета. Один цвет — это одна группа объектов разбитая по материалам. Например, все дерево на Color ID — оранжевое, вся кожа — розовая, ржавый металл — синий, шерсть — голубая, а новый металл — зеленый.
Color ID — не цвета будущей модели, эта карта нужна для разделения на разные материалы.
Много дополнительных карт для запечки есть в Marmoset, а еще там можно печь цвета и материалы с других моделей и текстур, чтобы не переделывать с нуля. Но сейчас гораздо проще печь дополнительные карты прямо в Substance Painter.
Список карт, которые можно запечь
Если ты интересовался какой софт лучше использовать для запечки — это не важно. Принцип запечки во всех программах одинаковый. Просто выбирай, что больше нравится: Maya, Blender, 3D Max, Modo или Cinema 4D.
Как сделать самую быструю в мире запечку?
Шаг 1: Открываем Marmoset.
Шаг 2: Загружаем low poly и high poly, добавляем их в одну группу запечки (Baker).
Шаг 3: Нажимаем кнопку «Bake».
Когда карта будет готова, открываем Maya, добавляем на low poly карту нормалей.
Получается такой результат:
Артефакты появились по целому ряду причин. Где-то low poly и high poly плохо совпадают. Где-то элементы запеклись друг на друга. Где-то кейдж недостаточно большой. Единственный способ исправить ситуацию — переделать модель.
Что делать, чтобы на модели не было артефактов
1. Правильно подготовить low poly к запечке
Для этого мы следим за шейдингом модели. Вот пример плохого и хорошего шейдинга:
Секрет хорошего шейдинга — в правильной работе с хардами и софтами:
2. Убирать зазоры между геометрией
Следим, чтобы не было дырок между геометрией:
В таких местах нужно слегка притопить геометрию внутрь другой
3. Триангулировать модель
Проверив всю low poly модель, обязательно включаем функцию триангуляции.
Если не триангулировать модель перед запечкой — в разном софте она будет смотреться по-разному.
Что учитывать на high poly?
Если high poly шейдит некрасиво — дорабатываем геометрию. С high poly вся детализация будет переноситься на low poly.
Следи, чтобы фаски не были тонкими, иначе они не запекутся. Вот пример хороших и тонких фасок:
Скошенная геометрия лучше печется на плоскости. А геометрия без скосов не печется совсем.
Крутой лайфхак в мире моделлеров — парящая геометрия.
Проверяем, совпадают ли high poly и low poly
High poly и low poly должны максимально совпадать. Вот пример, когда они не совпадают:
Затем проверяем, совпадают ли фаски. Для этого назначаем на low poly бликующий материал и делаем его прозрачным.
Что делать перед тем, как начать запечку
Мы уже подготовили low poly, high poly и развертку к запечке. Но прежде чем нажимать волшебную кнопку, нужно выполнить еще три простых действия, которые помогут в дальнейшем.
Правильный нейминг сэкономит гору времени во время работы с группами запечки — лишний мусор не будет мешать при работе. Проверяем, совпадает ли нейминг внутри группы low poly с неймингом внутри high poly.
В Maya есть полезная функция File → Optimize Scene Size, которая удаляет из сцены мусор, который нигде не используется. Лишние слои, материалы и пустые группы.
Backup похож на резервное копирование, он поможет не потерять проделанную работу. Во время запечки иногда приходится править часть геометрии. Где-то добавятся фаски, где-то поддержки, и так далее. Поэтому может начаться настоящий хаос, если не сохранить исходник модели.
Перед запечкой создаем отдельную папку «Bake» и сохраняем туда бэкап исходного файла до начала запечки — на всякий случай.
Подготовка сцены в Marmoset
Ставим более высокое разрешение
Прежде чем делать запечку, указываем какого размера будут карты. Ставим разрешение карт в 2 раза выше, чем будет у финальной модели. Так часто делают в продакшене, так как текстура в 2к уменьшенная до 1к и выглядит лучше, чем текстура, сделанная сразу в 1к.
Что значит запекать текстуры
Урок по запеканию текстур в 3d’s max
Benz | Дата: Вторник, 26 Января 2010, 16:05 | Сообщение # 1 |
Сегодня мы рассмотрим «запекание текстур» в графическом пакете 3D Studio Max. Что такое запекание текстур? Запекание текстур это преобразование нескольких текстур сцены, в одну. Для чего нужно запекание текстур, и какую пользу, оно может принести? Запекание текстур очень удобное средство, для облегчения создания 3D моделей. Наверное каждый из вас хоть раз замечал как устроены текстуры в других играх? Одно из главных преимуществ этого способа наложения текстур в том, что вам не нужно настраивать множество материалов, а порой и заново текстурировать модель, возиться с настройками материалов в игровом движке, так как на выходе получается всего 1 текстура. Помимо всех выше перечисленных преимуществ, запекание текстур очень удобно использовать дизайнерам, и всем тем кто работает в 3D редакторах, так же можно Для начала мы должны иметь уже готовую(затекстуренную) сцену: Прежде чем начать процесс запекания текстуры, убедитесь что в качестве основного визуализатора установлен «Default Заходим в Render=>Render to Texture или просто жмем на клавишу «0» Появится вот такое вот окошко: Теперь нам нужно создать развертку, путем перемещения и масштабирования объектов так, чтобы все елементы модели поместились в «синий квадратик» Жмем Render, ждем пока отрендерится изображение: вот что получилось у меня: А теперь наложим новоиспеченную текстуру на нашу модель, для этого создайте новый материал, импортируйте на карту *Примечание: Если у вас большая сцена с интерьером, вы так же можете использовать запекание текстур, со всеми тенями На этом пожалуй все. Пробуйте, эксперементируйте! Можете просто и доходчиво объяснить, что такое UV, карты нормалей, запекание?Пожалуйста, максимально развёрнуто и понятно)))))) Простой 5 комментариев p. s. Я отблагодарю вас, когда стану миллиардером. Тебе надо разобраться с основными понятиями комп. графики. (модель\меш, полигон, вертекс, edge, топология, ретопология, нормали, RGBA, каналы, маски, альфа и др) «UV-развёртку можно «разукрасить», а затем наложить на модель.» UV-map это проекция всех поверхностей 3d модели на плоскость (ведь сами текстуры то плоские) А чтобы получить UV-развёртку куба, нужно не собрать куб, а разрезать и развернуть. Normal Map Baking «В одних источниках эти названия карт на английском, в других на русском» (там всё намного веселей!) Ищи статьи на русском где используется не перевод, а написание английских слов русскими буквами или просто где названия карт не переводятся. В зависимости от модели, от игрового движка или системы рендеринга тебе будут нужны разные «наборы» текстурных карт. (именно в этом редакторе там где написано Bump map пихают Normal map) Текстурных карт очень много и про остальные нет смысла писать. (Про PBR тем более) p.s Наши ответы тебе особо не помогут. Запекание визуализации¶Запекание – в общем случае, это акт предварительного вычисления чего-либо для того, чтобы ускорить последующий процесс. Визуализация с нуля, в зависимости от выбранных вами параметров, занимает много времени.Поэтому 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.
|