4. Методи побудови реалістичних трьохвимірних зображень

4.6. Рендеринг Гуро та Фонга

 

Процес відтворення (візуалізації) об’єкта або сцени називається рендерингом (від англійського “rendering відтворення, передача візуалізації).

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

 

Рис.4.20. Приклади синтезу об’ємних фігур: а) однотонове заповнення; б) зафарбовування методом Гуро; в,г) зафарбовування методом Фонга    

Для здійснення зафарбування методом Гуро необхідно провести розбивку об’єкта на полігони. Якщо при побудові полігональної поверхні для кожної грані використовується по одній нормалі, то створюється зображення, що складається з окремих багатокутників ( ис. 4.20, а). Методом Гуро можна одержати згладжене зображення (рис. 4.20, б). Нормалі до поверхні апроксимуються у вершинах багатокутників. За вибраною моделлю освітлення визначається інтенсивність кольору вершин багатокутника, а потім, за допомогою інтерполяційних формул, обчислюється інтенсивність кожного піксела всередині багатокутника. 

 

Рис. 4.21. Ефект смуг Маха

При уважному розгляданні об’єкта, зафарбованого по методу Гуро, помітний прояв ефекту смуг Маха (рис. 4.21). Метод Гуро не завжди дозволяє уникнути різкої зміни інтенсивності на граничних ребрах багатокутників, де і видні смуги Маха. Ефект смуг Маха обумовлений латеральним гальмуванням рецепторів ока, реакція яких на світло піддається впливу сусідніх рецепторів. Рецептори, розташовані безпосередньо на межі перепаду інтенсивностей із більш яскравої сторони, піддаються більш сильному подразненню, ніж ті, що знаходяться далі від межі. Це пояснюється тим, що вони менше загальмовуються своїми сусідами, що знаходяться з темнішого боку. Аналогічно, рецептори, розташовані безпосередньо на межі перепаду інтенсивності з більш темної її сторони, будуть піддаватися меншому впливу, ніж ті, що знаходяться в тій ж області, але далі від межі.  

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

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

 

Рис. 4.22. Зафарбовування методом Гуро

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

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

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

Розглянемо більш детально процес зафарбування області ,обмеженої одним трикутником. Геометрія трикутника задається координатами вершин (А, В та С) (рис.4.22), за значеннями яких визначають прирости координат для кожної сторони трикутника. Для методу Гуро задаються значення інтенсивності у вершинах Ia, Ib, Ic. Необхідно обчислити інтенсивність всіх інших точок усередині даного трикутника і на його ребрах. Для цього знайдемо інтенсивність довільно обраної точки D усередині полігона.  

Визначимо приріст інтенсивності світла на один піксель уздовж ребер трикутника :

Проведемо через точку D лінію, паралельну горизонтальній осі. Вона перетне ребра трикутника в точках L і M. По приростах інтенсивності уздовж ребер визначимо інтенсивність точок, що належать цим ребрам.   

IM = IA+DIAB ·БПAM  Інтенсивність точки M

IL = IA+DIAC ·БПAL    Інтенсивність точки L  

Далі за аналогією з попередніми діями визначимо приріст інтенсивності уздовж скануючої прямої LM.  

DILM = (IL–IM)/LM збільшення інтенсивності уздовж прямоїLM ( у даному випадку LM=БПLM);  

Інтенсивність світла в точці D знайдемо у такий спосіб:

ID = IL+DILM ·LD інтенсивність шуканої точки.  

Аналогічним способом визначається інтенсивність будь-якої іншої точки, обмеженої заданим полігоном.  

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

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

Наприклад: IQ = IL+DILM+DILM+DILM  (див.рис.4.22)  

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

На рисунку 4.23а а приведений приклад попіксельного зафарбування прямокутного трикутника при Ia=5, Ib=9, Ic=1. Значення інтенсивностей світла отримані за описаними вище формулами, наведені на рис.4.23б.   

  Рис.4.23. Приклад реалізації рендеринга Гуро

У випадках, коли обчислювальної потужності одного процесі рендерингу не достатньо, використовують перелельний рендеринг.   Існує два основних підхода до паралельному рендерингу:  *  кмпозиція зображень, при якій кожний процес рендерингу генерує повноекранне зображення частиною складної сцени, і повне зображення виходить накладанням частин зображень;   *  розділення екрану, коли кожний процес рендерингу генерує повне зображення частиною екрана, а зображення всього екрану виходить "склейкою" всіх частинних зображень.   Кожний з цих двох підходів має свої переваги і недостатки. Композиційна схема потребує складної апаратури композиції, що обмежує кількість можливих атриьутів у піксулях. Крім того, навантаження на процеси рендеритгу може бути не збалансована.   З іншої сторони, схема розбиття екрана припускає наявність підпрограми, яка дозволяє розприділяти наступаючі полігони для зафарбування різних чмстин екрану. Крім того, дял адаптивного регулювання навантаження на процеси рендерингу необхідно проводити динамічне, а не статичне розбиття екраного кадру. Склейка повного зображення не потребцє складних спеціальних операцій.  

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

Контрольні   запитання.

1.  В чому полягає процедура рендеринга ?  

2.  В яких випадках використовують рендиринг Гуро та Фонга ?  

3.  Які обчислювальні дії включає в себе рендеринг Гуро ?  

4.  Як обчислюється інтенсивність кольору точок згідно редеринга Фонга ?

     Зміст