Texture baking with v-ray, part i
У цьому уроці ми обговоримо процес baking (запікання) текстур в V-Ray. Перенесення елементів зовнішнього вигляду об'єкта (дифузний колір, пряме освітлення, GI і т.п.) в текстури і їх автоматичний маппінг на поверхню об'єкта.
Рендер в текстури, "texture baking", дозволяє вам створювати текстурні карти на основі виду об'єктів в сцені. Після цього текстури наносяться (запікаються "baked") на об'єкт, і стають частиною об'єкта, за допомогою маппінга текстур, і можуть бути використані для швидкого відображення текстурованих об'єктів на Direct3D пристроях.
Ми покажемо на прикладі простої сцени, як виконується "texture baking" і як цей метод може бути використаний для рендера Fly-Through анімації.
Сцена містить два об'єкти (Space ship і Ground) і одне джерело світла (omni). Ви можете завантажити початкову сцену звідси.
Об'єкти не мають текстурних карт (diffuse), тільки простий дифузний колір. Матеріали призначені ним це V-Ray матеріали. Сірий колір призначений Ground об'єкту, і зелений колір об'єкту Space ship. Матеріали типу Default, з дифузними кольорами:
- Матеріал об'єкта Space Ship. (103, 174, 108)
- Матеріал об'єкта Ground. (128, 128, 128)
Джерело світла (omni) розташований трохи вище об'єкта Ship. У нього встановлений Множник 2.0 і Color RGB (226, 201, 146); тип тіні встановлений VRayShadow.
Налаштування рендеру
1.1. Відкрийте стартову сцену, яка може знайдена тут.
1.2. Увімкніть використання V-Ray в якості поточного рендеру.


1.3. Ви можете відкрити Material Editor (M) для перевірки, що матеріал правильно призначений об'єкту і налаштований.

1.4. Перш, ніж зробити наш перший рендер, нам потрібно включити Frame Stamp (секція System) для контролю за часом рендеру.
1.5. Зробимо рендер:

Ось, що ми отримуємо з настройками V-Ray за замовчуванням. Для більш реалістичного освітлення, ми додамо GI і area shadows.
1.6. Перейдіть в Image sampler rollout і встановіть Image sampler type в Adaptive QMC.

1.7. У секції Indirect illumination. включите GI і виберіть для головного і вторинного алгоритмів GI Quasi-Monte Carlo.

1.8. У секції Environment. включите Override MAX's (Skylight) і встановіть Color (255, 255, 255) і Multiplier в 0.8.
Це дасть нам деякий навколишнє освітлення.

1.9. Зробимо рендер:

Зверніть увагу як збільшився час рендера.
1.10.Включіте Area Shadow в джерелі світла omni.

1.11. Зробимо рендер:

Тепер тіні стали більш реалістичними (area shadow).
Зображення виглядає цілком добре, але злегка зернистим. Для зменшення шуму, нам потрібно налаштувати параметри QMC sampler.
1.12. У секції rQMC Sampler. встановіть Noise threshold в 0.001.
1.13. Встановіть Global subdivs multiplier в 10.0.
1.14. Зробимо рендер:

Час рендеру ще більше збільшилася, але і кчество стало набагато краще. Тепер наша сцена готова для baking.
Підготовка об'єктів для Baking текстур
2.1. Перш за все, ми відключимо Frame Stamp (секція System). інакше ми отримаємо індикацію часу рендеру на наших структурах, чого ми природно, не хочемо.
2.2. Тепер відкриємо вікно Render to Texture (0) закладці Rendering основного меню.
2.3. Виберіть каталог Output. де будуть зберігатися baked текстури.

2.4. Виберіть обидва об'єкти в сцені (Space ship і Ground).
2.5. У секції Mapping Coordinates - виберіть Use Automatic Unwrap.

Обидва об'єкти повинні автоматично додатися в таблицю Objects to Bake.
2.6. У секції Output rollout - виберіть 512 для розміру, включите Enable (якщо не включений), і задайте карті назву в поле name-field.
Фактично це буде суфікс імені файлу, що додається до назви об'єкта в сцені.
Наприклад: в нашому випадку baked текстура нашого об'єкта Ground матиме ім'я файлу: GroundCompleteMap.tga

2.7. У секції Baked Material - виберіть Save Source (Create Shell).
2.8. Виберіть опцію Create New Baked і виберіть (Standard: Blinn) з появи спливаючого меню.
2.9. Виберіть Keep Source Materials.

2.10. Тепер поверніться в Output rollout - виберіть Self-Illumination в Target Map Slot.
Ви побачите, як вона, автоматично, буде додана в таблицю.

Залиште всі інші настройки в їх значеннях за замовчуванням.
Тепер наші об'єкти готові для baking (рендери).
Baking текстур (Рендер)
3.1. Натисніть кнопку Render Button внизу вікна Render to Texture.
3.2. Ви можете бачити, що baking процес обробляє об'єкти послідовно один за іншим, як вони перераховані в таблиці.
Першим буде оброблений (baked) об'єкт Ground object, за ним Space ship.


Завантаження Baked матеріалів і Viewport превью
4.1. Відкрийте Material Editor (M) і виберіть порожній слот для матеріалу.
4.2. Натисніть на іконку Get Material для відкриття вікна Material / Map браузера.
4.3. Виберіть Browse From: Scene
4.4. Ви повинні побачити два нових матеріалу в сцені. Це матеріали типу Shell Materials і містять обидва і вихідний матеріал V-Ray і новий Baked Material.
Це тому, що нам так потрібно: дивись пункти 2.7, 2.8, 2.9
4.5. Перетягніть нові матеріали в Material Editor.
4.6. У Shell Material Paramaters. виберіть Baked Material для Viewport. і Original Material для Render.
- якщо ми будемо робити новий рендер (F9) - для об'єктів буде використовуватися їх Original material (VRayMtl).
- у всіх вьюпортах - об'єкти будуть відображатися з використанням їх Baked Material (Standard).

4.7. Виберіть новий Ground Shell Material - ground_material [Ground].
4.8. Увімкніть Self-Illumination і виберіть чистий білий колір (255, 255, 255). Ви повинні бачити Baked текстуру в цьому матеріалі, вже призначену.
Це тому, що ми вибрали саме цей Target Slot (дивись пункт 2.10)
4.9. Перейдіть в Self-Illumination Map, і включіть іконку Show Map in Viewport.


4.10. У вьюпорте, ви повинні бачити майданчик ground plane з застосованої baked текстурою.

Зауваження: Якщо ви забудете включити іконку Show Map in Viewport. відображення у вьюпорте буде таким:

На цьому етапі, Space ship відображається як абсолютно чорний, тому, що ми ще не налаштували його матеріал.
4.11. Повторіть кроки з п.4.7 до п.4.9. для нового матеріалу Space ship - ship_material [Space_Ship].
Тепер вьюпорте повинен виглядати десь так (зверніть увагу як Edged Faces (F4) можуть відображатися разом з baked текстурами).


4.12. Тут кілька додаткових видів сцени, з різних точок:

Рендер сцени з baked матеріалами
5.1. Відкрийте Material Editor (M).
5.2. Виберіть Baked Material в Render для обох Shell Materials.

5.3. Виберіть omni light і відключіть його. Ми можемо навіть видалити це джерело зі сцени, і вона, тим не менш, буде рендери нормально - у нас вже є "світло" запечений (baked) в тектуру.

5.4. В налаштуваннях V-Ray, вимкніть GI. Environment (Skylight) і Default Lights.
5.5. Зробіть рендер:

Зверніть увагу на час рендера. На етапі п. 1.14. у нас було 4m: 35s в порівнянні з 8.6 секундами які ми отримали тепер. Це так, тому, що з baked текстурами V-Ray не чинить ніяких розрахунків освітлення. Ви можете навіть замінити його на default scanline рендер і отримаєте той же результат.
Знаючи тепер це, ви можете анімувати камеру і зробити рендер fly-trhough анімації за дуже невеликий час (витрачений на рендер обного кадру).
Ми покажемо вам метод, який може забезпечити отримання тако-го ж результату, як і описано вище (це відноситься до етапу описаного в пунктах з п. 2.7 до п. 2.10).


В наступній частині (уроці) керівництва по texture baking ви дізнаєтеся як зробити bake тільки певних елементів рендеру, наприклад тільки освітлення або GI.