УДК 004.925
О. Н. Романюк, М. Д. Общник МЕТОДИ ДОДАТКОВО1 ТР1АНГУЛЯЦ11
Постановка проблеми. У сучасних системах синтезу реалютичних зображень необхщно забезпечити високу якють передачi вах властивостей об'екта моделювання: об'eмнiсть, мюце розташування, передачу напiвтонiв, тiней, осв^лення та текстури поверхнi. При цьому, чим вище ступiнь реалiстичностi зображення, тим бшьше потрiбно обчислень для його формування. Генеращя об'емних зображень - складна обчислювальна задача, у зв'язку з цим на практищ виконують 11 декомпозицiю. Складнi зображення формують з фрагментiв об'eктiв, для чого 1х розбивають на складовi частини. Процес розбиття поверхнi об'екпв на полiгони отримав назву тесселяцп. [1]. Найпоширенiшим видом теселяцп е трiангуляцiя - розбиття на трикутники, оскшьки цей процес найпростiший i мае ряд переваг над поданням мережi iншими формами полiгонiв. Деталiзацiя об'ектiв, яка визначаеться щiльнiстю трiангуляцiйноi мережi, повинна бути достатньою для адекватного вщтворення всiх особливостей об'екту.
Анал1з публ1кац1й за темою дослщжень. 1снують методи, що дозволяють проводити трiангуляцiю у об'ектному просторi сцени (до передачi 11 у графiчний конвеер), однак це призводить до збшьшення обсягу даних, що передаються по шинi. Тому бiльш доцшьною е розробка нових методiв, за якими додаткова трiангуляцiя проводиться вже тд час обробки вiртуальноi сцени 3D-прискорювачем.
Технологiя ТгиБогш [2] виконуе додаткову трiангуляцiю, використовуючи кубiчнi патчi Безье. Вона дозволяе пiдвищити реалютичшсть 3D-зображень i не вимагае модифшацп пiдсистеми рендерингу вiдеокарти. ТгиБогш включае в себе етап передачi пол^онально! шформацп зi сцени на 3Б-акселератор, етап внутрiшнього перетворення трикутникiв у кривi поверхнi, а також створення нових трикутниюв за допомогою визначення контрольних точок (рис. 1). Гтерацп розбиття на ствставш трикутники виконуються для кожного полiгона у сцеш.
Геометрiя кубiчноi поверхнi розраховуеться за такими формулами:
Ь: Я^Я 3
^ 3! 'к 3 3 3 2
Ь у+к=3ЬЧк^]\ки1у]™ =Ь300^ +Ь030и +Ь003^ +Ь2103^ и+
2,1 ^,...2
+ЬХ203^П +Ь2013^ У+Ь0213М У+Ью23^У +Ь^123ПУ +Ьщ6^иУ,
де - параметри кубiчного сплайна Безье, значення яких >0, w=1—u—v;
Ьук - геометричш коефiцiенти або контрольш точки; Ь300, Ь030, Ь003 - коефщенти вершин;
Ь210' Ь120' Ь021 Ь012' Ь102' Ь201 - Дотичнi коефiЦiенти; Ьш - центральний коефщент.
Недолiком технологи е те, що вона дозволяе згладити тшьки цшком всю сцену. При цьому необхщно виконати великий обсяг складних математичних розрахунюв, що пов'язано з побудовою складно'].' кубiчноi поверхнi. Також вона може спричинити появу вiзуальних артефак^в у мiсцях зi значними геометричними нерiвностями.
b300
Рис. 1. Побудоваш контрольш точки технологи TruForm
Технология Phong Tessellation [3] передбачае додаткову теселящю для формування вигнутих контурiв, обраховуючи тiльки позици вершин пол^онально! мережi та нормалi в них. У розрахунках використовуються барицентричнi координати та квадратичш патчi для вщновлення поверхнi. Технологiя реалiзуеться у три етапи:
1) розраховуеться лшшна тесселящя [3];
2) середня результуюча точка проектуеться на дотичш площини, що проходять через вершини трикутника;
3) обчислюеться барицентрична iнтерполяцiя цих трьох проекцш.
Яюсть результуючого зображення значно покращуеться порiвняно з технологiею TruForm, проте технологи Phong Tessellation притаманш деякi недолiки. По-перше, для ii реалiзацii необхiдно виконати значно бшьший обсяг обчислень, порiвняно з технолопею Phong Shading, яка вважаеться високотрудомюткою. По-друге, аналогiчно до технологи TruForm, технология Phong Tessellation застосовуеться для кожного об'екта сцени, що передбачае додата^ розрахунки для об'екпв, яю займають невелику площу на екраш користувача.
Ще один метод додатково'1' трiангуляцii описано у [4]. Вш полягае у визначеннi точок, що мають найбiльше значення iнтенсивностi кольору на кожному з ребер трикутника.
Даний метод додатково'1 трiангуляцii оперуе з штенсивностями кольору, тому найбiльш прийнятний для зафарбовування за методом Гуро. Зафарбовування за Фонгом, у такому випадку, вимагае довизначення нормалей у контрольних точках.
Постановка задачь Задачею даного дослщження е розбиття вихщного трикутника на складовi з метою тдвищення деталiзацii i подальшого використання спрощених розрахункiв iз застосуванням апроксимацшних формул. Бажано, щоб утворенi трикутники мали однакову площу, що дасть можливють збалансовано завантажити шейдерш процесори.
Розробка метод1в додатково'1 тр1ангуляцн.
Розробимо рiзнi методи додатковох трiангуляцii. Найкраще вирiшуе задачу розбиття на трикутники, що мають однакову площу, медiанний перетин, оскшьки вiн мае таю властивосп:
- медiани трикутника перетинаються в однiй точцi, яка називаеться його
середньою точкою, i дшяться нею на двi частини у вщношенш 2:1, рахуючи вiд вершини [5];
- трикутник дшиться трьома медiанами на шiсть рiвновеликих трикутниюв [5].
Вiдомо, що точка перетину медiан трикутника (центрощ) розраховуеться за
формулами:
x=
У=
xa + xb + xc
3 :
Уа + УЬ + Ус 3
(1)
де (xa, ya ), (Хь, Уь ), (xc, yc ) - координати вiдповiдних вершин трикутника.
Знайдемо нормаль у середнш точцi, використовуючи принцип штерполяцп нормалей у трикутнику. На рис. 2 зображено трикутник ABC . Точки Mab, Мас, Мьс -середини ребер AB, AC, BC вщповщно. Точка O - точка перетину медiан трикутника ABC . Вектори Na, Nb, Nc, NU, No - вiдповiдно нормалi в точках A, B, C,Mab, O.
Рис. 2. Розрахунок нормалi в середнш точщ
Нормаль Nu можна розрахувати так:
Na + Nb
Nu =
2
(2)
Враховуючи властивють медiанного подiлу, що середня точка дшить медiану у вщношенш 2:1, рахуючи вiд вершини, а також те, що вектори лшшно штерполюються, можна записати, що
No =
2 Nu + Nc 3
(3)
Поставивши формулу (2) у формулу (3), отримуемо
2-
fNa +
+N
No=-
3
Na + Nb + Nc 3
(4)
Вирази (1) i (4) дають змогу розбити трикутник ABC (рис. 2) на 3 складових трикутника AOB, AOC, BOC, яю мають однакову площу (це випливае з властивосп медiанного перетину).
Нормаль, розрахована за формулою (4), мае не одиничний розмiр, що передбачае виконання операцп нормалiзацii для подальших розрахунюв. Тому дощльно визначити саме нормалiзований вектор у точщ перетину медiан. У [6] виведено формулу для знаходження нормалiзованого вектора у будь-якш точцi трикутника з використанням його барицентричних координат:
2
—* —* О —* О —* О
Nо №л,тв, тс)=Ыл • тл + Ыв • тв + Ыс • тс + (4Ыц -Ыл - Ыв Утл •тв +
+ (4Ыу -Ыв - Ыс )-тв •тс + (4NW -Ыс - Ыл )-тс •тл, (5)
де Иц, Иу, NW - нормалi в центрах сторш Лв, вс, сл вiдповiдно, а тл ,тв, тс визначаються за формулами:
^(всО) S(CЛO) s(лво)
тл =-, т™ =-, тг =-.
л S(ЛBC) в S(ЛBC) с S(ЛBC)
Застосуемо формулу (5) для точки медiанного перетину. При цьому тл = тв = тс =1/3, оскшьки площi сегментсв, на якi розбиваеться вихщний трикутник, рiвнi. Пiдставивши щ значення у формулу (5), отримаемо:
—* I —* I —* I —* I —* —* —* I —* —* —* I —* —* —*
Ио = 7 • Ил +1 • Ив+1 • Ис+1 -(4Иц - Ил - Ив)+--(4Иу - Ив - Ис)+-■(4Nw - Ис - Ил)= 6 6 6 6 6 6
1 - 1 - 1 - 4 - 4 - 4 -
=---Nа---Ив---Ис +-•Ыц +-• Иу +-• Nw ,
6 Л 6 в 6 с 6 и 6 У 6 W
тобто
ИО =-7•(Ыл+Nв+Nс +4^ Ыц + 4-Иу + 4^ Nw). (6)
6
Формула (6) передбачае розрахунок нормалей у середшх точках сторш трикутника Иц, Иу, Nw. За участю авторiв виведено формулу для визначення нормалiзованого вектора у середнш точцi ребра трикутника [4]:
N + N
= , 1 -2- , (7)
+2 ЫГЫ2
де N1, N2 - вектори у кшцевих точках ребра.
З використанням полiномiв Чебишева отримано таку формулу для спрощеного розрахунку, яка не використовуе трудомютю операцп дiлення та визначення квадратного кореня [4]:
И, = (N1 + N 2) •(а• Ы■ N 2)2 + Ь-Ы■ N 2) + с);
де а = (0,103), Ь = (- 0,306) та с = (0,705).
Для розрахунку додатково'1' трiангуляцii необхщно довизначити нормалi Иц, Иу, Nw у вiдповiдних точках Маь,Мьс,Мса за формулою (7). Таким чином, трикутник Лвс розбиваеться на 3 (ЛОв, ЛОс, вос) або на 6 (ЛОМас,МасОс, сОМЬс,МЬсОв, вОМаЬ,МаЬОЛ) складових, що мають рiвну площу (рис. 3. а), б)).
а) б)
Рис. 3. Розбиття трикутника на складовi методом медiанного перетину
Розглянемо ще один метод додатково'1 трiангулящi, що базуеться на дшенш трикутника в середнiх точках ребер (рис. 4). Доведемо, що МаЬМас = СМЪс = МЪсВ.
Кожна з точок Мас,Мъс,Маъ дшить вщповщне ребро трикутника навпш. Тому
вiдрiзок МасМаъ е середньою лЫею трикутника. За теоремою про середню лiнiю
трикутника МасМаЪ || ВС , а також МаЪМас = СМЪс = МЪсВ. Аналогично можна
показати Щ° МаЪ МЪс = АМас =МасС та МасМЪс = АМаЪ = МаЪВ . УтвореШ трикут-
ники рiвнi мiж собою, оскiльки рiвнi ']!хш сторони (рис. 4).
с В
Рис. 4.
Розробленi вар1анти розбиття трикутника можна застосувати для додатково'' трiангyлящi. Така процедура включае в себе визначення додаткових точок на вихщному трикутнику, розрахунок векторiв у них, а також ix нормалiзацiю. Вона дозволяе вирiшити задачу декомпозицп безпосередньо у 3D-акселераторi, що значно скорочуе обсяг даних, що передаються по шиш. За рахунок того, що трикутники, отримаш в результат тако'1 додатково'1 трiангулящi, мають однакову площу, досягаеться збалансоване завантаження шейдерних процесорiв.
Для визначення кшькосп iтерацiй додатково'1 трiангулящi можна ввести критерш розмiру кiнцевого полiгона на екраш комп'ютера. З використанням розроблених методiв можна розбити всю вихщну сцену на трикутники приблизно однакового розмiру за рахунок декiлькоx ^ерацш додатково'1' трiангуляцii. Перевагою такого розбиття е те, що об'екти, яю знаходяться близько до спостер^ача будуть трiангулюватись детально, а тi, що знаходяться далеко i не займають багато мiсця на екранi, - додатково розбиватись не будуть. Основними перевагами запропонованих методiв додатково'' трiангуляцii е простота реалiзацii та значно менша кiлькiсть обчислень у порiвняннi з теxнологiями TruForm та Phong Tessellation.
Висновки. У статп розроблено методи додатково'1 трiангулящï для задачi зафарбовування. Розглянут pi3Hi варiанти розбиття трикутника на складовi сегменти, що мають однакову площу.
Запропонованi процедури розбиття трикутника на складовi частини дозволяють у подальшому використовувати простiшi з обчислювально'' точки зору вирази, а також реалiзацiю ïx апаратними блоками.
Л1ТЕРАТУРА:
1. Романюк А. Алгоритмы триангуляции / А. Романюк, А. Сторчак // "Комиздат" 2004 г. Режим доступу:
http://citforum.univ.kiev.ua/programming/theory/alg_triangl/index.shtml
2. Vlacho A. Curved PN Triangles / A. Vlachos, J. Peters, C. Boyd, J. L. Mitchell // ATI Research, Microsoft Corporation, University of Florida. Режим доступу: http://developer.amd.com/media/gpu_assets/CurvedPNTriangles.pdf
3. Boubekeur T. Phong Tessellation / T. Boubekeur, M. Alexa // ACM Transactions on Graphics (SIGGRAPH Asia 2008 Proceedings).: TU Berlin. Режим доступу: http://perso.telecom-paristech.fr/~boubek/papers/PhongTessellation/PhongTessellation.pdf
4. Романюк О. Н. Високопродуктивш методи та засоби зафарбовування тривимiрниx графiчниx об'ек^в. Монографiя. / О. Н. Романюк, А. В. Чорний. -Вшниця : УНШЕСУМ-Вшниця, 2006. - 190 с.
5. Мантуров О. В. Математика в понятиях, определениях и терминах: В 2-х ч.:Ч.2/ О. В Мантуров, Ю. К. Солнцев, Ю. И. Сорокин, Н. Г. Федин. — К.: Рад. шк., 1986. — 360 с.
6. Костюк Ю. Л. Визуально гладкая аппроксимация однозначной поверхности, заданной нерегулярным набором точек / Ю. Л. Костюк, А. Л. Фукс // Геоинформатика-2000: Труды межд. научно-практ. конф. -Томск: Изд-во Томск, ун-та, 2000. - С. 41-45.
РОМАНЮК Олександр Никифорович - д.т.н., професор кафедри програмного забезпечення, перший проректор Вшницького нащонального техшчного ушверситету. Науковi штереси:
- Комп'ютерна графка.
ОБ1ДНИК Микола Дем'янович - астрант кафедри програмного забезпечення. Науковi штереси:
- Комп'ютерна графка.