36
Етап 5. Ребра, що пройшли перевірку з усіма гранями з FACETABLE, вважаються видимими і виводяться на екран.
Переваги:
позбавлений обмежень алгоритму невидимих граней, тобто не залежить від кількості обьєктів, їх випуклості та наявності криволінійних площин.
3.4 Метод Z – буфера (буфер глибини)
Z – буфер – область пам'яті, подібна буферу кадру, в якому зберігаються Z – координати об'єктів, до проекцій яких відносяться пікселі зображення. Об’єм Z – буфера визначається кількістю пікселів, для кожного з яких треба зберегти дійсне число.
Цей метод призначений для видалення прихованих поверхонь але може бути використаний для видалення прихованих ліній. Принцип:( той же, що і у алгоритма сортування по глибині: на будьякій ділянці екрану виявляється проекція елемента (точки, кривої, або поверхні), розташованого ближче за інших до спостерігача. Відмінність полягає в тому, що порядок проецювання не має значення.
Етап 1. Ініціалізація Z - буфера, координатами Zv, відповідними дальній площині. Проецювання площини на екран; фарбування пікселів проекції в колір дальньої площини.
Етап 2. Проецювання довільно вибраної поверхні. Всі не зафарбовані піксели, що відносяться до нової поверхні, зафарбовуються в її колір. Якщо піксели вже були зафарбовані, то відповідні їм значення Zv порівнюються з поточними Zv. Якщо збережене Zv більше поточного (тобто точка на попередній поверхні ближче до спостерігача) – колір пікселя не змінюється, інакше піксел зафарбовується в колір поточної поверхні. Повторення етапу 2 для всіх поверхонь дозволяє пофарбувати піксели екрану в кольори найближчих поверхонь.
36
37
Рисунок 3.3 – Основи методу Z – буфера
Метод може бути застосований для видалення невидимих ліній. Етап 1. Проецювання всіх поверхонь на екран, при цьому піксели зафарбовуються в колір фону. При цьому Z – буфер заповнюється значеннями Zv найближчих до спостерігача поверхонь. Етап 2. Проецювання на екран ребер поверхонь; порівняння Zv
– ребер і Zv – поверхонь; фарбування пікселів видимих ребер.
Недоліки:
значні витрати часу на візуалізацію "непотрібних" поверхонь;
значний обсяг пам'яті для підтримки Z – буфера з достатньою точністю;
ефекти «сходинок».
Висновок: розглянуті алгоритми видалення невидимих ліній або поверхонь мають різну форму залежно від наступних критеріїв:
точність по об'єкту – алгоритм обчислює координати кожного видимого ребра кожної грані; ці алгоритми реалізуються в системі координат об'єкту; використовуються в САПР;
точність по зображенню – алгоритм визначає, який елемент, якій грані є ближче до спостерігача, а необхідний піксел зафарбовується відповідним кольором; реалізується з точністю до віконної системи координат.
37
38
4 РЕНДЕРІНГ (ВІЗУАЛІЗАЦІЯ)
Для відтворення ефектів, створюваних світлом, що падає на поверхні об'єктів сцени необхідно виконати візуалізацію або рендерінг (тонування).
Існують дві основні технології візуалізації: зафарбовування та трасування променів
4.1 Затушовування
Полягає в тому, що пікселі однієї поверхні зафарбовуються різними кольорами відповідно до кольору та інтенсивності відбитого світла в точці, що проецюється на цей піксел.
Етап 1. Розрахунок інтенсивності.
Поверхня будь-якого об'єкта може бути освітлена прямим світлом (від джерела) і навколишнім освітленням, що відбивається від інших поверхонь. Тому світло, що відбивається даною точкою об'єкта, отримується додатком відбитих променів двох типів (рис.4.1).
Навколишнє освітлення будемо вважати рівномірним. Інтенсивність відбиття навколишнього освітлення визначається так:
|
Ra=Kd•Id, |
(4.1) |
де |
Ra – інтенсивність відбиття; |
|
|
Kd – коефіцієнт відбиття поверхні; |
|
|
Id – інтенсивність навколишнього освітлення. |
|
Рисунок 4.1 – Пряме й навколишнє освітлення
При будь-якому положенні спостерігача ця інтенсивність однакова.
38
39
При прямому освітленні, відбиття світла від крапкового джерела являє собою комбінацію двох видів відбиття: дифузного й
дзеркального.
Дифузне відбиття полягає в тому, що поверхня поглинає світло, а потім перевипромінює його у всіх напрямках; дозволяє побачити особливості структури поверхні (колір і текстуру); його інтенсивність так само як і для відбиття навколишнього освітлення не залежить від положення спостерігача; характерне для грубих поверхонь (матових).
Дзеркальне відбиття – це пряме відбиття світла поверхнею; характерне для блискучих поверхонь; інтенсивність дзеркального відбиття сприймається по різному залежно від положення спостерігача.
а) |
б) |
Рисунок 4.2 – Дифузне (а) та дзеркальне (б) відбиття
Інтенсивність дифузного відбиття прямо пропорційна cos кута падіння й описується співвідношенням, що називається законом косинусів Ламберта (рис. 4.3). З нахилом поверхні кількість променів, що падають на неї, зменшується, це означає, що зменшується і інтенсивність відбитого світла.
|
Рисунок 4.3– Ілюстрація закону Ламберта |
|
|
Математично цей закон записується так: |
|
|
Ip = Ep/DI2, |
(4.2) |
де |
Ip – інтенсивність падаючого світла в потрібній точці; |
|
|
DI – відстань до джерела світла; |
|
|
Ep – інтенсивність джерела. |
|
|
|
39 |
40
На практиці вважають, що джерела світла розташовані далеко від поверхонь так, що DI однакове для всіх точок і його можна не враховувати:
|
|
Rd=Kd•Ep(N•L), |
|
(4.3) |
|
де |
Rd – інтенсивність дифузного відбиття; |
|
|
||
|
Kd – коефіцієнт відбиття поверхні; |
|
|
||
нас; |
N – одиничні вектор нормалі до поверхні в точці, що цікавить |
||||
L – одиничний вектор, |
спрямований |
від точки до |
джерела |
||
|
|||||
світла; |
|
|
|
||
|
(N•L) – косинус |
кута падіння |
(скалярний |
добуток |
|
N•L=|N|•|L|•cos )
Для того, щоб з 2-х паралельних площин, які частково перекриваються на екрані, найближча була яскравішою, тобто мала більше значення Rd формулу треба змінити тким чином:
Rd= (Kd•Ep/D+D0)•(N•L), (4.4)
де D – відстань між точкою, що цікавить нас, і точкою зору спостерігача;
D0 – константа, що дозволяє уникнути ділення на 0 Інтенсивність дзеркального відбиття може бути розглянута на
моделі Фонга.
Більша частина відбитого світла попадає в невеликий конічний об’єм з віссю R (рис. 4.4).
Рисунок 4.4 – Вектори, що використовуються в моделі Фонга.
Інтенсивність сприйманого спостерігачем світла зменшується по мірі віддалення вектора зору V від вектора R. Фонг описав цей ефект так:
“Інтенсивність світла, що сприймається спостерігачем, вектор зору якого відхиляється від осі R на кут пропорційна (cos )n .”
40