Читать реферат по информатике, вычислительной технике, телекоммуникациям: "Аналіз методів Bump Mapping" Страница 2

назад (Назад)скачать (Cкачать работу)

Функция "чтения" служит для ознакомления с работой. Разметка, таблицы и картинки документа могут отображаться неверно или не в полном объёме!

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

Bump mapping може створювати ілюзію наявності у об’єкта додаткових геометричних деталей у вигляді нерівностей. Даний метод потребує накладання декількох текстур, які формуються із карти висот і нормалей. Суть полягає в наступному: в кожній точці поверхні задається нормаль, яка враховується при обчислені освітленості[1,3]. Для цього необхідно нормалізувати вектор від джерела світла. Координати вектора, як і колір в кожній точці полігону задається трьома числами: X, Y та Z. Співставленням координат кольору R, G, B з координатами вектора X, Y та Z, отримують нормаль, яку можна представити як кольорову точку. З таких точок формується текстура, де для кожної точки розраховують нормаль. При зміні напрямку нормалі в заданій точці полігона змінюється освітленість точки, тобто освітленість в загальному випадку залежить від орієнтації полігона відносно джерела світла. Оскільки нормаль визначається в кожній точці полігона, то для зміни освітленості поверхні достатньо змінити положення вектора джерела світла. Для того, щоб повернути вектор джерела, достатньо перевести його в нову систему координат, пов’язану з полігоном. Для цього достатньо помножити даний вектор на матрицю перетворення, яка має такий вигляд:

[TxTyTz],

[BxBy Bz],

[NxNyNz],

де вектор N(x,y,z)вектор нормалі до полігона, B(x,y,z) - бінормаль, T(x,y,z) - Tangent. Бінормаль і Тangent – це два вектора, які взаємно перпендикулярні між собою, та перпендикулярні нормалі. Таким чином, три вектора утворюють базис нової системи координат. Вектори В і Т отримують наступним чином: обирається будь-який вектор, не колінеарний нормалі, та знаходиться їх векторний добуток, який і дасть вектор Т. Векторний добуток Т і N дає вектор В. Із трьох базисних векторів формується матриця трансформації, при множенні якої на вектор джерела світла дає корегуючий вектор. Для зміни нормалей скалярно множиться кожен вектор із карти нормалей на отриманий корегуючий вектор. Отриманий результат корегується шляхом його множення на дифузну складову даної точки.

Реалізація bump mapping-а базується на зміні направленості вектора нормалі, відповідно до інформації, яку містить карта висот[1]. Зміна положення потокового вектора в конкретній точці полігону визначає зміну яскравості пікселя. Спочатку потрібно перетворити висоти з карти в вектори по одному на кожен піксель. Для кожного пікселя розраховують вектор, який вказуватиме нахил поверхні в кожній точці. Для визначення даних векторів знаходять градієнт для кожного пікселя:

x_gradient (T) = pixel(x-1, y) - pixel(x+1, y),

y_gradient(B) = pixel(x, y-1) - pixel(x, y+1),

де x, y – координати відповідного пікселя.

Новий вектор нормалі можна обчислити таким чином:

New_Normal = Normal + (U * x_gradient) + (V * y_gradient).

По новому значенню вектора нормалі можна обрахувати яскравість даного пікселя використовуючи технологію затемнення по Фонгу[3,4], в основі якого покладено те, що кількість світла, відбитого від поверхні прямо пропорійна косинусу кута між нормаллю до поверхні і напрямком світла.

Bump mapping має ряд недоліків, які обмежують область його застосування:

1. Неможливість точної


Интересная статья: Основы написания курсовой работы