Освітлення VRay: історія появи та основні принципи роботи


Інтер’єр приміщення в стилі «Лофт», намальований за допомогою комп’ютерної графіки

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

Якщо ви тільки почали освоювати світ 3D моделювання, то матеріал може виявитися для вас корисним. Іншим багато що може бути не зовсім зрозуміло, але для загального розвитку прочитати статтю можна. Отже, як вдалося художнику зробити таке освітлення інтер’єру vray.

Що таке VRay


Найпростіші примітиви програми без освітлення

Напевно ви вже знаєте такі програми для 3D Моделювання, як 3Ds Max, Maya, Blender і їм подібні. За висвітлення в першій з перерахованих, ми навіть якось випустили невеликий урок.

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


Ті ж примітиви з текстурами і освітленням VRay

Для того щоб зробити зображення по справжньому реалістичним використовують сторонні рендер-програми (візуалізатори), середовищ них такі як: finalRender, mentalRay, brasil r / s і герой нашого огляду – 3ds max VRay. VRay є найпопулярнішою програмою, навіть можна сказати, що її популярності вистачить на всі інші візуалізатори разом узяті. І що найцікавіше, ядро ??програми було розроблено кількома людьми.

Даний рендер залишається на піку популярності завдяки тому, що в його обчисленнях застосовуються самі передові методи. Його основу повністю становить метод Монте-Карло. Крім цього у даної програми є додаткові технічні переваги, що дають йому більш швидкісні розрахунки, в порівнянні з суперниками.

Принципи роботи визуализатора


VRay – настройка освітлення

Як відомо все наше візуально сприйняття залежить від оточуючого нас світу. Без нього, чи зміни закони його розповсюдження або просто спектр світіння, ми б повністю змінили наш погляд на навколишній світ.

Суть будь-якої програми для рендера – це обчислення параметрів світла, кольору і освітленості в довільній точці на тривимірній сцені. Завдання насправді не з простих і вимагає величезної обчислювальної потужності сучасних процесорів і відеокарт. Тому все те, що ми бачимо в 3D графіку сьогодні – це результат довгого еволюційного розвитку.


vray освітлення інтер’єру: створення 3D сцени

Але давайте про все по порядку.

Освітленість від джерел світла, які перебувають в прямій видимості – це перше, що навчилися обчислювати при візуалізації.

  • Суть проста світло по прямій лінії падає на якийсь об’єкт на побудованій сцені. Дана модель розрахунків дозволила створити затінення і підсвічування по Фонгу, що дозволило виконувати обчислення згладжування квітів полігонів поверхні і виконувати для неї дзеркальну підсвічування.


Результат підсвічування по Фонгу

  • Надалі дана розфарбування отримала кілька модифікацій: Торрент, Ламбер, Блинн та інші. Всі вони до сьогоднішнього дня продовжують бути основою при прямолінійній обчисленні, хоча і отримали деякі доопрацювання. А саме:
  1. Облік розмірів джерела світла в просторі, що дозволило отримати більш м’які краю для тіней у освітлюваних об’єктів;
  2. Облік відстані від джерела світла до освітлюваного об’єкта, що дозволило точно визначати згасання світла на його шляху

Для довідки! При коригуванні використовується закон квадратичного загасання інтенсивності поширюється променя світла від відстані.

Наступне, що підкорилося для програм визуализаторов – це дзеркальне відображення об’єкта на сцені від оточуючих його предметів, а також рівень його прозорості:

  • Для обчислення цих параметрів розробники створили метод трасування променів (ray tracing). Суть даного методу полягає в тому, що програма обчислює проходження променів світла (разом з заломленням) від камери, включаючи всі об’єкти, які він зустрічає на своєму шляху, враховуючи властивості їх поверхонь (а саме, прозорість, дзеркальність).
  • Даний метод був визнаний більш ефективним, оскільки обробляв не тільки промені досягли камери. В результаті в освітленні об’єкта стали задіяні всі навколишні його предмети.

Порада! Подібні обчислення вже дуже сильно навантажують комп’ютерне залізо. Якщо ви вирішили попрактикуватися у створенні сцен з таким освітленням, то у вашій системі повинен стояти як мінімум хороший чотирьохядерний процесор, з нормальною частотою і підтримкою AVX інструкцій. А в ідеалі – потужний багатопотоковий монстр, який-небудь i 7 або Ryzen 5 або 7.


Принцип роботи методу трасування променів

  • Однак для перших методів трасування променів було характерно більш жорстке зображення – у предметів були занадто чіткі тіні і кольору, що не відповідало поданням про природному освітленні.
  • Для вирішення проблеми був розроблений інший метод, який отримав назву DRT (distribution ray tracing). Його суть полягає в тому, що при кожному перетині відслідковується променя по його траєкторії з різними поверхнями, з кожної такої точки далі поширюється не один, а кілька променів. Цей складний процес чимось схожий з ланцюговою реакцією.
  • DRT дозволив отримати розмиті відображення предметів і їх заломлення, проте обсяг фізичних розрахунків зріс багаторазово. Цей метод закладений в VRay в параметрі Glossy – властивості відображення і заломлення матеріалів.


vray освітлення – інтер’єр

Третьою компонентою освітленості об’єкта став розрахунок дифузних багаторазових перевідбиттів світла в оточуючих об’єктах. Подібний ефект в реальному житті можна побачити якщо поставити навпроти один одного два дзеркала і заглянути в одне з них.

  • Найпершим способом такого розрахунку став метод radiosity. Сьогодні він так само застосовується, але в більшості випадків поступився місцем більш просунутих методів Монте-Карло і розрахунку фотонних карт.
  • Метод фотонних карт, для кожного об’єкта на сцені створює окрему базу даних, в якій зберігається кожне зіткнення поверхні з віртуальними фотонами – записуються напрямок і енергія фотона, а також координати зіткнення. В даному випадку під фотоном розуміється деяка кількість освітлювальної енергії, що розповсюджується від джерела світла в певному напрямку.
  • Отримані дані використовуються для оцінки наскільки сильно освітлений об’єкт в результаті дифузного розсіювання світла на оточуючих поверхнях.


Фотонна карта, що генерується спочатку рендеру

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

Остання складова 3D освітлення – це розрахунок світлових ефектів, що виникають в результаті всіляких заломлень і відображень (фокусування і расфокусировки) від різних поверхонь.


Каустик ефект на прикладі прозорого скляного яблука

Дані ефекти одержали назву caustic-ефекти. Банальним прикладом з життя може послужити проста лінза, яка здатна проходять через неї промені направити в одну точку.

Для розрахунку подібних ефектів може застосовуватися фотонна карта, але потрібно локальна карта з дуже високою щільністю, тому вони створюються тільки в разі крайньої необхідності.

Просто про складне

Тепер давайте трохи помучиться наш мозок, підсумовуючи все вищесказане:

  • Освітленість довільної точки сучасної 3d сцени – є не що інше, як сума чотирьох названих компонент. Для того щоб виконати повний і точний розрахунок освітленості точки сцени, програмі необхідно обчислити всі промені світла, що проходять через неї в усіх напрямках.
  • У зв’язку з цим з’являється необхідність інтегрування освітленості по півсфері, що оточує дану точку, якщо точка належить непрозорою поверхні.
  • Якщо ж поверхня буде пропускати через себе світло, то інтегрується освітлення по сфері.
  • Для того щоб в програмі створити освітлення, будуються складні інтеграли, що описують одразу всі компоненти, а конкретніше: функції джерел освітленості, властивості відображення і заломлення, в тому числі і дифузного.
  • Всі функції стосуються відображень і заломлень часто об’єднують в одну групу, яка називається BRDF (двунаправленная функція розподілу відображень і заломлень). Дані інтеграли не мають точного аналітичного рішення, тому для їх обчислення використовують різні методи.


Обчислення інтегралів методом Монте-Карло

Один з основних методів знаходження значення інтегралів є метод Монте-Карло, який використовується в більшості рендерів тривимірної графіки, і фактично став методом «де-факто». Суть його полягає в тому, щоб визначити значення для інтеграла, як суму деякої кількості подинтегральних функцій.

Вибирає він їх випадковим чином, тобто основний принцип даного методу – це правила вибору потрібних значень з величезного масиву даних, чому залежить точність і швидкість виконання розрахунків. Підінтегральної функції, які обираються даним методом, називаються семплами.

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

Цікаво знати! Якщо ви хочете збільшити якість зображення в два рази, то буде потрібно задіяти семплів в 4 рази більше. На практиці, низька якість розрахунків виливається у вигляді різних шумів і артефактів.


Процес візуалізації найпростішої сцени

Метод використання фотонних карт, фактично розроблений, як альтернатива методу Монте-Карло при розрахунку дифузійної освітленості (таким способом використовується в mental ray). Таке рішення виправдане, тому що дозволяє збільшити швидкість і коректність розрахунків, проте є і недоліки, пов’язані з великими вимогами до оперативної пам’яті системи і труднощі відображення кутів, стиків і кордонів освітлюваних поверхонь.

Ядро програми VRay має в основі тільки метод Монте-Карло, а фотонні карти використовує, як доповнення, на відміну від інших визуализаторов.

Більш точно це відбувається так:

  1. Методом Монте-Карло розраховується перший дифузне переотраженіе, тобто промінь, падаючий на розраховується точку, на своєму шляху вже був одного разу відображений від стороннього предмета.
  2. Починаючи з другого переотражения, може бути задіяний метод фотонних карт, хоча робиться це не завжди.

У сталої термінології перший відскік променя світла (переотраженіе) називається First diffuse bounces, а решта – secondary bounces (вторинні відскоки).

Дане рішення досить раціонально, так як основна частина дифузного освітлення формується саме другим відскоком – інші впливають не так сильно, через інтенсивне затухання великої кількості дифузних відображень. З цієї причини VRay забезпечує більш точні розрахунки, і, відповідно, якісне зображення, ніж інші візуалізатори

Основні параметри управління VRay

У цьому розділі ми розглянемо основні пункти, які задіюються в налаштуванні параметрів даного визуализатора. Інструкція про те, як своїми руками скорегувати налаштування освітлення інтер’єру vray дані не будуть, так як цей матеріал здебільшого теоретичний. Однак ми запропонуємо вам деякі фото, щоб ви краще могли собі уявляти, де знаходяться настройки і як вони впливають на сцену.

Практичну сторону використання VRay ми розглянемо в одній з майбутніх статей, коли ваш покірний слуга обзаведеться нормальним, потужним комп’ютером, відповідним для цих цілей. Тоді ж буде розглянуто і комп’ютерне залізо, оптимальне для подібних рішень.

VRay: QMC sampler

Почнемо з параметрів, які задають властивості методу Монте-Карло. Розташовані вони на вкладці QMC sampler.


Меню налаштувань параметрів методу Монте-Карло

Виставляються тут параметри впливають на те, які семпли будуть використовуватися для всіх обчислень.

Про все по порядку:

  • Lock to pixels – даний пункт використовується для усунення в анімації миготіння пікселів. Якщо галочка навпроти пункту встановлена, то створюється жорстка прив’язка для пікселів, щоб їх значення не змінювалися на сусідніх кадрах. Через те, що метод Монте-Карло, в певній мірі є випадковим, одержувані з його допомогою значення можуть трохи відрізнятися. Однак якщо вам потрібно обробити зображення в статиці (нерухоме), то даний параметр можна вимкнути.
  • Adaptation by effects on final result або importance sampling – постараємося описати принцип роботи, як можна простіше. Справа в тому, що семпли обчислюються не тільки в областях сфери і півсфери над розраховується точкою. Вони можуть мати і геометричне уявлення, у вигляді променів семпліювання, що випускаються з певної точки. Даний метод застосовує принцип значущості семпли для кінцевого результату.
  • Якщо розрахунковий семпл має мале або зовсім нульове значення, то розрахунки в цьому напрямку припиняються, і навпаки. Пункт Amount задає програмі інтенсивність використання даного методу. Так, якщо його значення дорівнюватиме 1 (максимальне, стоїть за умовчанням), то перевірці піддасться кожен семпл, а якщо нулю – відбір відключається повністю.

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


Результат якісного рендера сцени

  • Adaptation by sample values ??або early termination (Раннє знищення) – наступний пункт, завдяки якому VRay може аналізувати величину семплів і переривати процес, якщо ці величини однакові або близькі за значенням. Сенс простий – якщо значення не відрізняються, то трасування переривається і використовуються усереднені значення, вираховується з тих, що вже отримані. Якщо різниця в значеннях велика, то для розрахунків задіюється більшу кількість семплів.
  • параметр Amount (За замовчуванням 0,85) впливає на інтенсивність використання методу: 0 – метод вимкнений; 1 – використовується мінімальна кількість променів. Для більшої якості даний параметр повинен бути вимкнений, але натомість ви отримаєте збільшений час рендера сцени.
  • Min samples – цей підпункт відповідає за мінімально можливу кількість задіяних семплів.
  • Noise threshold – це параметр, який визначить чи достатньо якість вихідної зображення, шляхом порівнювання утворюються результатів з самими собою. Якщо різниця перевищує вказане значення, то задіюються додаткові семпли, і навпаки – обчислення припиняються. Цей параметр, навіть судячи тільки за назвою, безпосередньо впливає на якість картинки. Збільшення значення додає на зображенні шумів і знижує швидкість візуалізації.

Всі описані параметри дозволяють VRay приймати рішення про якість і кількість задействуемих семплів, що сильно позначається на підсумковому якості.


Зображення без шумів

VRay Indirect Illumination (GI)


Меню налаштувань глобального освітлення

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

Основні налаштування знаходяться у вкладці Indirect Illumination, Caustic, System та інших. Давайте коротко розберемо непряме дифузне освітлення і його налаштування.

Основні налаштування

І тут VRay нам пропонує вибрати з трьох доступних способу розрахунку: Direct computation, Irradiance map, Global photon map (фотонні карти). І відразу ж впадає в очі доступна можливість поділу дифузного віддзеркалення на два – перший і наступні відскоки.

Для чого це робиться, ми вже говорили вище. Для розрахунків дифузних відскоків можуть бути використані чотири поєднання зазначених методів.


Налаштування способів прорахунку відскоків

  • Direct Compilation (DC) або Brute Force (груба сила) – задіє для своїх розрахунків метод Монте-Карло. Пункт Subdivs вказує кількість задіяних семплів.
  • Перше поєднання – це direct + direct. Його застосування забезпечує рівномірний розподіл в сцені півтіней, при цьому відсутня розмиття. Однак при цьому сцена рендерится дуже довго.
  • Наприклад, якщо виставити значення subdivs в 50 для першого і наступних відскоків, то кількість семплів у однієї точки дорівнюватиме 2500, тобто кількість точок стане таким же, а у кожної з них буде своїх 2500 семплів, і так далі поки не спрацюють обмеження QMC. Ви тільки уявіть собі обсяг цього потоку даних, а адже система повинна їх все прорахувати.
  • У VRay кількість відскоків за замовчуванням встановлено на 1, що істотно скорочує обсяг необхідних розрахунків.
  • У даного методу є ще один істотний недолік, через що він застосовується вкрай рідко. Через те, що обчислення виконуються для кожної окремої точки, у зображення з’являється шум. Позбутися його можна тільки збільшенням параметра subdivs, але, як ви вже розумієте, відразу зросте час візуалізації.


Налаштування параметра Subdivs

Наступним можливим поєднанням способів йде dc + photon map. При цьому трасування променів виконується тільки при першому відскоку. Подальша освітленість будується, виходячи з даних фотонних карт. Такий спосіб рендеру відбувається набагато швидше і навіть точніше, якщо щільності фотонних карт досить.

Irradiance map (світлова карта)


Налаштування світловий карти

Даний метод істотно відрізняється від попереднього, так як виконує розрахунок не всіх точок на зображенні, а тільки деяких. Подальша побудова картинки вираховується методом інтерполяції від знайдених точок, створюючи якийсь світловий градієнт. Точки визначаються в заданому радіусі – його розмір залежить від параметра Interp, що дозволяє виконувати розрахунок тільки там, де це потрібно в поточний момент.

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

Дані параметри виставляються в пунктах Min rate і Max rate. Введені значення є ступенем двійки, тобто -2 відповідатиме?, А 0 – одиниці.

Розрахунок виконується поетапно, при цьому якість зображення стає дедалі більше:

  • Наступні пункти, які нас цікавлять – це Clr.thresh, Nrml.thresh і Dist. thresh. Тут задаються значення кольору (освітленості): граничне, нормальне і для просторового положення, відповідно.
  • По суті, це і є наша світлова карта.
  • Під час фінальної візуалізації всі дані беруться з складеної карти в максимальній якості, а решта вираховуються інтерполяцією.
  • На цьому ж етапі можуть бути задіяні і додаткові точки. Активізувати цей процес можна в установках суперсемплінг, який має свої власні значення для освітленості пікселів, іноді відрізняються від даних з світловий карти.
  • Якщо ці значення менше, то запускається пошук додаткових точок. Звідси можна зробити висновок, що на етапі налаштування світловий карти, настройки суперсемплінг можна спрощувати, щоб встановити потрібну якість зображення. Робиться це до запуску фінального рендера.
  • Саме тому поєднання методів irradiance map + photon map вважається найгнучкішої при налаштуванні суперсемплінг.


Чи прийме рендеру тривимірної обстановки

Метод обчислень зі світловою картою виконується набагато швидше, ніж DC, при цьому не втрачається якість зображення. Цей розрахунок одна з найцікавіших знахідок програми Vray. Mental Ray також має методи обчислення зі схожими якісними результатами, проте він виконує обчислення без розрахунку зміни геометрії і кольору, і для того щоб зрівнятися з VRay доводиться збільшувати кількість точок, що неминуче позначається на швидкості рендеру.

Irradiance map + photon map – це найшвидший і якісний метод розрахунку освітленості в сцені, і саме його використовують в переважній більшості випадків. Однак бувають ситуації, коли його застосування стає нераціональним.

Наприклад, при розрахунку нічного освітлення, де недостатньо фотонів, або якщо освітлювані матеріали не мають дифузного освітлення. Тоді розрахунок стає нескінченним, не даючи ніяких результатів. У цих ситуаціях краще застосовувати останнім поєднання – Irradiance map + DC.

Підведемо короткий підсумок. Стаття вийшла досить легкою, так як ми намагалися не перевантажувати матеріал термінологією і тонкощами, але поки процес роботи з VRay не розкритий. Для настройки освітлення екстер’єру vray або інших сцен цього недостатньо, але воно і не дивно, так як люди вивчають властивості подібних програм роками.

Для більшого розуміння теми радимо переглянути відео. Наостанок додамо, що практичне використання VRay буде докладніше розписано в наступній статті на цю тему, яка неодмінно відбудеться в майбутньому.

Ссылка на основную публикацию