Модель відображення Фонга (також звана підсвічування Фонга або освітлення Фонга) є емпіричною моделлю[en] локального освітлення[en] точок на поверхні, розробленою дослідником комп'ютерної графіки Буй Туонг Фонгом[en]. У тривимірній комп'ютерній графіці її іноді неоднозначно називають «затемнення за Фонгу», зокрема, якщо модель використовується в поєднанні з методом інтерполяції з тим же ім'ям і в контексті піксельних шейдерів або в інших місцях, де може бути підрахунок освітлення названий шейдинг.
Модель відображення Фонга була розроблена Буї Туонг Фонгом[en] в Університеті штату Юта, яка була опублікувана в його Ph.D. дисертації в 1975 році.[1][2] Вона була опублікована спільно з методом інтерполяції обчислення для кожного окремого пікселя, який растеризується з моделі багатокутної поверхні; Метод інтерполяції відомий як затемнення за Фонгом, навіть якщо він використовується з моделлю відображення, відмінною від моделі Фонга. Методи Фонга вважалися радикальними на момент їх введення, але з тих пір стали де-факто базовими методами затемнення для багатьох додатків рендеринга. Методи Фонга виявилися популярними завдяки їх зазвичай ефективному використанню часу обчислень для кожного пікселя.
Фонг-відображення — емпірична модель локального освітлення. Він описує, як поверхня відбиває світло як комбінацію дифузного віддзеркалення шорсткуватих поверхонь з дзеркальним відбиттям блискучих поверхонь. Це засновано на неофіційному спостереженні Фонга про те, що блискучі поверхні мають невеликі інтенсивні дзеркальні відблиски[en], в той час як тьмяні поверхні мають великі освітлювальні прилади, які падають більш поступово. Модель також включає навколишній термін для обліку невеликої кількості світла, розсіяного навколо всієї сцени.
Для кожного джерела світла в сцені, компоненти та визначаються як інтенсивності (часто у вигляді RGB значень) дзеркальна і дифузна компоненти джерел світла відповідно. Одна компонента контролює навколишнє освітлення; Вона іноді обчислюється як сума внесків від всіх джерел світла. Для кожного матеріалу в сцені, визначені наступні параметри:
Також ми маємо:
Тоді модель відображення Фонга дає рівняння для обчислення освітленості кожної точки поверхні :
де вектор напрямку розраховується як відображення на поверхні, яка характеризується нормаллю поверхні , використовуючи
і капелюхи вказують, що вектори нормовані. Дифузний термін не залежить від напрямку перегляду (). Дзеркальний термін великий, тільки коли напрямок глядача () суміщений з напрямком відображення . Їх вирівнювання вимірюється за допомогою значення косинуса кута між ними. Косинус кута між нормалізованими векторами and дорівнює скалярному добутку. Коли велике, у випадку дзеркального відображення, дзеркальна підсвічування буде мале, тому що будь-яка точка в полі зору, що не збігається з відображенням, матиме косинус менше одиниці, який швидко наближається до нуля при збільшенні до високої потужності.
Хоча наведена вище формулювання є поширеним способом представлення моделі відображення Фонга, кожен термін слід включати тільки в тому випадку, якщо точка-точка терміна позитивна. (Крім того, дзеркальний термін слід включати тільки в тому випадку, якщо точковий продукт дифузного терміна позитивний.)
Коли колір відображається в RGB, як часто це буває в комп'ютерній графіці, це рівняння зазвичай моделюються окремо для R, G і В інтенсивності, що дозволяє різні відображення констант та для різних каналів кольорів[en].
Модель відображення Фонга в поєднанні з затемнення за Фонгом є наближенням затемнення об'єктів у реальному житті. Це означає, що рівняння Фонга може пов'язувати затемнення, видиме на фотографії, з поверхневими нормалями видимого об'єкта. Зворотне ставиться до бажання оцінити нормалі поверхні при заданому зображенні, природному або комп'ютерному.
Модель відображення Фонга містить багато параметрів, таких як параметр поверхневого дифузного віддзеркалення (альбедо), який може варіюватися в межах об'єкта. Таким чином, нормалі об'єкта на фотографії можуть бути визначені тільки шляхом введення додаткової інформації, такої як кількість вогнів, напрямки світла і параметри відображення.
Наприклад, у нас є циліндричний об'єкт, наприклад палець, і ми хочемо обчислити нормаль на лінії об'єкта. Ми припускаємо тільки один світ, відсутність дзеркального відображення і рівномірні відомі (апроксимовані) параметри відображення. Потім ми можемо спростити рівняння Фонга:
With a constant equal to the ambient light and a constant equal to the diffusion reflection. We can re-write the equation to:
Which can be rewritten for a line through the cylindrical object as:
For instance if the light direction is 45 degrees above the object we get two equations with two unknowns.
Через ступені двійки в рівнянні є два можливих рішення для напрямку нормалі. Таким чином, для визначення правильного напрямку нормалі необхідна деяка попередня інформація геометрії. Нормалі безпосередньо пов'язані з кутами нахилу лінії на поверхні об'єкту. Таким чином, нормалі дозволяють обчислювати відносні висоти поверхні лінії на об'єкті з використанням лінійного інтеграла, якщо припустити безперервну поверхню. Якщо об'єкт не є циліндричним, ми маємо три невідомих нормальних значення . Потім два рівняння і раніше дозволяють нормалі обертатися навколо вектора виду, тому необхідні додаткові обмеження з попередньої геометричній інформації. Наприклад, при розпізнаванні осіб ці геометричні обмеження можуть бути отримані з використанням аналізу головних компонентів (PCA) в базі даних глибинних карт граней, що дозволяють знайти тільки нормальні нормальні рішення, які знаходяться в нормальній популяції.[3]
Як вже говорилося, модель відображення Фонга часто використовується разом з затемненням за Фонгом для затемнення поверхонь у програмному забезпеченні в комп'ютерній графіці. Крім того, він може також використовуватися для інших цілей. Наприклад, він використовувався для моделювання відображення теплового випромінювання від зондів Піонера в спробі пояснити аномалію Піонера.[4]