Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору

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

Повний опис

Збережено в:
Бібліографічні деталі
Дата:2006
Автори: Романюк, О.Н., Мельников, О.М.
Формат: Стаття
Мова:Ukrainian
Опубліковано: Інститут проблем реєстрації інформації НАН України 2006
Назва видання:Реєстрація, зберігання і обробка даних
Теми:
Онлайн доступ:http://dspace.nbuv.gov.ua/handle/123456789/50847
Теги: Додати тег
Немає тегів, Будьте першим, хто поставить тег для цього запису!
Назва журналу:Digital Library of Periodicals of National Academy of Sciences of Ukraine
Цитувати:Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору / О.Н. Романюк, О.М. Мельников // Реєстрація, зберігання і оброб. даних. — 2006. — Т. 8, № 3. — С. 11-19. — Бібліогр.: 6 назв. — укр.

Репозитарії

Digital Library of Periodicals of National Academy of Sciences of Ukraine
id irk-123456789-50847
record_format dspace
spelling irk-123456789-508472013-11-05T03:06:59Z Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору Романюк, О.Н. Мельников, О.М. Математичні методи обробки даних Розглянуто питання адаптивної нормалізації векторів нормалей при зафарбовуванні тривимірних графічних фігур за методом Фонга. Запропоновано виконувати нормалізацію векторів нормалей на межах цифрових сегментів, на які послідовно розбивається рядок растеризації, з подальшим обчисленням значень проміжних нормалей із використанням лінійного інтерполювання за умови, що їхнє відхилення від одиничного розміру буде менше встановленого значення. Рассмотрены вопросы адаптивной нормализации векторов нормалей при закрашивании трехмерных графических фигур методом Фонга. Предложено выполнять нормализацию векторов нормалей в граничных точках цифровых сегментов, на которые последовательно разбивается строка растеризации, с последующим вычислением значений промежуточных нормалей с использованием линейного интерполирования при условии, что их отклонение от единичного размера не превышает установленного значения. The problems of normal vectors adaptive normalization during three-dimensional graphic figures shading using Phong method are considered. It is offered to execute normalization of normal vectors in boundary dots of digital segments, with consequent calculation of intermediate normals values with usage of linear interpolating subject to the condition that their deflection from a unit size does not exceed set value. 2006 Article Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору / О.Н. Романюк, О.М. Мельников // Реєстрація, зберігання і оброб. даних. — 2006. — Т. 8, № 3. — С. 11-19. — Бібліогр.: 6 назв. — укр. 1560-9189 http://dspace.nbuv.gov.ua/handle/123456789/50847 681.3.06 uk Реєстрація, зберігання і обробка даних Інститут проблем реєстрації інформації НАН України
institution Digital Library of Periodicals of National Academy of Sciences of Ukraine
collection DSpace DC
language Ukrainian
topic Математичні методи обробки даних
Математичні методи обробки даних
spellingShingle Математичні методи обробки даних
Математичні методи обробки даних
Романюк, О.Н.
Мельников, О.М.
Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору
Реєстрація, зберігання і обробка даних
description Розглянуто питання адаптивної нормалізації векторів нормалей при зафарбовуванні тривимірних графічних фігур за методом Фонга. Запропоновано виконувати нормалізацію векторів нормалей на межах цифрових сегментів, на які послідовно розбивається рядок растеризації, з подальшим обчисленням значень проміжних нормалей із використанням лінійного інтерполювання за умови, що їхнє відхилення від одиничного розміру буде менше встановленого значення.
format Article
author Романюк, О.Н.
Мельников, О.М.
author_facet Романюк, О.Н.
Мельников, О.М.
author_sort Романюк, О.Н.
title Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору
title_short Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору
title_full Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору
title_fullStr Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору
title_full_unstemmed Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору
title_sort адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору
publisher Інститут проблем реєстрації інформації НАН України
publishDate 2006
topic_facet Математичні методи обробки даних
url http://dspace.nbuv.gov.ua/handle/123456789/50847
citation_txt Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору / О.Н. Романюк, О.М. Мельников // Реєстрація, зберігання і оброб. даних. — 2006. — Т. 8, № 3. — С. 11-19. — Бібліогр.: 6 назв. — укр.
series Реєстрація, зберігання і обробка даних
work_keys_str_mv AT romanûkon adaptivnanormalízacíâvektorívnormalejpriviznačennídifuznoítaspekulârnoískladovoíkolʹoru
AT melʹnikovom adaptivnanormalízacíâvektorívnormalejpriviznačennídifuznoítaspekulârnoískladovoíkolʹoru
first_indexed 2025-07-04T12:42:18Z
last_indexed 2025-07-04T12:42:18Z
_version_ 1836720260364894208
fulltext Математичні методи обробки даних ISSN 1560-9189 Реєстрація, зберігання і обробка даних, 2006, Т. 8, № 3 11 УДК 681.3.06 О. Н. Романюк1, О. М. Мельников2 1Вінницький національний технічний університет 2Вінницький соціально-економічний інститут університету «Україна» Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору Розглянуто питання адаптивної нормалізації векторів нормалей при зафарбовуванні тривимірних графічних фігур за методом Фонга. За- пропоновано виконувати нормалізацію векторів нормалей на межах цифрових сегментів, на які послідовно розбивається рядок растериза- ції, з подальшим обчисленням значень проміжних нормалей із викорис- танням лінійного інтерполювання за умови, що їхнє відхилення від оди- ничного розміру буде менше встановленого значення. Ключові слова: зафарбовування, рендеринг, нормалізація векторів но- рмалей. Вступ Графічна форма представлення інформації є найбільш інформативною, тому реалістичні зображення використовуються майже в усіх інженерних та наукових задачах для візуального відтворення реальних об’єктів. Формування реалістичних зображень характеризується значними обчислювальними витратами, що обумов- лює підвищені вимоги як до програмно-апаратних засобів, так і до методів і алго- ритмів формування графічних зображень. На сучасному етапі розвитку комп’ю- терної графіки розробка нових високопродуктивних методів та засобів формуван- ня реалістичних зображень є пріоритетною задачею, оскільки традиційні підходи не забезпечують необхідну продуктивність. Однією з найбільш трудомістких процедур рендерингу є процедура зафарбо- вування, оскільки для кожної точки поверхні визначаються як екранні координа- ти, так і інтенсивність кольору. Серед методів зафарбовування тривимірних об’єктів найбільшого поширення отримали метод Гуро та Фонга [1–4]. У методі Гуро розраховуються значення ін- тенсивностей кольору для полігональних вершин, які потім у процесі растеризації лінійно інтерполюються вздовж ребер і рядків сканування. Метод найбільш при- датний тільки для формування матових поверхонь та таких, які погано відбивають світло, тому що кодова інтерполяція інтенсивностей кольору не враховує лока- льної кривизни поверхні. Крім того, дифузна та дзеркальна складові інтенсивності © О. Н. Романюк, О. М. Мельников О. Н. Романюк, О. М. Мельников 12 кольору є нелінійними функціями, а в методі Гуро використовують виключно лі- нійне інтерполювання. На даному етапі розвитку комп’ютерної графіки більш перспективним вва- жається метод Фонга, у якому замість значень інтенсивності кольору інтер- полюються вектори нормалей, які потім використовуються у функції тонування для обчислення інтенсивності кольору кожного елемента зображення. Метод характеризується відносно методу Гуро значно більшими обчислювальними вит- ратами, однак при цьому досягається краща локальна апроксимація кривизни поверхні й, як наслідок, отримують більш реалістичні зображення. При визначені спекулярної та дифузної складової інтенсивності кольору то- чок тривимірної поверхні за методом Фонга необхідно виконувати нормалізацію векторів нормалей. Це пояснюється тим, що косинуси кутів, які входять у функ- цію тонування, найбільш просто знайти через скалярний добуток векторів одини- чного розміру. Враховуючи, що для кожної точки поверхні нормалізація вико- нується для векторів спостерігача, джерела світла та вектора нормалі до поверхні, то актуальним є питання зменшення обчислювальної складності цієї трудомісткої процедури. Аналіз методів і постановка задачі Якщо вектор N r має координати ),,( zyx , то його нормалізація виконується за формулою: k zyx zj zyx yi zyx xN rrrr 222222222 ++ + ++ + ++ = . Нормалізація вектора нормалей передбачає виконання двох операцій дода- вання, трьох операцій множення, трьох операцій ділення та однієї операції зна- ходження квадратного кореня, що обумовлює достатньо велику трудомісткість. У роботі [5] розглянуто визначення нормованих векторів нормалей у точках рядка растеризації, отриманих його послідовним поділом навпіл. Якщо aN r , bN r (рис. 1) відповідно початковий та кінцевий вектори рядка рас- теризації ab (ребра трикутника), а кут між ними дорівнює y , то вектор )2 1( N r , який розміщено в точці 2 abx = , можна знайти за формулою: , )cos1(2 )2 1( )2 1( z NNNNN baba rrrr r + = + + = y де )cos1(2z )2 1( y+= . Доведено [5], що ,2 )2/1()2/1( 1 nn zz +=+ а Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору ISSN 1560-9189 Реєстрація, зберігання і обробка даних, 2006, Т. 8, № 3 13 , 2 )2/1( ) 2 1( ) 2 1( 1 n n n z NN N a + + = + rr r (1) де знаменник у позначенні ) 2 1( n означає кількість сегментів, які отримано на n- ітерації при послідовному поділі навпіл сегментів рядка растеризації, за умови, що при 0=n сегмент дорівнює рядку растеризації. Показано, що при такому під- ході при визначені векторів нормалей у внутрішніх точках сегмента довжиною k2 зменшується обсяг обчислень за рахунок виключення з обчислювального процесу 3)22(3 --× k операцій множення. Рис. 1. Визначення проміжних векторів нормалей Метод передбачає нормалізацію всіх векторів нормалей у рядку растеризації, хоча й за спрощеною процедурою. Згідно підходу Ліона [1] вираз NN rr ×/1 , який використовується для нормалі- зації вектора нормалі N r , розкладають у ряд Тейлора та беруть перші три члени. Обмежена кількість членів ряду Тейлора не дозволяє з достатньою точністю ви- конати нормалізацію векторів нормалей. Одиничні вектори нормалей можна отримати, виконуючи сферично-кутову інтерполяцію між початковим та кінцевим векторами нормалі в рядку растериза- ції за формулою [6]: )1(cos)(2)1( --=+ tNtNtN rrr j , де )1(),( -tNtN rr — вектори нормалей у двох попередніх точках рядка растериза- ції; lш/=j ; l — довжина рядка растеризації. Недолік методу полягає в необхід- ності обчислення для кожного рядка растеризації функції арккосинуса згідно з формулою: )arccos( ba NNш rr ×= . О. Н. Романюк, О. М. Мельников 14 Мета статті — спрощення процедури зафарбовування тривимірних графічних об’єктів за рахунок адаптивного виконання нормалізації векторів нормалей тільки для тих випадків, коли вона суттєво впливає на точність визначення інтен- сивності кольору. Адаптивна нормалізація векторів нормалей Знайдемо відстань 2/1d , враховуючи, що 1== ba NN rr : 2 1 2 )cos1(2 1 2 cos11 2 cos1 )2 1( )2/1( z d -= + -= + -=-= yyy . Оскільки вектор )2/1(N нормовано, тоді: . 2 2 1 2 )cos1(22 1 2 2 cos122 1 2 2 cos1 1 4 cos1 )2/1( )4/1( z d + -= ++ -= = + + -= + -=-= y yy y У загальному випадку: 2 2 1 2 2 cos1 1 2 cos1 )2/1( 1)2/1( 1 i i z d i i + -= + -=-= ++ y y . (2) З останнього виразу видно, що чисельник його другого члена співпадає зі знаменником формули (1), що обумовлює простоту розрахунку нев’язки d при ви- значені векторів нормалей. Максимальне значення серед усіх можливих )2/1( nd буде мати місце для )2/1(d за умови, що 0cos ®y . У цьому випадку 293,0max )2/1( =d . По значенню нев’язки залежно від необхідної точності розрахунку дифузної й спекулярної складової кольору можливо прийняття рішення про призупинення трудомісткої процедури нормалізації і визначення векторів нормалей шляхом лі- нійного інтерполювання . Знайдемо формулу для розрахунку )2/1( id через його попереднє значення: iid 2 cos1 )2/1( y -= . Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору ISSN 1560-9189 Реєстрація, зберігання і обробка даних, 2006, Т. 8, № 3 15 Звідси: )2/1( 1 2 cos ii d-= y . Знайдемо відстань: 2 11 2 11 1 2 2 cos1 1 2 cos1 )2/1()2/1( 1)2/1( 1 ii i dd d i i --= -+ -= + -=-= ++ y y . Знайдемо відношення 1 )2/1( )2/1( 2 cos1 2 cos1 1 +- - = + i i i i d d y y і розкладемо його у ряд Тейлора. Отримаємо: )( 1474560 1 3072 1 16 14 8642 )2/1( )2/1( 1 xO d d i i +-+-= + yyy . Таким чином, 4 )2/1( )2/1( 1 » +i i d d , причому залишковий член не може бути більшим 16/2y- , оскільки, починаючи із другого члена, має місце знакозмінний ряд, який задовольняє умові теореми Лейбніца. Графік залежності відношення нев’язок на сусідніх ітераціях від значення кута між векторами зображено на рис. 2 Рис. 2. Графік залежності )2/1( )2/1( 1+i i d d від кутаy О. Н. Романюк, О. М. Мельников 16 З наведеного на рис. 2 графіка можна зробити висновок, що з кожною ітера- цією відхилення вектора, який отримано шляхом додавання векторів у кінцевих точках сегмента, від його нормованого значення зменшується від 3,4 до 4 разів. Знайдемо максимальну відносну похибку при розрахунку дифузної та спеку- лярної складової кольору у випадку призупинення нормалізації векторів нормалей на виділеному сегменті рядка растеризації. З рис. 1 видно, що максимальне зна- чення абсолютної похибки у випадку, коли нормалізований вектор нормалі замі- нено на суму нормалізованих векторів нормалей, буде мати місце для вектора, який розміщено в середній точці сегмента. Нормалізований вектор нормалі знай- демо за формулою: . 2 )2/1( ) 2 1( ) 2 1( 1 n n n z NN N A + + = + rr r Ненормалізований вектор нормалі ) 2 1( 1+n N r можна отримати додаванням век- торів нормалі, n NN A 2 1, rr відповідно у початковій і кінцевій точках сегмента рядка растеризації з подальшим діленням отриманого вектора на 2. Максимальна відносна похибка при визначені дифузної складової кольору дорівнює: 2 1 ) 2 ( max ) 2 1( ) 2 1( ) 2 1( ) 2 1( ) 2 1( ) 2 1( n n n n n n z z NN Lk NN z NN Lk A d AA d d -= + + - + = rr r rrrr r d . Останній вираз легко отримати через відстань id . Дійсно, id є абсолютною похибкою при заміні нормалізованого вектора на суму векторів, які симетрично розміщені відносно нього. Оскільки нормалізований вектор має одиничну довжи- ну, то id є одночасно й відносною похибкою. З рис. 3 видно, що максимальна похибка в 4 % має місце при y = 32°, а в 1 % при 16°, що підтверджує доцільність підходу. Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору ISSN 1560-9189 Реєстрація, зберігання і обробка даних, 2006, Т. 8, № 3 17 Рис. 3. Залежність ddmax від ш У випадку визначення спекулярної складової кольору в потоковій точці зна- ходять n-степінь добутку вектора нормалі на вектор H r , тому для цього випадку: n n n n A s A s n A s s n n n n n n z z NN Hk NN Hk z NN Hk 2 1 2 max ) 2 1( ) 2 1( ) 2 1( ) 2 1( ) 2 1( ) 2 1( -= ú ú ú û ù ê ê ê ë é + ú ú ú û ù ê ê ê ë é + - ú ú ú û ù ê ê ê ë é + = rr r rr r rr r d . Розкладемо отриманий вираз у ряд Тейлора та обмежимося двома членами. Отримаємо: , 2 cos 2 )2( 2 )2(1max h d × --= n n n n n s де hcos — кут між початковим і кінцевим векторами виділеного сегмента. Враховуючи, що об’єкт, як правило, виготовлено з одного матеріалу, то кое- фіцієнт спекулярності буде сталим до всього об’єкта. У зв’язку з цим можливо по значенню максимальної допустимої відносної похибки визначення спекулярної складової кольору знайти максимальне значення косинуса кута між векторами в початковій та кінцевій точках сегмента, починаючи з якого можна не виконувати нормалізацію: n n s 2 ))cos1(2( 1max c d + -£ . О. Н. Романюк, О. М. Мельников 18 З останнього виразу знаходимо: 1)1(max2cos 2 -+³ n sdc . При послідовному поділі рядка растеризації розраховані вектори нормалей можуть не лежати в точках координатної решітки. Цього можна уникнути, якщо збільшити розмір рядка растеризації до найближчої степені двійки й довизначити нормалізований вектор нормалі в новій кінцевій точці. У подальшому при поділі навпіл такого рядка растеризації всі його сегменти будуть кратні степені двійки. Слід зазначити, що при зафарбовуванні необхідно оперувати тільки з тими точка- ми сегментів, які належать реальному рядку растеризації. Для знаходження нор- малізованого вектора нормалі, який розміщено у кінцевій точці нового рядка, не- обхідно нормалізувати вектор kab m NN 2× - rr , де m — довжина реального рядка растеризації, k2 — довжина довизначеного рядка растеризації. У подальшому при визначені дифузної складової кольору виконують такі дії. Послідовно знаходять за формулою (1) вектори нормалей у граничних точках сегментів. Для цього знаходять операнд )2/1( 2 nz+ . За формулою (2) знаходять максимальну похибку, яка буде мати місце за умови, що потоковий вектор не бу- де нормалізовано, і порівнюють її з допустимою. У випадку, коли похибка буде меншою, то знаходять різницю між кінцевим gN r і початковим pN r векторами по- токового сегмента і ділять його шляхом зсуву на n k 2 2 , тобто знаходять k pg n NN N 2 2 )( rr r - =D . Усі проміжні вектори нормалей знаходять без нормалізації за формулою: NiNN pi rrr D×+= . Враховуючи, що з кожною ітерацією максимальне відхилення ненормалізо- ваного вектора від одиничного зменшується не менше ніж у 3,4 рази, то легко знайти інтервали, де нормалізацію вектора можна не виконувати. При визначені спекулярної складової кольору виконують ті ж самі дії, однак визначають і порівнюють уже максимальну похибку sd . Приклад зафарбовування тривимірної графічної фігури з використанням ада- птивної нормалізації зображено на рис. 4. Адаптивна нормалізація векторів нормалей при визначенні дифузної та спекулярної складової кольору ISSN 1560-9189 Реєстрація, зберігання і обробка даних, 2006, Т. 8, № 3 19 Рис. 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 УДК 681.3.06 УДК 681.3.06 Вступ