Наскільки фізично засноване дифузне та окулярне розрізнення?


34

Класичний спосіб затінення поверхонь у комп'ютерній графіці в режимі реального часу - це поєднання (ламбертіанського) дифузного терміна та окулярного терміна, швидше за все, Фонга чи Блін-Фонга.

Зображення з Вікіпедії

Тепер із тенденцією до фізико-орієнтованого візуалізації та, таким чином, матеріальних моделей у таких двигунах, як Frostbite , Unreal Engine або Unity 3D, ці BRDF змінилися. Наприклад (досить універсальний при цьому), останній Unreal Engine все ще використовує дифузний Ламбертіан, але в поєднанні з моделлю мікрофайлів Кука-Торранса для дзеркального відображення (зокрема, використовуючи GGX / Trowbridge-Reitz та модифіковану апроксимацію Slick для терміна Френеля ). Крім того, для розрізнення провідника і діелектрика використовується значення металевості.

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

Що стосується реальних фізичних матеріалів, чи існує чітке розділення між дифузним та окулярним, і якщо так, то звідки воно походить? Чому один кольоровий, а інший - ні? Чому диригенти ведуть себе по-різному?

Відповіді:


30

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

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

Цитуючи Наті, "Світло складається з електромагнітних хвиль. Оптичні властивості речовини тісно пов'язані з її електричними властивостями". Ось чому ми групуємо матеріали як метали чи неметали.

Неметали виявлятимуть як відображення, так і заломлення. Неметали

Металеві матеріали мають лише відображення. Все заломлене світло поглинається. Метали

Спробувати моделювати взаємодію частинок світла з молекулами матеріалу було б надмірно дорого. Ми натомість робимо деякі припущення та спрощення.

Спрощення заломлення

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

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

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

Тому художник моделює колір матеріалу, надаючи нам функцію ослаблення матеріалу, тобто те, як світло буде поглинати матеріал. У нашій спрощеній дифузній / дзеркальній моделі це можна представити двома кольорами, дифузним кольором та окулярним кольором. Ще до використання матеріалів, заснованих на фізичній основі, художник довільно обирав кожен із цих кольорів. Однак, здається, очевидно, що ці два кольори повинні бути пов'язані. Сюди входить колір альбедо. Наприклад, в UE4 вони обчислюють дифузний та окулярний колір наступним чином:

DiffuseColor = AlbedoColor - AlbedoColor * Metallic;
SpecColor = lerp(0.08 * Specular.xxx, AlbedoColor, Metallic)

де металевий дорівнює 0 для неметалів та 1 для металів. Параметр 'Specular' контролює чутливість об'єкта (але зазвичай це постійний 0,5 для 99% матеріалів)


1
Чому падаючий промінь розщеплюється після відбиття / заломлення? Якщо світло є частинкою, чи означає це, що ця частинка рекурсивно розщеплюється? І якщо світло є хвилею, це означає, що він розпадається за частотою (але в цьому випадку, чому він розпадається після удару другого / третього / тощо)?
nikitablack

5
Частка не розщеплюється. Скоріше, зображення показують потенційні шляхи, які він може пройти.
RichieSams

2
Багато частинок потраплять на (майже) те саме місце з (майже) того ж кута. Для кожної частинки, що виходить, є (як правило) частинка, яка ввійшла. Це означає, що усереднений промінь частинок під певним кутом на певному місці розбивається на кілька (багато) відбитків.
храповик урод

1
Чудова відповідь, що проливає світло на більшість моїх запитань. Чому окулярна частина неметалів безбарвна і на неї не впливає альбедо? Як і де грає поляризація ?
Девід Курі

1
"Спостережуваний колір матеріалу - це світло, яке не поглинається." На даний момент, можливо, варто звернутись до інформації. Чи є загальні матеріали, які RGB не представлені добре? дискусія, як люмінесцентні матеріали спадають на думку.
Саймон Ф

23

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

Виявляється, існує багато брехні, в яку ми віримо графікам.


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

Немає такого поняття, як "окулярний колір"

Можливо, ви не знали, що рівняння Френеля залежать від довжини хвилі, оскільки показник заломлення змінюється залежно від довжини хвилі. Різниця порівняно невелика для діелектриків (дисперсія, хтось?), Але може бути величезною для металів (я припускаю, що це пов'язано з різними електричними структурами цих матеріалів).

Тому термін відбиття Френеля змінюється залежно від довжини хвилі, і тому різні довжини хвилі відображаються переважно . Побачене під освітленням широкого спектру, саме це призводить до окулярності. Але, зокрема, немає поглинання, яке магічно відбувається на поверхні (інші кольори просто заломлюються).

Немає такого поняття, як "розсіяне відображення"

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

Метали DO передають світло

Наті Гофман помиляється (точніше, спрощує). Світло не поглинається металами відразу. Насправді він пройде досить зручно через матеріали товщиною в кілька нанометрів. (Наприклад, для золота потрібно 11,6633 нм, щоб послабити 587,6 нм світла (жовтого кольору) наполовину.)

Поглинання, як і в діелектриках, пов'язане із законом Бера-Ламберта. Для металів коефіцієнт поглинання просто набагато більший (α = 4πκ / λ, де κ - уявна складова показника заломлення (для металів ~ 0,5 і вище), а λ задається в метрах ).

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


3
Дякую! Я знав лише спрощення. Ці додаткові деталі є приголомшливими
RichieSams

1
Це захоплююча відповідь. Не могли б Ви уточнити / зв'язати, будь ласка, акронім SSS?
трихоплакс

@trichoplax Дякую! SSS == розсіювання підповерхні.
imallett

Дякую :) Якщо ви уточнити це у запитанні, він переживе видалення коментарів (які не гарантовано довго живуть). Я відредагував посилання та наведіть на нього текст, який, сподіваємось, залишить цільову презентацію недоторканою.
трихоплакс

2
Поки я дуже ціную педантизм цієї відповіді. Поверхневе розсіювання вважається ефектом масштабу в мм, правда, що в молекулярних діапазонах все проходить поверхню певною мірою. Але базовим обмеженням є те, що ми, як правило, підраховуємо ефекти масштабу в мм і намагаємось абстрагувати нижчі рівні як статистичні моделі. Отже, мікрометр дорівнює одразу, оскільки більшість пікселів бачать значно більшу площу, ніж ця. Те саме стосується кольору, який у фізиці не має сенсу так само, як наші очі і мозок сприймають його
joojaa
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.