Велика ідея запікання - blender 3d

Велика ідея запікання - blender 3d

«Запікання» являє собою часто використовуваний термін в комп'ютерній графіці (CG) коли мова йде про розробку комп'ютерних ігор і традиційному рендеринге, не в режимі реального часу (Cycles або Blender Render). Але «запікання» приносить з собою певні конотації в реальний світ, які вводять в оману. Моя мета в цій статті полягає в тому, щоб узгодити цей термін і уточнити, що насправді означає запікання.

Різні типи запікання

1. Запікання текстур

Найбільш поширеним способом є запікання текстур (або карта запікання). Перевага запікання текстури полягає в здатності перенести характеристики 3D-геометрії на 2D-зображення.

Існує багато ознак, які можуть бути запечені, від ізольованих атрибутів (Ambient Occlusion, нормалізує обмін речовин, кольору вершин, і т.д.) до їх комбінацій, включаючи матеріали, текстури і освітлення запечені в одну текстуру. На зображений нижче наведений приклад останнього:

Велика ідея запікання - blender 3d

Велика ідея запікання - blender 3d

І це дуже здорово! Складні матеріали і комплексне висвітлення можуть бути об'єднані в одній текстурі і це є відмінним трюком. Ви, напевно, можете собі уявити наскільки корисним є цей метод для ігор та інших програм реального часу. Але важливо розуміти, що це обмежена статична текстура, що не динамічна. Іншими словами, якщо ви перемістіть голову мавпочки, то тінь від неї залишиться в тому ж місці, де і була, замість того, щоб оновлюватися в режимі реального часу, як це відбувається під час рендеринга у вікні 3D-вигляду за допомогою движка рендеринга Cycles. Таким чином, дана методика обмежена, хоча і надзвичайно корисна при грамотному використанні.

На додаток до запікання результатів візуальних характеристик, таких як освітлення і матеріали, ми можемо також апроксимувати геометрію високого дозволу на нізкополігональную модель завдяки запіканню нормалей. Це економить величезні ресурси за рахунок незначних відмінностей сприйманих між низьким і високим дозволами. Знову ж таки, ви можете собі уявити, скільки вигоди від даної техніки отримують гри. Ось приклад:

Велика ідея запікання - blender 3d

Велика ідея запікання - blender 3d

Велика ідея запікання - blender 3d

Нарешті, запікання деяких атрибутів може допомогти в процесі прикрашання текстури. Наприклад, замість того, щоб вручну малювати темні області в щілинах об'єкта, ви можете запекти текстуру навколишнього оклюзії (AO) і вона все зробить за вас. Точно також, якщо ви хочете створити ефект потертості на краях об'єкта, можна запекти текстуру квітів вершин (dirty vertex colors). І таких прикладів ще можна привести безліч.

2. Запікання анімації / симуляції

Та ж ідея консолідації системи даних в спрощеній формі триває в анімації і симуляції. Якщо подумати про ключові кадри анімації персонажа, то існує величезна кількість роботи, яку повинен виконати комп'ютер, щоб ми в підсумку могли побачити результат. Ріг персонажа з усією своєю ієрархією, обмежувачами і деформаціями мешів разом з сотнями або навіть тисячами ключових кадрів, кожен з яких має власний тип інтерполяції. Це дуже багато роботи.

Існує кілька способів спростити все це за допомогою запікання. По-перше, в Blender ви можете виконати операцію під назвою "Bake Action". Це просто додає ключовий кадр для всіх перетворень кожної кістки для кожного кадру анімації. Хоча це може здатися «не особливо то й простіше», це, насправді, спрощує анімацію, так як вона більше не залежить від обмежувачів кісток і інших реляційних залежностей. Bake Action також служить своєрідним «блокувальником» анімації, що дозволяє зберегти її цілісність.


Якщо піти ще далі, то анімація може бути запечена в геометричну послідовність або «кеш», що остаточно позбавляє нас від клуня персонажа. Отже, уявіть, що ви на 100% задоволені своєю анімацією і готові перейти до наступної стадії, а саме стадії рендеринга. Дуже зручно позбутися непотрібних розрахунків комплексного клуня в обмін на чисту послідовність геометрії. Таким чином, ваша сцена не захаращена тоннами ключових кадрів, які ніколи не будуть змінені - тому що ви на 100% задоволені результатом, не забувайте про це. Ви можете просто зосередитеся на освітленні і рендеринге анимированной геометрії, яка ще й буде трохи швидше програватися, так як комп'ютер не повинен розрахувати всі тонкощі клуня. У Blender це стало можливим за допомогою експорту кеша в формат .MDD і модифікатора Mesh Cache.

Велика ідея запікання - blender 3d

Велика ідея запікання - blender 3d

Ефекти симуляції, такі як: вогонь, дим, частинки і тканину також можуть бути запечені. Це по суті те ж саме, що і кеш для анімації мешів. Симуляція вимагає багато розрахунків (значно більше анімації) і, за винятком, деяких випадків, вона ніколи не працюють в режимі реального часу. Таким чином, щоб побачити створений вами ефект на повній швидкості, ви повинні спочатку запекти його. За замовчуванням кеш зберігатися в оперативній пам'яті комп'ютера (RAM), але також він може бути збережений на жорсткий диск. Приклад запікання симуляції тканини ви можете бачити на зображенні справа.

3. Запікання світла

Цей тип запікання більш специфічний для ігрових движків. Але так як гри тісно пов'язані з більш широкою сферою комп'ютерної графіки, я думаю, що буде доречно торкнутися ще одного варіанту терміна «запікання».

Метою в даному випадку є збереження ресурсів, тому гра повинна працювати настільки ефективно, наскільки це можливо. Існує два типи освітлення, які можуть використовуватися для створення ігор: статичне і динамічне. Динамічне освітлення реагує на всі зміни в сцені, такі як зсув тіні і інформація про матеріал, на який вони падають. Статичне освітлення є стаціонарним і може бути виключено з розрахунків динамічного освітлення для економії ресурсів.


Мобільні та веб-ігри часто використовують запечені карти світу. які надають інформацію про висвітлення всієї сцени або конкретного рівня гри. Це означає, що ви можете створити добре освітлені місця лише за незначну частину вартості (ресурсів) динамічного освітлення. При запіканні карт світла, як статичне, так і динамічне освітлення можуть бути використані одночасно, щоб створити більш реалістичну середу.

Unity використовує систему світлового зонда яка дозволяє не статичному (анімований або динамічний) об'єкту отримувати інформацію з запечених карт світла, що дозволяє заощадити ресурси з їх допомогою при симуляції динамічного освітлення.

Я сподіваюся, що зміг роз'яснити, що ж означає термін «запікання». Якщо ви бажаєте отримати ще більше інформації про запіканні текстур і їх практичне застосування, будь-ласка, подивіться ці курси:

Крім уроків по Blender, Ви зможете знайти готові 3D-моделі і архіви високоякісних текстур. Сайт регулярно поповнюється новим контентом і стежить за розвитком Blender.