Прогресивне трасування шляхів V-Ray

Search Keywords:PPT, Light Cache
У цьому навчальному матеріалі ми обговорюватимемо альтернативний метод для розрахунку остаточного зображення з V-Ray, що називається прогресивним трасуванням шляхів (progressive path tracing).
Зазвичай розрахунок зображення проходить через кілька окремих завдань: наприклад, обчислення каустики, розрахунок світлового кеша, розрахунок освітленості кешу і семплювання остаточного зображення. Хоча користувач має візуальний контроль на деяких із цих етапів, остаточне зображення виходить тільки в кінці останньої стадії - проміжні результати не використовуються.
З іншого боку, прогресивне трасування шляхів - це метод для поступового обчислення всього зображення цілком. Користувач може зупинити прорахунок у будь-який момент та використовувати проміжні результати, якщо вони вже досить добрі. На додаток, при трасуванні шляхів користувач має лише кілька елементів керування, про які треба турбуватися, і це дуже спрощує налаштування.
На підставі закладеного алгоритму світлового кешу (light cache) V-Ray виконує прогресивне трасування шляхів. Перевага від використання світлового кешу у зменшенні шуму, що виникає в процесі трасування шляхів, для більш чистих результатів та прискорення поширення світла. Використання світлового кешу гарантує, що кількість відскоків світла не обмежена і що результат прагне коректного вирішення світла в сцені. На додаток, світловий кеш із зображення, отриманого трасуванням шляхів, може бути збережений і знову використаний пізніше для звичайної візуалізації.
Вихідна візуалізація
Крок 1: Початкове налаштування.
Налаштування прогресивного трасування шляхів досить просте:
1.1. Відкрийте вихіднусцену можна знайти тут.
1.2. Встановіть V-Ray як систему візуалізації.
1.3. Увімкніть опцію Override mtl у сувої Global switches, натисніть кнопку поряд з нею та виберіть матеріал VRayMtl з установками за замовчуванням.
1.4. Увімкніть Indirect illumination і встановіть Light cache як метод прорахунку як первинних, так і вторинних відскоків. 1.5. Встановіть режим кешу Progressive path tracing . 1.6. Опціонально можна ввімкнути Frame stamp для друку часу прорахунку на зображенні.
1.7. Увімкніть опцію Enable built-in frame buffer у сувої V-Ray virtual frame buffer. Це необов'язково, але дозволить вам безпечно збільшувати та переміщатися за зображенням у процесі прорахунку. Використання віртуального буфера кадру (VFB) 3dsmax призведе до падіння 3dsmax при спробі збільшити або перемістити зображення в процесі прорахунку. 1.8. Візуалізуйте сцену. Ви повинні побачити як зображення поступово покращується - більш зашумлене спочатку, в міру додавання семплів, стає кращим:

Крок 2: Регулювання рівня шуму
3.1. Встановіть параметр світлового кеша Subdivs у 2000 році.
3.2. Прорахунок. Тепер прорахунок займає більше, т.к. V-Ray обчислює більше семплів. Хоча ми збільшили Subdivs вдвічі, час прорахунку зріс приблизно вчетверо:

3.3. Якщо ви хочете зменшити шум ще сильніше, ще більше збільште Subdivs. Для прорахунку статичних зображень ви можете встановити для цього параметра дуже велике значення і чекати так довго, як ви хочете, доки не визнаєте результат прийнятним і не припиніть прорахунок. На ілюстрації прорахунок з 20000 подразбиття, який був припинений через 1 годину:

Крок 4: Регулювання зміщення рішення GI
Длязображень вище ми використовували для світлового кешу установки за замовчуванням (за винятком параметра Subdivs). Стандартні установки використовують світловий кеш як допомогу в процесі розрахунку GI. Це допомагає зменшити шум на остаточному зображенні ціною внесення зміщення рішення GI. Це зміщення можна виявити як просочування світла під тонкими стінками або як вторинне плямисте GI. Однак у багатьох випадках різниця між зміщеним та незміщеним рішенням мінімальна.
Ви можете використовувати параметр світлового кеша Sample size для керування зміщенням. При великих значеннях будуть використовуватися великі семпли світлового кешу і зміщення збільшуватиметься. Найменші значення зменшуватимуть зсув, але можуть використовувати більше пам'яті. Значення 0.0 ніяке кешування не проводитиметься взагалі і даватиме незміщене рішення. Нижче три ілюстрації з різними значеннями для Sample size і однаковим значенням Subdivs , рівним 1000 . У цій тестовій сцені відмінності непомітні, але у складніших ситуаціях зменшення шуму може бути значним.



Прорахунок із матеріалами
Крок 1: Прорахунок із матеріалами
1.1. Вимкніть опцію Override mtl у сувої Global siwtches.
1.2. Щоб прискорити попередній результат, поверніть параметр світлового кеша Subdivs на 1000 .

У цьому місці ви можете відрегулювати налаштування матеріалів тощо, поки маєте відносно швидкий зворотний зв'язок.
Крок 2: Поліпшення якості із матеріалами.
Т.к. рівень шуму визначається параметром Subdivs, ми повинні тільки збільшувати його. Окремі Subdivs для матеріалів (наприклад, глянець відображень/заломлень) нічого не означають.
2.1. Збільште параметр Subdivs до 2000 та візуалізуйте сцену.Прорахунок тепер займає більше часу, але шум зменшився:

За замовчуванням V-Ray не відбиту GI-каустику, т.к. вона має тенденцію додавати шум до зображення. Проте іноді вона важлива остаточного результату.
2.2. Увімкніть опцію Reflective GI caustics у сувої Indirect illumination.
2.3. Візуалізуйте зображення. Відбита каустика може бути помічена на зеленому огризці та сфері, а також як загальне освітлення сцени. Зверніть увагу, що зображення стало зашумленішим там, де є каустика:

2.4. Для зменшення шуму у зображенні нам знову треба збільшити параметр світлового кешу Subdivs, наприклад, до 4000. Хоча ми збільшили Subdivs вдвічі, час прорахунку зріс приблизно вчетверо:

Зауважимо, що ви не можете отримати GI-каустику з поверхонь, що повністю відображають, з точковими джерелами світла. Кожне джерело світла має бути неточковим джерелом або матеріал повинен бути з глянцем або те й інше. Ви також можете використовувати фотонну карту для генерації каустики через установки у сувої Caustics. Цей метод не такий точний як GI-каустика, але може підтримувати точкові джерела світла з поверхнями, що повністю відбивають.
Збільшення розміру зображення

- У цьому вся режимі ігнорується тип семплера зображення (image sampler) ( Fixed , Adaptive DMC , Adaptive subdivision ), т.к. алгоритм трасування шляхів робить суперсемплінг пікселів автоматично. Після закінчення візуалізації V-Ray надрукує миримальний та максимальний шляхи, які були відтрасовані для пікселів у цьому зображенні.
- Однак фільтр антиаліазингу бере участь у роботі. Зауважимо, що фільтри, що підвищують різкість (Mitchell-Netravali, Catmull-Rom) можуть вносити шум.і вимагатимуть більше семплів для отримання гладкого зображення. Широкозахватні фільтри Blend можуть вимагати багато часу для роботи. Вимкнення фільтра антиаліазингу дає мінімальний шум.
- Параметри Subdivs у матеріалах, текстурах, джерелах світла, налаштуваннях камер тощо. у цьому режимі ігноруються. Шум та якість повністю управляються через параметри світлового кешу Subdivs.
- Враховуються лише параметри DMC sampler: Adaptive amount і Time-independent . Ніколи не встановлюйте параметр Adaptive amount 0.0 при використанні трасування шляхів, т.к. це призведе до зупинки візуалізації.
- Нині алгоритмом трасування колій генеруються лише канали RGBA. Будь-які інші канали GBuffer ігноруються.
- Світловий кеш немає обмежень кількість відскоків розсіяного (diffuse) світла у сцені. Кількість дзеркальних (specular) відскоків (через відображення/заломлення) керуються через матеріал або глобально через сувій Global switches.
- В даний час режим трасування колій не працює правильно при прорахунку з полями.
- В даний час режим трасування колій не працює з маскуючими об'єктами/матеріалами.
- Нині V-Ray може згенерувати лише 2^32 унікальних світлових шляхів. Параметр світлового кешу Subdivs обмежений значенням 60 000, що дає 60 000 ^ 2 = 3600000000 унікальних шляхів. Т.к. шляхи розподілені по всьому зображенню, для великих зображень може бути неможливо взяти достатньо семплів на піксель для гладкого результату. Наприклад, зображення з роздільною здатністю 2000×2000 може бути прораховане найбільше з 900 шляхами на піксель, що може бути недостатньо для згладженого результату. У цьому випадку використання традиційного методусемплювання (пряме обчислення GI) може бути кращим рішенням.