Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору
Розглянуто питання адаптивної нормалізації векторів нормалей при зафарбовуванні тривимірних графічних фігур за методом Фонга. Запропоновано виконувати нормалізацію векторів нормалей на межах цифрових сегментів, на які розбивається рядок растеризації.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | статья |
Язык | украинский |
Дата добавления | 29.01.2019 |
Размер файла | 330,3 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
УДК 681.3.06
Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору
О.Н. Романюк1, О.М. Мельников2
1Вінницький національний технічний університет
2Вінницький соціально-економічний інститут університету «Україна»
Розглянуто питання адаптивної нормалізації векторів нормалей при зафарбовуванні тривимірних графічних фігур за методом Фонга. Запропоновано виконувати нормалізацію векторів нормалей на межах цифрових сегментів, на які послідовно розбивається рядок растеризації, з подальшим обчисленням значень проміжних нормалей із використанням лінійного інтерполювання за умови, що їхнє відхилення від одиничного розміру буде менше встановленого значення.
Ключові слова: зафарбовування, рендеринг, нормалізація векторів нормалей.
зафарбовування тривимірний графічний фонг
Графічна форма представлення інформації є найбільш інформативною, тому реалістичні зображення використовуються майже в усіх інженерних та наукових задачах для візуального відтворення реальних об'єктів. Формування реалістичних зображень характеризується значними обчислювальними витратами, що обумовлює підвищені вимоги як до програмно-апаратних засобів, так і до методів і алгоритмів формування графічних зображень. На сучасному етапі розвитку комп'ютерної графіки розробка нових високопродуктивних методів та засобів формування реалістичних зображень є пріоритетною задачею, оскільки традиційні підходи не забезпечують необхідну продуктивність.
Однією з найбільш трудомістких процедур рендерингу є процедура зафарбовування, оскільки для кожної точки поверхні визначаються як екранні координати, так і інтенсивність кольору.
Серед методів зафарбовування тривимірних об'єктів найбільшого поширення отримали метод Гуро та Фонга [1-4]. У методі Гуро розраховуються значення інтенсивностей кольору для полігональних вершин, які потім у процесі растеризації лінійно інтерполюються вздовж ребер і рядків сканування. Метод найбільш придатний тільки для формування матових поверхонь та таких, які погано відбивають світло, тому що кодова інтерполяція інтенсивностей кольору не враховує локальної кривизни поверхні. Крім того, дифузна та дзеркальна складові інтенсивності кольору є нелінійними функціями, а в методі Гуро використовують виключно лінійне інтерполювання.
На даному етапі розвитку комп'ютерної графіки більш перспективним вважається метод Фонга, у якому замість значень інтенсивності кольору інтерполюються вектори нормалей, які потім використовуються у функції тонування для обчислення інтенсивності кольору кожного елемента зображення. Метод характеризується відносно методу Гуро значно більшими обчислювальними витратами, однак при цьому досягається краща локальна апроксимація кривизни поверхні й, як наслідок, отримують більш реалістичні зображення.
При визначені спекулярної та дифузної складової інтенсивності кольору точок тривимірної поверхні за методом Фонга необхідно виконувати нормалізацію векторів нормалей. Це пояснюється тим, що косинуси кутів, які входять у функцію тонування, найбільш просто знайти через скалярний добуток векторів одиничного розміру. Враховуючи, що для кожної точки поверхні нормалізація виконується для векторів спостерігача, джерела світла та вектора нормалі до поверхні, то актуальним є питання зменшення обчислювальної складності цієї трудомісткої процедури.
Аналіз методів і постановка задачі
Якщо вектор має координати , то його нормалізація виконується за формулою:
.
Нормалізація вектора нормалей передбачає виконання двох операцій додавання, трьох операцій множення, трьох операцій ділення та однієї операції знаходження квадратного кореня, що обумовлює достатньо велику трудомісткість.
У роботі [5] розглянуто визначення нормованих векторів нормалей у точках рядка растеризації, отриманих його послідовним поділом навпіл.
Якщо , (рис. 1) відповідно початковий та кінцевий вектори рядка растеризації (ребра трикутника), а кут між ними дорівнює , то вектор , який розміщено в точці , можна знайти за формулою:
де .
Доведено [5], що а
(1)
де знаменник у позначенні означає кількість сегментів, які отримано на n-ітерації при послідовному поділі навпіл сегментів рядка растеризації, за умови, що при сегмент дорівнює рядку растеризації. Показано, що при такому підході при визначені векторів нормалей у внутрішніх точках сегмента довжиною зменшується обсяг обчислень за рахунок виключення з обчислювального процесу операцій множення.
Рис. 1. Визначення проміжних векторів нормалей
Метод передбачає нормалізацію всіх векторів нормалей у рядку растеризації, хоча й за спрощеною процедурою.
Згідно підходу Ліона [1] вираз , який використовується для нормалізації вектора нормалі , розкладають у ряд Тейлора та беруть перші три члени. Обмежена кількість членів ряду Тейлора не дозволяє з достатньою точністю виконати нормалізацію векторів нормалей.
Одиничні вектори нормалей можна отримати, виконуючи сферично-кутову інтерполяцію між початковим та кінцевим векторами нормалі в рядку растеризації за формулою [6]:
,
де -- вектори нормалей у двох попередніх точках рядка растеризації; ; -- довжина рядка растеризації. Недолік методу полягає в необхідності обчислення для кожного рядка растеризації функції арккосинуса згідно з формулою: .
Мета статті -- спрощення процедури зафарбовування тривимірних графічних об'єктів за рахунок адаптивного виконання нормалізації векторів нормалей тільки для тих випадків, коли вона суттєво впливає на точність визначення інтенсивності кольору.
Адаптивна нормалізація векторів нормалей
Знайдемо відстань , враховуючи, що :
.
Оскільки вектор нормовано, тоді:
У загальному випадку:
. (2)
З останнього виразу видно, що чисельник його другого члена співпадає зі знаменником формули (1), що обумовлює простоту розрахунку нев'язки d при визначені векторів нормалей.
Максимальне значення серед усіх можливих буде мати місце для за умови, що . У цьому випадку .
По значенню нев'язки залежно від необхідної точності розрахунку дифузної й спекулярної складової кольору можливо прийняття рішення про призупинення трудомісткої процедури нормалізації і визначення векторів нормалей шляхом лінійного інтерполювання.
Знайдемо формулу для розрахунку через його попереднє значення:
.
Звідси:.
Знайдемо відстань:
.
Знайдемо відношення і розкладемо його у ряд Тейлора.
Отримаємо: .
Таким чином, , причому залишковий член не може бути більшим , оскільки, починаючи із другого члена, має місце знакозмінний ряд, який задовольняє умові теореми Лейбніца. Графік залежності відношення нев'язок на сусідніх ітераціях від значення кута між векторами зображено на рис. 2
Рис. 2. Графік залежності від кута
З наведеного на рис. 2 графіка можна зробити висновок, що з кожною ітерацією відхилення вектора, який отримано шляхом додавання векторів у кінцевих точках сегмента, від його нормованого значення зменшується від 3,4 до 4 разів.
Знайдемо максимальну відносну похибку при розрахунку дифузної та спекулярної складової кольору у випадку призупинення нормалізації векторів нормалей на виділеному сегменті рядка растеризації. З рис. 1 видно, що максимальне значення абсолютної похибки у випадку, коли нормалізований вектор нормалі замінено на суму нормалізованих векторів нормалей, буде мати місце для вектора, який розміщено в середній точці сегмента. Нормалізований вектор нормалі знайдемо за формулою:
Ненормалізований вектор нормалі можна отримати додаванням векторів нормалі, відповідно у початковій і кінцевій точках сегмента рядка растеризації з подальшим діленням отриманого вектора на 2.
Максимальна відносна похибка при визначені дифузної складової кольору дорівнює:
.
Останній вираз легко отримати через відстань . Дійсно, є абсолютною похибкою при заміні нормалізованого вектора на суму векторів, які симетрично розміщені відносно нього. Оскільки нормалізований вектор має одиничну довжину, то є одночасно й відносною похибкою.
З рис. 3 видно, що максимальна похибка в 4 % має місце при = 32°, а в 1 % при 16°, що підтверджує доцільність підходу.
Рис. 3. Залежність від
У випадку визначення спекулярної складової кольору в потоковій точці знаходять n-степінь добутку вектора нормалі на вектор , тому для цього випадку:
.
Розкладемо отриманий вираз у ряд Тейлора та обмежимося двома членами. Отримаємо:
де -- кут між початковим і кінцевим векторами виділеного сегмента.
Враховуючи, що об'єкт, як правило, виготовлено з одного матеріалу, то коефіцієнт спекулярності буде сталим до всього об'єкта. У зв'язку з цим можливо по значенню максимальної допустимої відносної похибки визначення спекулярної складової кольору знайти максимальне значення косинуса кута між векторами в початковій та кінцевій точках сегмента, починаючи з якого можна не виконувати нормалізацію:
.
З останнього виразу знаходимо:
.
При послідовному поділі рядка растеризації розраховані вектори нормалей можуть не лежати в точках координатної решітки. Цього можна уникнути, якщо збільшити розмір рядка растеризації до найближчої степені двійки й довизначити нормалізований вектор нормалі в новій кінцевій точці. У подальшому при поділі навпіл такого рядка растеризації всі його сегменти будуть кратні степені двійки. Слід зазначити, що при зафарбовуванні необхідно оперувати тільки з тими точками сегментів, які належать реальному рядку растеризації. Для знаходження нормалізованого вектора нормалі, який розміщено у кінцевій точці нового рядка, необхідно нормалізувати вектор , де -- довжина реального рядка растеризації, -- довжина довизначеного рядка растеризації.
У подальшому при визначені дифузної складової кольору виконують такі дії.
Послідовно знаходять за формулою (1) вектори нормалей у граничних точках сегментів. Для цього знаходять операнд . За формулою (2) знаходять максимальну похибку, яка буде мати місце за умови, що потоковий вектор не буде нормалізовано, і порівнюють її з допустимою. У випадку, коли похибка буде меншою, то знаходять різницю між кінцевим і початковим векторами потокового сегмента і ділять його шляхом зсуву на , тобто знаходять
.
Усі проміжні вектори нормалей знаходять без нормалізації за формулою:
.
Враховуючи, що з кожною ітерацією максимальне відхилення ненормалізованого вектора від одиничного зменшується не менше ніж у 3,4 рази, то легко знайти інтервали, де нормалізацію вектора можна не виконувати.
При визначені спекулярної складової кольору виконують ті ж самі дії, однак визначають і порівнюють уже максимальну похибку .
Приклад зафарбовування тривимірної графічної фігури з використанням адаптивної нормалізації зображено на рис. 4.
Рис. 4. Приклад зафарбовування тривимірної графічної фігури
Висновки
Запропонований підхід дозволяє підвищити швидкодію зафарбовування тривимірних графічних фігур за рахунок адаптивної нормалізації векторів нормалей. Безпосереднє моделювання показало, що для об'єктів із середнім ступенем деталізації, у яких використовується тріангуляційна мережа середньої щільності (300-1500 трикутників), досягається підвищення продуктивності в середньому на 20-30 %.
Література
1. Lyon R.F. Phong Shading Reformulation for Hardware Renderer Simplification // Apple Technical Report. -- 1993. -- N 43. -- Р. 9-11.
2. Херн Д., Павлин Бейкер М. Компьютерная графика и стандарт OpenGL -- М.: Издательский дом «Вильямс», 2005. -- 1168 с.
3. Романюк О.Н., Чорний А.В. Новий підхід до визначення спекулярної складової кольору // Оптико-електронні інформаційно-енергетичні технології. -- 2004. -- № 2. -- С. 85-92.
4. Роджерс Д. Алгоритмические основы машинной графики: Пер. с англ. -- М.: Мир, 1989. -- 512 с.
5. Романюк О.Н. Комбіноване використання бінарної та кодової лінійної інтерполяції для нормалізації векторів нормалей при зафарбовуванні тривимірних об'єктів // Вестник Херсонского национального технического университета. -- Херсон: ХНТУ, 2006. -- Вып. 2 (25). -- С. 408-411.
6. Романюк О.Н., Чорний А.В. Реалізація рендерингу Фонга з використанням сферично-кутової інтерполяції // Вiсник Вiнницького полiтехнiчного iнституту. -- 2004. -- № 3. -- С. 66-71.
Надійшла до редакції 27.06.3006
Размещено на Allbest.ru
...Подобные документы
Поняття та види векторів. Прості математичні операції над ними. Векторний добуток, його геометричні та алгебраїчні властивості. Визначення та реалізація програмного класу багатовимірних векторів. Перевантажені оператори та дружні оператор-функції.
курсовая работа [110,1 K], добавлен 15.01.2012Задачи моделирования освещения. Локальные и глобальные модели. Диффузное и зеркальное отражение. Уравнение освещенности Фонга. Интерполяция цвета (закраска Гуро). Вычисление нормалей и клонирование вершин. Ошибки интерполяции Фонга, поддержка в OpenGL.
презентация [71,7 K], добавлен 14.08.2013Базис векторного простору. Програма визначення лінійної залежності або незалежності векторів, написана на мові програмування Turbo Pascal. Головна процедура системи - Procedure Lineq. Виконання перевірки умови залежності з масиву знайдених розв’язків.
курсовая работа [34,1 K], добавлен 28.03.2009Методы создания и наложения текстур (сделанных на основе полученных фотографий) в программах Autodesk 3ds MAX и Adobe Photoshop. Добавление карт нормалей и бликов в программе PixPlant для создания материалов. Создание развертки 3D-объекта в 3ds MAX.
дипломная работа [6,2 M], добавлен 15.06.2013Основні відомості з лінійної алгебри. Власні значення і вектори матриці. Метод обертання Якобі. Засоби формування інтерфейсу користувача. Текст програми алгоритму методу обертання Якобі. Вимоги до програмно-технічного забезпечення. Інструкція користувача.
курсовая работа [306,0 K], добавлен 18.11.2015DirectX як набір API функцій, розроблених для вирішення завдань, пов'язаних з ігровим і відеопрограмуванням в операційній системі Microsoft Windows. Етапи створення тривимірних графічних додатків на базі платформи dotNET. Аналіз компонентної моделі COM.
дипломная работа [4,4 M], добавлен 22.10.2012Побудова графіків в декартовій системі координат. Обчислення максимального, мінімального та середнього значення функції. Робота в середовищі Mathcad та Excel. Сортування і фільтрація даних. Дії над масивами випадкових чисел. Створення векторів і матриць.
курсовая работа [341,2 K], добавлен 15.12.2015Розробка програми для розрахунку норм вектору. Процедури множення матриці на матрицю, сумування матриць, віднімання векторів. Функція множення матриці на вектор. Обчислення евклідової норми вектора. Створення зручного інтерфейсу для користувача.
курсовая работа [397,6 K], добавлен 13.03.2011Призначення і основні характеристики систем автоматизації конструкторської документації. Основні методи створення графічних зображень і геометричних об’єктів. Методи побудови та візуалізація тривимірних об’єктів. Опис інтерфейсу користувача системи.
дипломная работа [1,7 M], добавлен 26.10.2012Характеристика форматів, які містять у собі опис тривимірних об'єктів. Мова моделювання віртуальної реальності, способи відображення координатних перетворень. Класифікація форматів графічних зображень, їх специфічні ознаки, призначення та застосування.
контрольная работа [1,5 M], добавлен 20.09.2009Алгоритм покриття за методом "мінімальній стовпець - максимальний рядок". Підпрограми основного алгоритму. Розробка програми сортування методом простих включень (бульбашковим методом). Словесний опис алгоритму, його контрольний приклад та ефективність.
курсовая работа [36,4 K], добавлен 06.03.2013Складання програми на мові Pascal розрахунку за методом трапецій площі між графіками функцій. Розрахунок за методом трапецій площі між графіками функцій. Алгоритм програми. Кількість відрізків, на які розбивається дільниця інтегрування. Межа інтегрування.
контрольная работа [1,2 M], добавлен 22.04.2009Реляційна модель баз даних. Цілісність бази даних. Нормалізація, нормальні форми та функціональні залежності. Нормальна форма Бойса-Кодда. Запити та форми Access. Процес нормалізації при побудові бази даних "Музей" та система запитів над даними.
курсовая работа [2,9 M], добавлен 06.11.2013Принципи побудови тривимірних зображень у ГІС засобами комп’ютерної графіки. Інформативність та точність моделей, створених на основі растрових і векторних програм. Технологія побудови 3D-карт за допомогою "ArcGIS/3D Analyst" та "MapInfo"/"Поверхность".
дипломная работа [700,6 K], добавлен 10.05.2015Практичне використання і вживання інструментів мови C для роботи із складними агрегатами даних. Загальний підхід до різних програмних об'єктів: масив і рядок. Використання вказівок при роботі з масивами і рядками. Розробка завдання і алгоритму програми.
лабораторная работа [16,6 K], добавлен 15.02.2011Даталогічне проектування баз даних та концептуальне (інфологічне) проектування (побудова ER-діаграми та нормалізація даних) інформаційної системи. Фізичне проектування інформаційних систем (СУБД Access: об’єкти бази, створення таблиць, запитів та форм).
курсовая работа [3,5 M], добавлен 09.01.2010Проектування і реалізація навчального програмного продукту "Побудова геометричних фігур". Використання C++ Builder 6 у якості програмного середовища для реалізації даної навчальної програми. Інструкція з використання розробленого програмного забезпечення.
курсовая работа [2,2 M], добавлен 05.05.2014Сучасні системи ЦОС будуються на основі процесорів цифрових сигналів (ПЦС). Сигнальними мікропроцесорами (СМП) або процесорами цифрових сигналів є спеціалізовані процесори, призначені для виконання алгоритмів цифрової обробки сигналів у реальному часі.
лекция [80,1 K], добавлен 13.04.2008BMP як формат зберігання растрових зображень, огляд структури файлу. Створення програми для запису та перегляду графічних BMP-файлів на мові програмування Turbo Pascal 7.0, розробка функціональної схеми і алгоритмів, особливості проведення тестування.
курсовая работа [325,8 K], добавлен 12.06.2011Ознайомлення із структурними електричними схемами цифрових диктофонів (виконаного на інтегральній мікросхемі DA1 ISD1416 та одночіпового) і mрз-плеєра YAMPP-З з метою проектування мікроконтролерної системи як головного елементу звукозаписуючого пристрою.
отчет по практике [551,8 K], добавлен 21.02.2010