Чому H (blinn) використовується замість R (phong) у затіненні окулярів?


22

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

Що мені вдалося знайти, це кілька причин:

Це швидше - на цьому є змішана інформація, але навіть це було б чудовою причиною ... у 1998 році.

Він краще обробляє кути, що перевищують 90 градусів - наскільки я можу сказати, що єдиною причиною цього є те, що термін зворотного зв’язку був використаний неправильно. Точковий добуток відображення та погляду дає кут між -1 та +1. Зазвичай цей кут затискається від 0 до 1, це пряма причина проблеми 90 градусів. Повторно нормалізуйте кут замість того, щоб затиснути його, і ви отримаєте повне покриття на 180 градусів. Я відмовляюся вірити, що проста х * 0,5 + 0,5 операція ухиляється від графічного світу протягом 40 років.

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

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

Жодна з цих причин не задовільна, я хочу розібратися в цьому безумстві.

Я хочу уточнити , що я не говорю про Blinn і Фонга конкретно , але замість цього про компонентах вектора H і R, які використовуються в якості основи для цих шейдеров, а також інших.

Відповіді:


24

Для ідеально відбиваючих поверхонь Фонг-модель має сенс. Однак звідки походить n в (RV) ^ n фонг-моделі для наближення більш грубих поверхонь? Де теорія, що ви повинні підняти результат крапкового продукту до сили, за винятком того, що він просто емпірично дає належний результат?

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

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


Я не кажу про специфічну реалізацію телефону, яка насправді не має фізичної основи. Але я не можу бачити, як теорія мікрофайтів підтримує H краще, ніж R, як основу для вектора відображення. Жодна модель затінення не підтримується емпірично, кожна з них не вдається відтворити реальні матеріали відповідно до "Експериментальної валідації BRDF" Addy 2005 року. Мені здається, що мікроінтерфейси моделюються по телефону через крапковий виріб R · V, який може слугувати як Основа для більш фізично правильної підсвітки через функцію перестановки або нарізку. Функція живлення - це просто найпростіший, невірний перекомпонування.
BmB

2
@BmB Ні, мікропоширення не "моделюються по телефону", але використовують розподіл ймовірності мікрошаргів, визначений за допомогою NDF, який "відбирається" з Н-вектором. NDF, як правило, симетричний щодо нормального (ізотропного / анізотропного), тому має сенс використовувати для нього H-вектор. Я сказав , що є емпіричні докази того, що Blinn-модель більш близько апроксимує реальний світ матеріали , ніж Фонг.
JarkkoL

Будь-яке відображення, яке не лежить уздовж вектора відбиття, не є ідеальним дзеркальним відображенням. Точковий виріб створює значення відбиття для кутів, які не є ідеальними. Обов'язково вони повинні вироблятися мікросхемами. Точковий виріб, таким чином, робить модельні мікрофайли. Проста точка створює лінійний розподіл. Але розподіл може бути змодельований будь-якою функцією з R так само добре, як і H. Це не пояснює дійсності H над R.
BmB

1
@ BmB Я пропоную вам прочитати про теорію мікрофайлів та конкретно про частину NDF, щоб зрозуміти концепцію. Це допоможе вам отримати відповідь на своє запитання.
JarkkoL

1
Вам слід відкрити нове питання щодо мікросхема та NDF, оскільки, очевидно, багато чого ви не розумієте щодо цих понять, а коментарі не є правильним місцем для їх пояснення.
JarkkoL

6

Насправді, я думаю, ви самі перерахували причини, за якими Блінн є типовим для Phong.

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

В цілому все це призводить до того, що Блін є кращим за замовчуванням, ніж Фонг.

Чи ідеальний Блінн? Це краще, ніж Фонг?

Ні.

Але це розумне по замовчуванням. Не соромтеся замінювати Phong на Блінн у будь-якому рендері / шейдері, який ви пишете.


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

-2

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

Для фізично заснованого затінення відбитий світло повинен підкорятися рівнянням френеля. (Більшість «фізично заснованих» шейдерів не відповідають) Мікрографети також повинні підкорятися рівнянням френеля, яке спирається на кут падіння для світла, а також на показник заломлення інтерфейсу для отримання правильного результату.

Відповідно до закону відображення кут падіння повинен бути відображений з кутом відображення вздовж поверхні нормальним. Щоб промінь світла потрапив у камеру - що ми знаємо, що це робило - він, мабуть, відбився від світла - що ми знаємо напрямок. Таким чином, нормальна поверхня повинна за вирахуванням бути дзеркальною віссю для цих двох напрямків. Це дає нам половинний вектор H, який знаходиться між ними. Обчислюється шляхом нормалізації суми обох.

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

Зауважимо, що напрямок подання для цього мікрофайла дорівнює R, H не є відображенням. Блін, Кук, Торранс і Горобець можуть смоктати це. Пенг і Френель мали рацію.


Термін Френеля є частиною рівняння BRDF мікрографа, і окремі мікрофайли не враховують це, оскільки вони моделюються як ідеальні відбивачі. Крім того, ви не обчислюєте кут між L і H векторами, але N і H векторами. Це має дати вам підказку, чому Н використовується. Вам потрібно трохи більше знань по темі, щоб зробити висновок, хто був правий чи "правильніший";)
JarkkoL

Мікрогрань матеріалу має ті ж властивості, що і матеріал. Отже, мікроверхня недосконалого відбивача сама по собі не може бути ідеальним відбивачем. Ваша логіка недоброзичлива і не корисна. N крапка Н не має фізичного значення.
BmB

4
Ні, це не так, як працює модель microfacet. Моя логіка чудово звучить, як це може підтвердити кожен, хто розуміє навіть основи мікротекстової моделі. Кожен мікротекст є ідеальним відбивачем (тобто оптично плоским), а недосконале відображення матеріалу випливає з дисперсії нормальних мікрографтів, визначених NDF. Ваша наполегливість відмовлятися від цілком справедливих порад є
дещо

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