Використання квадратичної інтерполяції для зафарбовування тривимірних графічних об’єктів
Розробка двох нових підходів до зафарбовування. Розрахунок інтенсивності кольору в кінцевих і середній точках рядка растеризації. Визначення векторів нормалей для розрахунку дифузної і дзеркальної складової кольору як суттєва відмінність другого підходу.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | украинский |
Дата добавления | 29.01.2019 |
Размер файла | 98,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
О. Н. Романюк
Размещено на http://www.allbest.ru/
32
Размещено на http://www.allbest.ru/
Використання квадратичної інтерполяції для зафарбовування тривимірних графічних об'єктів
Одним із пріоритетних напрямків розвитку комп'ютерної графіки є формування в реальному часі тривимірних зображень, які характеризуються високою реалістичністю та інформативністю. Одним з основних та найбільш трудомістких етапів формування реалістичних зображень є етап зафарбовування, на якому розраховуються екранні координати пікселів поверхні та їхні інтенсивності кольору. Традиційні засоби, які використовуються для цього, не завжди в змозі забезпечити продуктивність, необхідну для відтворення сцени в реальному часі. Указане обумовлює необхідність розробки більш продуктивних методів і засобів зафарбовування тривимірних графічних об'єктів.
Серед методів зафарбовування тривимірних об'єктів найбільшого поширення отримали методи Гуро та Фонга [1, 2].
У методі Гуро [1, 2] розраховуються інтенсивності кольору для полігональних вершин, які потім у процесі растеризації лінійно інтерполюються вздовж ребер і рядків сканування. Більш перспективним уважається метод Фонга, в якому замість значень інтенсивності кольору інтерполюються вектори нормалей, які потім використовуються у функції тонування для обчислення інтенсивності кольору кожного елемента зображення. Цей метод порівняно з методом Гуро характери-зується значно більшими обчислювальними витратами, однак при цьому дося-гається краща локальна апроксимація кривизни поверхні та, як наслідок, отри-муються більш реалістичні зображення.
Метод Гуро, який реалізовано практично в усіх сучасних графічних акселераторах, найбільш придатний тільки для формування матових поверхонь та таких, які погано відбивають світло, тому що лінійна кодова інтерполяція інтенсивностей кольору не враховує кривизни поверхні, у той час, як дифузна та дзеркальна складові інтенсивності кольору мають нелінійну залежність від координат пікселів.
Основною перешкодою до широкого впровадження методу Фонга в графічні акселератори є великий обсягом обчислень, оскільки для кожної точки поверхні необхідно обчислити вектор нормалі до поверхні, вектор напрямку джерела світла , вектор спостерігача , серединний вектор , нормалізувати їх, знайти скалярні добутки й обчислити інтенсивність кольору згідно функції тонування [1, 2]:
, (1)
де - інтенсивність розсіяного світла; - інтенсивність джерела свтла; - відповідно коефіцієнти розсіяного, спекулярного та дифузного від-биття; п - коефіцієнт спекулярності поверхні. Слід зазначити, що всі вектори, які використовуються у функції (1) тонування, повинні бути нормалізовані.
Мета статті - спрощення методу Фонга за рахунок виконання розрахунків інтенсивностей кольору згідно функції тонування тільки для точок, які належать ребрам трикутника, з подальшим використанням квадратичного інтерполювання інтенсивностей кольору або векторів нормалей уздовж рядків растеризації.
По векторах нормалей (рис. 1) легко розрахувати нормовані значення векторів нормалей у крайніх точках рядка растеризації відповідно лівого та правого ребер трикутника. Аналогічні дії виконують і для векторів і . Згідно функції тонування (1) розраховують інтенсивності кольору в лівій і правій точках рядка растеризації.
Обчислюють значення інтенсивності кольору в середній точці рядка растеризації, яка може й не співпадати з точкою координатної решітки. Вектор нормалі в середній точці і-го рядка растеризації можна обчислити за формулою [3]:
зафарбовування растерізація колір інтерполяція
Формули для розрахунку , аналогічні. За отриманими значеннями векторів нормалей згідно формули (1) знаходять .
Рис. 1. Вектори нормалей до ребер трикутника
Таким чином, для кожного рядка растеризації розраховують інтенсивності кольору відповідно в лівій, середній та правій точках.
Проміжні значення інтенсивностей кольору в рядку растеризації знайдемо за формулою:
, (2)
де змінюється від нуля до одиниці. Знайдемо невідомі .
При . У правій точці рядка растеризації , тому .
У середній точці рядка растеризації , тому .
Розв'язавши систему рівнянь
знаходимо невідомі :
.
Підставивши значення коефіцієнтів у рівняння (2), отримуємо:
.
Якщо - позиція піксела в рядку растеризації, то потокове значення змінної буде дорівнювати , де - довжина рядка растеризації. Приріст на один піксел дорівнює .
Підставивши в рівняння (2) значення отримуємо:
Нехай
. (3)
Знайдемо значення останнього виразу для :
.
З урахуванням виразу (3) отримуємо:
.
Останній член є константою для рядка растеризації та може бути розрахованим на етапі підготування до зафарбовування. Граф-схему алгоритму розрахунку інтенсивностей кольору в рядку растеризації наведено на рис. 2, де j - позиція піксела в рядку растеризації.
Кількість і склад операцій для зафарбовування середнього трикутника, який містить 100 точок (), за методом Фонга і запропонованим методом наведено в таблиці.
Кількість і склад операцій для зафарбовування середнього трикутника
Метод зафарбовування |
Кількість операцій |
||||
Додавання |
Множення |
Ділення |
Квадратний корінь |
||
Метод Фонга |
1903 |
2490 |
987 |
324 |
|
Запропонований метод |
2944 |
2364 |
201 |
24 |
Рис. 2. Граф-схема алгоритму визначення інтенсивностей кольору точок рядка растеризації
З таблиці видно, що при використанні для зафарбовування квадратичної інтерполяції досягається суттєве підвищення продуктивності за рахунок змен-шення кількості довготривалих операцій ділення та знаходження квадратного кореня. Так, наприклад, час зафарбовування середнього трикутника (див. табли-цю) зменшився в 3,5 рази (для отримання оцінки було використано дані [4] про кількість тактів роботи мікропроцесора для наведених у таблиці мікрооперацій).
Запропонований підхід найбільш доцільно використати для об'єктів із висо-кою щільністю тріангуляційної мережі, де ймовірність різкого переходу інтенсив-ностей кольору в межах трикутника достатньо мала.
Для об'єктів із малим та середнім ступенем деталізації доцільно інтерполювати вектори нормалей і , які враховують локальну кривизну поверхні, а також положення джерела світла та спостерігача. Якщо для і-го рядка растеризації задано вектор нормалей і , то згідно наведеної раніше формули для розрахунку легко знайти вектор у середній точці рядка.
Проміжні значення векторів нормалей у рядку растеризації знайдемо за формулою:
.
Аналогічно до розв'язку рівняння (2), знаходимо:
.
Позначимо через , тоді:
,
.
Неважко побачити, що .
Аналіз розкладу у ряди Тейлора, Лежандра, Лагера, Чебішева показав, що найменшу похибку апроксимації забезпечує ряд Чебішева.
Позначимо через r, де - кут між векторами і . Тоді функцію можна апроксимувати поліномом Чебішева другого ступеня: .
На рис. 3 зображено графік відносної похибки апроксимації, яка не перевищує 0,36%. Використання запропонованої формули дозволяє зменшити час розрахунку вектора нормалі в середній точці рядка растеризації майже в чотири рази порівняно із класичною реалізацією.
Рис. 3. Відносна похибкаапроксимації виразу рядом Чебішева
Аналіз показав, що для зафарбовування середнього трикутника, параметри якого наведено вище, при визначені векторів нормалей згідно запропонованого методу необхідно виконати таку кількість мікрооперацій: додавань - 2944, множень - 2362, ділень - 201, квадратний корінь - 24. Час зафарбовування середнього трикутника порівняно із класичною реалізацією методу Фонга зменшився у два рази, що є вагомим підтвердженням суттєвого підвищення продуктивності.
Запропоновані методи дозволили суттєво підвищити продуктивність зафарбовування. Візуальна відмінність між тестовими зображеннями оцінювалася за нормованою середньоквадратичною похибкою (NMSE), значення якої не перевищувало 0,00025, що є прийнятним при формуванні реалістичних зображень.
Література
1. Херн Д., Павлин Бейкер М. Компьютерная графика и стандарт OpenGL. - М.: Издательский дом «Вильямс», 2005. - 1168 с.
2. Роджерс Д. Алгоритмические основы машинной графики: Пер. с англ. - М.: Мир, 1989. - 512 с.
3. Романюк О.Н. Комбіноване використання бінарної та кодової лінійної інтерполяції для нормалізації векторів нормалей при зафарбовуванні тривимірних об'єктів // Вестник Херсонского национального технического университета. - Херсон: ХНТУ, 2006. - Вып. 2 (25). - С. 408-411.
4. Pentium™ Processor Family User's Manual. Volume 3: Architecture and Programming Manual. 1994.
Размещено на Allbest.ru
...Подобные документы
Призначення і основні характеристики систем автоматизації конструкторської документації. Основні методи створення графічних зображень і геометричних об’єктів. Методи побудови та візуалізація тривимірних об’єктів. Опис інтерфейсу користувача системи.
дипломная работа [1,7 M], добавлен 26.10.2012Загальна характеристика WordArt. Об’єкти WordArt і автофігури. Форматування, розтягування і стиснення тексту. Вкладки на панелі інструментів та дії в них у MS Word. Зміна автофігур, організаційних діаграм, об'єктів WordArt, кольору, діаграм, формул.
реферат [469,0 K], добавлен 15.03.2015DirectX як набір API функцій, розроблених для вирішення завдань, пов'язаних з ігровим і відеопрограмуванням в операційній системі Microsoft Windows. Етапи створення тривимірних графічних додатків на базі платформи dotNET. Аналіз компонентної моделі COM.
дипломная работа [4,4 M], добавлен 22.10.2012Поняття та види векторів. Прості математичні операції над ними. Векторний добуток, його геометричні та алгебраїчні властивості. Визначення та реалізація програмного класу багатовимірних векторів. Перевантажені оператори та дружні оператор-функції.
курсовая работа [110,1 K], добавлен 15.01.2012Характеристика форматів, які містять у собі опис тривимірних об'єктів. Мова моделювання віртуальної реальності, способи відображення координатних перетворень. Класифікація форматів графічних зображень, їх специфічні ознаки, призначення та застосування.
контрольная работа [1,5 M], добавлен 20.09.2009Технологія проектування та розробка об'єктно-орієнтованих програм. Використання автоматного підходу при реалізації прикладних програм. Програмні продукти для графічного моделювання кінцевих автоматів. Виконуваний UML та SWITCH-технологія, їх принципи.
курсовая работа [27,1 K], добавлен 23.12.2011Топологічний аналіз початкового графу. Розробка підходів до розпаралелювання і послідовного рішення задачі – розрахунку потоків повітря у кожній гілці мережевого динамічного об’єкту – вентиляційної мережі. Аналіз ефективності паралельних рішень.
курсовая работа [743,4 K], добавлен 27.08.2012Аналіз питань, пов'язаних з особливостями побудови сучасних програм-помічників працівникам салонів перукарських послуг. Розробка програмного застосування, за допомогою якого виконується допомога у підборі зачіски та кольору волосся, створення бази даних.
дипломная работа [4,5 M], добавлен 11.02.2012Програма створення графіки OpenGl. Алгоритми зафарбовування від внутрішньої точки до границь довільного контуру. Алгоритм обчислення координати точки кривої Без'є за заданними параметрами. Створення програм OpenGL мовою С, C++ у середовищі Windows.
контрольная работа [285,3 K], добавлен 19.09.2009Розробка програми для розрахунку норм вектору. Процедури множення матриці на матрицю, сумування матриць, віднімання векторів. Функція множення матриці на вектор. Обчислення евклідової норми вектора. Створення зручного інтерфейсу для користувача.
курсовая работа [397,6 K], добавлен 13.03.2011Розробка алгоритму по виявленню і локалізації особи на зображенні у візуальному середовищі Delphi. Розробка програми по виділенню областей кольору шкіри особи, крапок, ліній і яскравості зображення. Опис структури програми і інтерфейсу користувача.
курсовая работа [3,9 M], добавлен 07.01.2014Розробка структурно-технологічної схеми гнучкої виробничої системи. Розбиття множини об`єктів. Визначення складу та кількості допоміжного обладнання. Розрахунок складу устаткування для транспортування інструмента. Формування віртуальної структури.
курсовая работа [1,4 M], добавлен 12.09.2012Розробка методу-члену класу для створення нового одновимірного масиву з кількості всіх негативних елементів кожного рядка заданого двовимірного динамічного масиву. Особливість виводу змісту масиву на екран. Аналіз перевірки правильності роботи програми.
лабораторная работа [131,2 K], добавлен 18.11.2021Історія системи RGB як офіційного стандарту, її адитивна кольорова модель та використання для опису основних кольорів. Експерименти Максвелла, розрахунки кольору для джерел випромінювання та їх графічне зображення. Об’ємні об’єкти бібліотеки Opengl.
контрольная работа [4,2 M], добавлен 15.09.2009Використання CMY та CMYK для опису кольору при отриманні зображень методом поглинання кольорів. Субтрактивні кольори: блакитний (Cyan), пурпурний (Magenta) та жовтий (Yellow). Моделювання розповсюдження світла в об'ємі напівпрозорого середовища.
контрольная работа [3,5 M], добавлен 22.10.2009Постановка задачі інтерполяції. Аналітичне визначення коефіцієнтів інтерполяційного многочлена. Метод Лагранжа, задача зворотної інтерполяції. Інтерполяційна формула Бесселя. Вибір оптимального алгоритму. Приклад програми обчислення значення функції.
курсовая работа [502,8 K], добавлен 16.03.2011Програмування JavaScript на прикладі створення меню. Обробник подій onMouseOver. Використовування властивостей і методів об'єкту document. Масив та прапорці (bolean) для визначення зміни кольору. Робота з властивостями та індивідуальними елементами меню.
лабораторная работа [18,1 K], добавлен 20.03.2011Визначення поняття кольору, його опису і специфікації. Сприйняття кольорів з позицій фізики, видимий та невидимий спектр. Характеристика шкали яскравості, моделі кольорів. Однорідні для сприйняття кольорові простори. Системи впорядкування кольорів.
реферат [16,8 K], добавлен 08.08.2011Розробка системи, що дозволяє оптимізувати управління запасами продукції на складі. Характеристика двох модулів програми: реалізація першого модуля в середовищі Delphi, реалізація другого модуля на основі матричної ігрової моделі управління запасами.
дипломная работа [2,0 M], добавлен 22.10.2012Характеристика програмного забезпеченнягалузь його використання, вимоги до розробки та її джерела, мета та призначення. Структура й основні принципи побудови систем автоматизації конструкторської документації. Технології параметричного моделювання.
дипломная работа [2,3 M], добавлен 26.10.2012