Модель віддзеркалення Фонга

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Модель відображення Фонга (також звана підсвічування Фонга або освітлення Фонга) є емпіричною моделлю[en] локального освітлення[en] точок на поверхні. У тривимірній комп'ютерній графіці її іноді неоднозначно називають «затінення Фонга», зокрема, якщо модель використовується в поєднанні з методом інтерполяції з тим же ім'ям і в контексті піксельних шейдерів або в інших місцях, де може бути підрахунок освітлення названий затемнення по Фонгу.

Історія[ред. | ред. код]

Модель відображення Фонга була розроблена Буї Туонг Фонгом[en] в Університеті штату Юта, яка була опублікувана в його Ph.D. дисертації в 1975 році.[1][2] Вона була опублікована спільно з методом інтерполяції обчислення для кожного окремого пікселя, який растеризується з моделі багатокутної поверхні; Метод інтерполяції відомий як затемнення по Фонгу, навіть якщо він використовується з моделлю відображення, відмінною від моделі Фонга. Методи Фонга вважалися радикальними на момент їх введення, але з тих пір стали де-факто базовими методами затемнення для багатьох додатків рендеринга. Методи Фонга виявилися популярними завдяки їх зазвичай ефективному використанню часу обчислень для кожного пікселя.

Опис[ред. | ред. код]

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

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

Для кожного джерела світла в сцені, компоненти та визначаються як інтенсивності (часто у вигляді RGB значень) дзеркальні і дифузні компоненти джерел світла відповідно. Один термін контролює навколишнє освітлення; Він іноді обчислюється як сума вкладів від всіх джерел світла. Для кожного матеріалу в сцені, визначені наступні параметри:

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

Також ми маємо:

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

Тоді модель відображення Фонга дає рівняння для обчислення освітленості кожної точки поверхні :

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

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

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

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

Зворотня хвильова модель Фонга[ред. | ред. код]

Модель відображення Фонга в поєднанні з затемненням Фонга є наближенням затемнення об'єктів у реальному житті. Це означає, що рівняння Фонга може пов'язувати затемнення, видиме на фотографії, з поверхневими нормалями видимого об'єкта. Зворотне ставиться до бажання оцінити нормалі поверхні при заданому зображенні, природному або комп'ютерному.

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

Наприклад, у нас є циліндричний об'єкт, наприклад палець, і ми хочемо обчислити нормаль на лінії об'єкта. Ми припускаємо тільки один світ, відсутність дзеркального відображення і рівномірні відомі (апроксимовані) параметри відображення. Потім ми можемо спростити рівняння Фонга:

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]

Див. також[ред. | ред. код]

Примітки[ред. | ред. код]

  1. Bui Tuong Phong, Illumination for computer generated pictures, Communications of ACM 18 (1975), no. 6, 311—317.
  2. University of Utah School of Computing, http://www.cs.utah.edu/school/history/#phong-ref
  3. Boom, B.J. and Spreeuwers, L.J. and Veldhuis, R.N.J. (September 2009). Model-Based Illumination Correction for Face Images in Uncontrolled Scenarios. У Jiang, Xiaoyi; Petkov, Nicolai. Lecture Notes in Computer Science. Lecture Notes in Computer Science 5702 (2009): 33–40. ISBN 978-3-642-03766-5. doi:10.1007/978-3-642-03767-2. 
  4. F. Francisco; O. Bertolami; P. J. S. Gil; J. Páramos (2012). Modelling the reflective thermal contribution to the acceleration of the Pioneer spacecraft. Advances in Space Research 49 (3): 579. arXiv:1103.5222. doi:10.1016/j.asr.2011.10.016. 

Посилання[ред. | ред. код]