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

4.1. Стадії побудови реалістичних зображень

 

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

Більшість додатків використовують стандіртну схему побудови 3D сцен. Для скорочення тимчасових витрат на реалізацію використовуються апартні можливості з застосуванням прикладних інтерфецсів API.

Етапи конвеєра можна розділити на 2 основні стадаї: етап геометричних перетворень і етап рендерінга.

Стадія геометричних перетворень

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

Процес розбиття моделюючого об'єкту на прикутники називаєтсья - триангуляцією. Як правило, вона виконуєтсья програмно. Найпростішим рішенням задачі приангцляції являється розчеплення полігона вздовж деякої хорди на два полігона і подільше рекурсивне розбиття їх до ситуації, коли підлягаючий триангуляції полігон являється трикутником. Даний алгоритм вжитий лише для випуклих полігонів. Кожний пакет 3D моделювання здійснює триангуляцію декількому способами, в залежності від поставленої задачі. Наприклад, при моделюванні віддалених обєктів немає сенсу приймати дуже детальну мережу для їх опису і, навпаки, для близьких об'єктів використовуюьб більшу кількіст ьтрикутників.

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

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

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

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

Видалення невидимих поверхонь – на цьому етапі із списку примітивів виключаються повністб невидимі поверхні, що залишилися позаду або збоку поверхні. В програмах машинної графіки для видалення невидимих частин зображення найбільшого розповсюдження отримав метод трасування променів, метод порядкового сканування і метод Z-буфера. Стандартом OpenGL рекомендовано використовувати метод Z-буфера, який реалізований практично в усіх графічних акселераторах. Метод призначений для зберігання інформації, яка необхідна для вірного відображення по глибині іидимих об'єктів в залежності від положення спостерігача. В процесі сканування поверхня моделі перетвориться в значення пікселів у відеобуфері. Одночасно з цим обчислюється відстань від кодної точки поверхні до деякої довільної, але ффіксованої площини, що розташрвана за сценою. Ці відстані зберігаються у відповідній частині пам'яті, яка називається Z-буфером, яка містить данні кожного пікселя зображення. Комп'ютер сканує данну модель, і якщо відстань, що визначенна для даного пікселя, більша, чим раніше для нього ж записана, то Z-буфер обновлюється - в нього заноситься більше з двох значень, і пікселю приписується колір розглянутої поверхні. Якщо ж ця відстань менша, чим раніше записана (це вказує не те, що точка лежить на повкрхні, яка розташована за фрагментом, раніше розглянутим), то в комірці Z-буфера залтшається старе значення і колір пікселя на змінюється. Коли будуть розглянуті всі фрагменти сцени, відеобуфер буде містити зображення з віддаленими невидемими поверхонями.

Стадія рендеринга

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

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

*  текстури можна використовувати дял того, щоб показати матеріал, з якого виготовлений об'єкт;

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

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

Тестури складаються з тікселів, що еквівалентні пікселям дисплею. Для відображення на дисплеї тікселі проектуються у пікселі.

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

Зафарбовування примітивів. Для того, щоб створювати правдоподібні зображення застосовують спеціальні алгоритми зафарбовування для імітації нерівномірного освітлення. Для виконання цієї задачі використовуюьб частіше за все три моделі: плоске зафарбовування, зафарбовування по Гуро і по Фонгу. Плоске зафарбовування не потребує великих обчислювальних витрат. Отримавши описання джерела світла, який освітлює об'єкти сцени, визначають відтінки кольорів, грунтуючись на тому, під яким кутом подоє світло. Чим більше повернута до джерела поверхня об'єкта, тим яскравіше буде вона зафарбована. Зафарбовування по Гуро - згладжує тоновий перехід між ребрами полігону, обчислюючи засобами лінійної інтерполяції насищеність кольору для кожного пікселя полігона. Отримана поверхня більш природно моделює відображення світла і робить візуалізацію більш реалістичною. Модель зафарбування Гуро застосовується в якості стандартного методу OpenGL. На відміну від лінійної інтерполяції насищеність кольору вершин по Гуро, зафарьування Фонга інтерполює вектори нормалей і робить розрахунок освітленості для кожного пікселя. Зафарбування по Фонгу дозволяє отримати вірне сприйняття кривизнв і світлові відблиски, однак із-за складності розрахунків для його створення буде потрібно набагато більше часу.

Зглаляджування, фінальна обробка. На цьому заключному етапі рендеринга відбувається обробка всієї результуючої сцени. Оскільки графічні пристрої є дисретними, то при представленні об'єкта, який має похилі лінії, виникає ефект ступінчастості. Алгоритм зглажування (antialiasing) знижує прояву даного ефекту. Метод повноекранного згладжування (full screen antialiasing) дозволяє значно поліпшити якість вихідної сцени за рахунок розрахунку зображення з великим дозволом і ноступним усередненням значень цольору сусідніх пікселів. Подібним способом усувають різкі границі між полігональними областями. На цьому етапі застосовуються й інші ефекти, такі як змазування (smooth), туман (fogging), які надають сцені більшої реалістичності.

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

1.  Дайте характеристику основним етапам графічного конеєра.

2.  Чим відрізняються етапи 2Д-конвеєра від 3Д-конвеєра?

     Зміст