Научная статья на тему 'Повышение реалистичности закраски трехмерных графических объектов'

Повышение реалистичности закраски трехмерных графических объектов Текст научной статьи по специальности «Прочие технологии»

CC BY
34
12
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
ЗАКРАСКА ФОНГА / РАСТЕРИЗАЦИЯ ПОЛИГОНОВ / PHONG SHADING / RASTERIZATION OF POLYGONS

Аннотация научной статьи по прочим технологиям, автор научной работы — Романюк А.Н., Дудник А.А.

Предложен метод повышения реалистичности закраски трехмерных объектов методом Фонга с учетом положення наблбдателя. Метод позволяет более точно определять интенсивность цветов пикселей на экране.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

IMPROVING REALISTIC OF THRE-DIMENSIONAL GRAPHICAL OBJECTS SHADING

A method for improving the quality of three-dimensional objects by Phong shading based in perspective. The method allows to determine more accurately the intensity of the colors of pixels on the screen.

Текст научной работы на тему «Повышение реалистичности закраски трехмерных графических объектов»

УДК 004.925.4

ОН. РОМАНЮК, О.О. ДУДНИК

Вшницький нацюнальний техшчний ушверситет

П1ДВИЩЕННЯ РЕАЛ1СТИЧНОСТ1 ЗАФАРБОВУВАННЯ ТРИВИМ1РНИХ

ГРАФ1ЧНИХ ОБ'СКТЮ

Запропоновано метод пгдвищення реалгстичностг зафарбовування тривимгрних об 'ектгв методом Фонга з урахуванням положення спостерггача. Метод дозволяе бшьш точно визначати ттенсивнгсть кольор1в пгксел1в на екрат.

Ключовi слова: зафарбовування Фонга , пастеризацгя полгготв

А.Н. РОМАНЮК, А.А. ДУДНИК

Винницкий национальный технический университет

ПОВЫШЕНИЕ РЕАЛИСТИЧНОСТИ ЗАКРАСКИ ТРЕХМЕРНЫХ ГРАФИЧЕСКИХ ОБЪЕКТОВ

Предложен метод повышения реалистичности закраски трехмерных объектов методом Фонга с учетом положення наблбдателя. Метод позволяет более точно определять интенсивность цветов пикселей на экране.

Ключевые слова: закраска Фонга, растеризация полигонов

O.N. ROMANIUK, O.O. DUDNYK

Vinnytsia National Technical University

IMPROVING REALISTIC OF THRE-DIMENSIONAL GRAPHICAL OBJECTS SHADING

A method for improving the quality of three-dimensional objects by Phong shading based in perspective. The method allows to determine more accurately the intensity of the colors ofpixels on the screen.

Keywords: Phong shading, rasterization of polygons

Постановка проблеми

Формування високореалютичних зображень е актуальною задачею комп'ютерно! граф1ки, оскшьки стр1мкий розвиток обчислювально! техшки пвдвищуе вимоги до точного вщтворення об'ектш реального свггу [1]. При цьому важлива передача як конструктивних , так i в1зуальних особливостей об'екту.

Процедуру зафарбовування проводять в площиш екрану. Тобто, фактично, зафарбовують не дшянку, обмежену пол^оном у простора а !! проекцiю на екран. У такому випадку не враховуеться форма проекци пiкселя на текстурну площину. Геометричнi характеристики проекци полiгону iстотно вiдрiзняються ввд орипнальних, що призводить до неточностей при визначенш iнтенсивностi кольорiв пiкселiв. Тому iснуючi методи зафарбовування не забезпечують коректне ввдтворення кольорiв при зафарбовуванш тривимiрних графiчних об'ектiв.

Аналiз методiв i постановка задачi

До найпоширешших методiв зафарбовування вiдносять метод Гуро [1, 2], який забезпечуе прийнятний компромiс м1ж швидкодiею формування тривимiрних зображень та !х якiстю. Процес зафарбовування мае таю стади [1]: а) розраховують вектори нормалей до кожно! гранi; б) шляхом усереднення нормалей усiх граней, яким належить вершина, розраховують нормалi у вершинах трикутника (багатокутника); с) визначають штенсивносл кольору у вершинах багатокутника, використовуючи значення нормалей; д) зафарбовують дшянку, обмежену багатокутником, шляхом лшшно! штерполяцп iнтенсивностей кольору вздовж ребер, а попм i мiж ребрами вздовж кожного рядка растеризаци. Oстаннiм часом затшення за Гуро часто використовують як промiжну стадш з штерактивного формування 3D-зображення, покладаючи побудову повноцшно! сцени на етап фшального рендерингу.

На сучасному етапi розвитку комп'ютерно! графши гостро сто!ть питання про пiдвищення реалiстичностi вiдтворення 3D-зображень [1-4]. У зв'язку з цим мае мюце тенденцiя використання бшьш складних моделей освiтлення та методiв зафарбовування. Хоча метод Гуро й продовжуе широко використовуватися для формування тривимiрних зображень у реальному чай, однак бiльш перспективним вважаеться метод Фонга [1, 3], у якому зашсть значень iнтенсивностi кольору штерполюються вектори нормалей, якi потiм використовуються у функцп тонування для обчислення iнтенсивностi кольору кожного елемента зображення. Метод характеризуеться, порiвняно з методом Гуро, значно бшьшими обчислювальними витратами, однак при цьому досягаеться краща локальна апроксимацiя кривизни поверхнi i, як наслвдок, отримують бiльш реалютичш зображення.

У методi зафарбовування Фонга для кожно! точки поверхш необхвдно обчислити вектор нормалi N до поверхш, вектор напрямку джерела свила Ь , вектор спостерiгача V , серединний вектор

- ь+V - - - -

Н = ——— , знайти скалярнi добутки N • Н, N • Ь i обчислити iнтенсивнiсть кольору згiдно функци Ь + V

тонування [1,2]:

I = 1а • ка + ¡(к, • N • ь+кг • ^ • Н)п), (1)

де какй,к:! - ввдповщно коефщенти розсiяного, спекулярного та дифузного вщбиття, ¡а, ¡1 -

iнтенсивностi вщповщно розсiяного i направленого джерел свила

На рис. 1 зображено проекцш пiкселя на дiлянку поверхнi в об'ектнш системi координат. У цьому випадку, залежно ввд точки спостереження, проекцieю пiкселя е витягнутий елшс (рис. 1). Тому iнтенсивнiсть кольору на екраш залежить не вщ одше!, а ввдразу ввд шлькох точок поверхнi в об'ектнiй система Для коректного визначення iнтенсивностi кольору ткселя на екранi необхiдно визначити кольори усiх точок , обмежених елшсом, i усереднити отриманi значения

Метою стати е шдвищення реалютичносл формування графiчних зображень за рахунок реатзаци ашзотропного зафарбовування.

Рис. 2 Проекщя п1кселя на поверхню в об'ектнш систем! координат

Розробка методу пщвищення реалiстичностi зафарбовування

Визначити вектор нормалi у довiльнiй точцi полггону, заданого трикутником, по значенням векторiв у його вершинах можна за формулою [5]:

N(с,с2,с3) = Й1с1 (2с,-1) + Ы2с2 (2с2-1) + 4

N + N

у} 2 (1 + N • N2 )

С1С2 +

+ N.с3 (2с3-1) + 4 ! / 2 - 3 - ч с2с3 + 4 ! , - 1 - ч с3с1.

(1 + N2 • N.) 2 3 (1 + N. • N1)

(2)

де М1,Ы2,М3 - значення векторiв у вершинах полiгону, с1з с 2, с3 - барицентричш координати точки. Прискорене визначення барицентричних координат виконують за формулами

С1 =,

С ( 2 2 2 )2 ^

2 2 \а12 + а02 — а01 / а2 а2 ---—

12 02 .

У

Т , С2 =

С ( 2 2 2 у ^

2 2 \а2Э + а0В - а 02 /

а2 а2 - --—

2Э 0Э ,

V

С3 =,

С ( 2 2 2 \2 ^

2 2 \а31 + а 01- а0з) а32а 01 \

V У

де а01 - а32- розмiри вiдповiдних сторiн трикутник1в, утворених з'еднанням вершин полiгону та точки С(с1,с2,с3) (рис. 2).

Рис. 2 Розбиття вихвдного трикутника на склaдовi

Kpiм того вaжливo вpaxyвaти мoжливий випaдoк, шли чacтинa пpoекцiï пiкcеля в плoщинy пoлiгoнy виxoдить за йoгo меж! В тaкoмy випaдкy cлiд вpaxoвyвaти лише тi пiкcелi, щo знaxoдятьcя в cеpединi пoлiгoнy. Тoмy неoбxiднo визначити yмoвy нaлежнocтi пiкcеля пoлiгoнy. Ocкiльки cyмa бapицентpичниx кoopдинaт для точки дopiвнюe oдиницi, тo для тoчoк, щo лежать за межами пoлiгoнy викoнyeтьcя piвнicть:

c1 + c2 + c3 > 1

(3)

Для ycyнення cитyaцiï, шли чacтинa елiпcy виxoдить за межi пoлiгoнy, збiльшимo poзмip тpикyтникa. Для ^oro кoжнy iз cтopiн тpикyтникa збiльшимo вдвiчi в нaпpямкy pyxy гoдинникoвoï cтpiлки (pиc 3). В пoдaльшoмy yci дй' в плoщинi пoлiгoнy бyдемo викoнyвaти над швим збiльшеним тpикyтникoм.

Рис 3. Розширення площi iнтeрполяцiï вeкторiв

Визнaчимo кoopдинaти веpшин нoвoгo тpикyтникa. Koopдинaти веpшин B мoжнa визначити за фopмyлaми

BX = Bx + Bx - Ax,

By = By + By - Ay .

B' = B + B - A,.

(4)

У вектopнoмy виглядi фopмyлa (4) мае вигляд:

B = B + AB

Koopдинaти тoчoк A , C вт^чают^я aнaлoгiчнo:

A = A + CA,

C = C+BC.

Визначимо вектори нормалей у вершинах нового трикутника. Для цього використаемо формулу [1] визначення вектору нормал N12 у середнш точцi в;^зка прямой за умови, що вiдомi вектори нормалей

N1 ,N2 у його крайшх точках

Ni+N2

N12 =

+ cos у/¡2) З останньо1 формули знаходимо, що

N2 = N12--sj2(1 + cos у¡2 ) - N1 .

З урахуванням останньо1 формули легко знайти вектори нормалей у вершинах модифжованого трикутника

N А = N, ^ 2(1 + cos у) - Nc = N a V 2(1 + cos2y ),

NB = N в ^ 2(1 + cos у) - Nc = N в-y/2(1 + cos2y ), (5)

Nc. = Nc ^ 2(1 + cos увС ) - Nc = N в -у/2(1 + cos 2уВс ),

де Na , NB, Nc - вектори нормалей у вершинах вихвдного трикутника; Na. , NB., Nc, - вектори нормалей у

вершинах збiльшеного трикутника.

Якщо кут мiж векторами нормалей збшьшеного трикутника перевищуе 90 , то вихщний трикутник потребуе виконання додатково1 трiангуляцiï.

Таким чином, для визначення значення кольору ткселя та екраш, необхщно: виконати перетворення пол1гону в просторi об'екта за формулами (4); визначити вектори нормалей у вершинах нового пол^ону за формулами (5); виконати зворотну проекцш пiкселя в площину полiгону; для всiх пiкселiв, що формують проекцiю, крiм тих, що задовольняють нерiвнiсть (3), визначають колiр за методом Фонга. При цьому вектори нормалей у дов№нш точцi визначають за формулою (2).

Висновки

Запропоновано метод пiдвищення реалютичносп зафарбовування тривимiрних об'ектiв за методом Фонга з урахуванням положення спостертача. Метод дозволяе бiльш точно визначати штенсившсть кольорiв пiкселiв на екраш.

Перелж використаиоТ лiтератури

1. Романюк О. Н. Високопродуктивнi методи та засоби зафарбовування тривимiрних графiчних об'екпв. Монографiя. / О. Н. Романюк, А. В. Чорний. — Вшниця : УШВЕСУМ-Вшниця, 2006. — 190 с.

2. Романюк О. Н. Новий шдхщ до шдвищення реалютичносп зафарбовування тривимiрних об'ектiв за методом Гуро / О. Н. Романюк // 1нформацшш технологи та комп'ютерна iнженерiя. — 2005. — № 2. — С. 106—109.

3. Романюк О. Н. Новий шдхщ до реалiзацiï процедури зафарбовування за методом Фонга / О. Н. Романюк, А. В. Чорний // Вюник Херсонського державного техшчного ушверситету. — 2003. — Вип. 22. — С. 154— 160.

4. Романюк О. Н. Метод шдвищення реалютичносп вщтворення тривимiрних графiчних об'екпв / О. Н. Романюк // 1нформацшш технологи та комп'ютерна iнженерiя. — 2007. — № 1 (8). — С. 192— 196.

5. Романюк О. В. Використання барицентричних координат для розрахунку векторiв у довшьнш точцi трикутника / О. В. Романюк, В. В. Войтко // Вимiрювальна та обчислювальна техшка в технологiчних процесах. - 2009. - № 1. - С. 198-202.

i Надоели баннеры? Вы всегда можете отключить рекламу.