NURBS повърхнини

Download Report

Transcript NURBS повърхнини

СПЕЦИАЛИЗИРАН НАУЧЕН СЪВЕТ ПО ИНФОРМАТИКА И
МАТЕМАТИЧЕСКО МОДЕЛИРАНЕ ПРИ ВАК
Емилиян Г. Петков
Изследване и развитие
на моделите на криви и повърхнини
в компютърната графика
ДИСЕРТАЦИЯ
за присъждане на образователната и научна степен
,,Доктор”
по научната специалност 01.01.12 ,,Информатика”
Научен консултант:
доц. д-р Любен И. Цеков
Обект на изследването
 Тримерни (3D) графични системи (ГС).
 Геометрично моделиране (ГМ).
 Графични примитиви и инструменти за
моделиране в 3D ГС.
 Развитие на 3D ГС в областта синтез на
изображения.
Обект на изследването са моделите на криви
и повърхнини в КГ и методите и
алгоритмите за моделиране чрез тях на
графични обекти в 3D ГС.
Модели на криви и повърхнини в съвременните ГС:
Bezier, Spline, B-spline, NURBS (Non-Uniform Rational B-Spline).
2
Цел и задачи
Задачи:
Цел: Изследване и развитие на моделите на кривите и
повърхнините от втора степен в ГМ, които да служат
за разработване на графични инструменти за
интерактивен дизайн.
Да се разработят NURBS модели за интерактивно и в реално време моделиране на:
1. Кривите, които се задават с едно общо уравнение от втора степен: елипса,
хипербола и парабола;
2. Повърхнините, които се задават с едно общо уравнение от втора степен:
елипсоид, елиптичен параболоид, прост хиперболоид, двоен хиперболоид, конус,
хиперболичен параболоид, елиптичен цилиндър, параболичен цилиндър и
хиперболичен цилиндър.
3. Да се изследват възможностите на 3D ГС за разширяване на графичния им
инструментариум и да се разработят и внедрят нови графични инструменти,
които работят на базата на предложените NURBS модели на криви и
повърхнини, в 3D ГС за моделиране.
3
NURBS криви
NURBS крива c от степен p се дефинира с векторното уравнение
Ni , p (t ) wi
n
c : r   (t )   Ri , p (t ) Pi , t  0,1 , където Ri , p (t ) 
i 0
n
N
j 0
ti  p1  t
t  ti
Ni , p (t ) 
Ni , p 1 (t ) 
Ni 1, p 1 (t ),
ti  p  ti
ti  p 1  ti 1
j, p
и
(t ) w j
1 ti  t  ti 1
Ni ,0 (t )  
.
0
t

t
,
t


i i 1

Ni , p са B-сплайн функции от степен p дефинирани
върху неравномерен възлов вектор:


T  0, ,0, t p1 ,

 p 1


, tm p1,1, ,1 .
p 1 

Pi  са радиус-векторите на
характеристични точки и wi  - тегла.
4
NURBS повърхнини
NURBS повърхнина S от степен p в u направлението и степен q във v
направлението се дефинира с векторното уравнение
n m
S : r  S (u, v)   Ri , p , j ,q (u, v) Pi , j , където
i 0 j 0
Ri , p , j ,q (u , v) 
N i , p (u ) N j ,q (v) wi , j
n
.
m
 N
k,p
(u ) N l ,q (v) wk ,l
B-сплайн функциите Ni , p (u),N j ,q (v) са
дефинирани върху възловите вектори
k 0 l 0


U  0, ,0, u p1 ,

 p1


, ur  p1 ,1, ,1
p 1 

и

V  0, ,0, vq 1 ,
 q 1

, vs q 1 ,1, ,1 ,
q 1 

където r = n + p + 1 и s = m + q + 1.  Pi , j  са радиус-векторите на
характеристични точки и wi , j  - тегла.
5
Компютърни модели за представяне на
кривите и повърхнините от втора степен
 Лайминг (Liming)
 Проузър (Prosser)
 Роджерс (David Rogers)
 Голдман (Goldman)
Възприетият подход в 3D ГС за
получаването на парабола и
хипербола е намирането на
сплайн крива от пресичането на
кръгов конус с подходяща
равнина.
 Тео Павлидис
 Воуган (Vaughan)
 Пигъл (Les Piegl) посочва Лий
(Lee)
 Фарин (Farin)
 Пигъл
 Построяване на базата на
сплайн управителна крива.
 Подчинена повърхнина.
 Преобразуване до Пач (patch)
и Меш (mesh).
6
Идеята за представяне на кривите от
втора степен чрез NURBS криви
Определени от параметрите в скаларнопараметричните уравнения (СПУ);
Определя се точно мястото на контролните
върхове и стойностите на техните тегла в
NURBS модела на кривата;
Подразделя се получената крива на сегменти
(Алгоритъм 2.3);
 Определят се: броя на контролните
върхове, броя на възлите и възловия
вектор.
 На базата на броя на сегментите се
подразделя NURBS кривата.
Локална модификация;
Нови възможности и по-голяма гъвкавост в
моделирането.
7
Представяне на дъга от елипса
чрез NURBS крива
 Посока на построяване на
дъгата
(положителна
и
отрицателна дъга);
 Основна идея за решение;
 Афинна трансформация на
единичната
окръжност
в
елипса;
 Алгоритъм за построяване на
NURBS дъга от единичната
окръжност;
 Алгоритъм за построяване на
NURBS дъгата от елипсата чрез
NURBS дъгата от единичната
окръжност.
8
Представяне на дъга от парабола
чрез NURBS крива
Твърдение 2.1 Графиката на дъгата
 с
oт параболата
е идентична

NURBS крива (ур. 2.1) от втора
степен с контролни върхове
Ps   u , 2 pus 
2
s

 u  u  u 2  u  u   u
e
e
s
e
s
e

 : P1 
2

 p  ue  us   ue  us 
Pe   ue2 , 2 pue 
с тегла
,
ws върху
w1  wвъзлов
дефинирана
e  2 p вектор
.
U   0, 0, 0,1,1,1 

 , 


9
Представяне на дъга от хипербола
чрез NURBS крива
Твърдение 2.5 За всяка дъга   от хипербола, определена от два ъгъла
 B и  L , където  B   L , и параметрите a и b , съществува
представяне чрез NURBS крива  от втора степен дефинирана върху
възлов вектор U   0, 0, 0,1,1,1  и трите контролни върха
 PB   a, b.sin  B 


 :  P1   (1  t * ).a  sign(cos  B ).t *.a.cos  B , (1  t * ).b.sin B 

 PL   a, b.sin  L 
с тегла wB  cos  B , w1  w.cos  B , wL  cos  L , където
w  (1  t * )  t *. sign( pB )  (1/ pB )  pB   1 , pB  cos  B ,
p
t 
, p
1 p
*
M 0Q
.
QM 2
10
Представяне на повърхнините от втора
степен чрез NURBS повърхнини
Частите от повърхнините, които
се построяват, се определят от
стойностите на параметрите от
СПУ.
Първите две групи се построяват
на базата на NURBS генераторни
I. Елипсоид, параболоид, хиперболоид,
линия (елиптични, параболични,
двоен хиперболоид и конус;
хиперболични), върху които се
извършват:
II. Цилиндри: елиптичен цилиндър,
 ротация (I-ва група)
параболичен цилиндър и
хиперболичен цилиндър;
 замитане (II-ра група)
Даден е един подход за
III.Хиперболичен параболоид.
представяне на повърхнина на
хиперболичен параболоид.
Повърхнини от втора степен са
разделени условно в три групи
по отношение на методите за
тяхното представяне чрез
NURBS повърхнини:
11
Представяне на повърхнините от I-ва
група чрез NURBS повърхнини
Нека   v  да бъде NURBS генераторната крива с m  1
контролни върхове Pj с тегла w j и дефинирана върху възлов
вектор V  0,0,0, v1, v1, v2 , v2 , , vk , vk ,1,1,1 . Избираме   v  да лежи
в равнината Oxz . Кривата завъртаме около оста Oz . За
търсената повърхнина получаваме
n
S  u, v   
i 0
m
R
j 0
i ,2; j ,2
 u, v  Pi , j
(3.1)
с възлови вектори V и U  0,0,0, u1, u1, u2 , u2 , , uh , uh ,1,1,1 .
Следва да се определят контролните върхове и теглата им.
За i  0  Pi , j  P0, j  Pj . Всички контролни върхове Pi , j за
фиксирано j , лежат в равнината z  z j . Теглата се определят
така wi , j  wi .w j , където wi  1, 2 2,1, ,1, 2 2,1 .


12
Представяне на повърхнините от I-ва
група чрез NURBS повърхнини
ХИПЕРБОЛОИД
ДВОЕН
ПАРАБОЛОИД
ХИПЕРБОЛОИД
КОНУС
ЕЛИПСОИД
13
Представяне на повърхнините от II-ва
група чрез NURBS повърхнини
Нека   u  да бъде NURBS генераторната крива с
n 1
контролни върхове Pi с тегла wi и дефинирана върху възлов
вектор U  0,0,0, u1, u1, u2 , u2 , u,k , uk ,1,1,1 . Избираме   u 
да лежи в равнината Oxy . Кривата замитаме по направление
на оста Oz . За търсената nповърхнина
получаваме:
m
S  u, v   
i 0
R
j 0
i ,2; j ,2
 u, v  Pi , j
(3.2)
с възлови вектори U и V  0,0,0, v1, v1, v2 , v2 , , vh , vh ,1,1,1
като h е броят на сегментите, а vl избираме така:
1
f  , v0  0, vl 1  vl  f , l  0, , h  1. Контролните върхове
h
са Pi ,0  Pi и Pi , j , j  1, , m . Координатите им определяме
d
така: xi , j  xi ,0 , yi , j  yi ,0 , zi , j  zi ,0  j.q , където q  , wi , j  wi .
2h
14
Представяне на повърхнините от II-ва
група чрез NURBS повърхнини
ХИПЕРБОЛИЧЕН
ЦИЛИНДЪР
ПАРАБОЛИЧЕН
ЕЛИПТИЧЕН ЦИЛИНДЪР
ЦИЛИНДЪР
15
Представяне на хиперболичния
параболоид чрез NURBS повърхнина
 Повърхнината
се
определя
от
параметрите a и b от СПУ и два
допълнителни: W – широчина (по x),
L – дължина (по y).
 Разработен е алгоритъм (Алгоритъм
3.2) за подразделяна на NURBS
биквадратна повърхнина.
16
Представяне на хиперболичния
параболоид чрез NURBS повърхнина
Резултатите, които получаваме за контролните върхове, които
определят повърхнината, са както следва:
P00  xs , ys , dx  dy  ,
P01  xs , 0, dx  dy  ,
P02  xs , ye , dx  dy 
2


 1  
P10  0, ys ,  dx  dy  , P11  0, 0,    N1,2     , P12  0, ye ,  dx  dy 


2






P20  xe , ys , dx  dy  , P21  xe , 0, dx  dy  ,
P22  xe , ye , dx  dy 
xs2
dx  2
2a
ys2
dy  2
2b
  N 0,2 . N 0,2 .z00  N1,2 .z01  N 2,2 .z02  
N1,2 . N 0,2 .z10  N 2,2 .z12  
N 2,2 . N 0,2 .z20  N1,2 .z21  N 2,2 .z22 
17
Прилагане на NURBS моделите в 3D
ГСГМ Autodesk 3ds Max





Основни етапи
Възможност за функционално
разширяване и избор на 3D ГС
Autodesk 3ds Max.
Избор на софтуерен
инструментариум за разработване
на специализираните софтуерни
модули (ССМ) – плъгини (от англ.
plugins): MaxScript.
Графичен потребителски
интерфейс на ССМ.
Функции създаващи новите
NURBS модели в ССМ.
Интерактивно създаване на
NURBS обектите в различните
изгледи на ГС.
Сравнителен анализ на работата на
ССМ
Основните характеристики, които се
следят са:
 брой на стъпките при конструиране;
 време за конструиране;
 възможност за локална модификация;
 брой на контролните върхове;
 ниво на визуализация (само за
повърхнините).
18
Дъги от парабола
 3 стъпки при конструирането;
 75 секунди;
 NURBS крива с 37 контролни
върхове.
NURBS Parabolical Arc
 1 стъпка за създаване;
 5 секунди (15 пъти по-бързо);
 NURBS крива с 3, 5, 7 и т.н.
контролни върхове.
 Лека локална модификация.
19
Дъги от хипербола
 3 стъпки при конструирането;
 75 секунди;
 NURBS крива с 31 контролни
върхове.
NURBS Hyperbolical Arc
 1 стъпка за създаване;
 5 секунди (15 пъти по-бързо);
 NURBS крива с 3, 5, 7 и т.н.
контролни върхове.
 Лека локална модификация.
20
Повърхнини от елипсоид
 5 стъпки при конструирането;
 45 секунди;
 NURBS повърхнина с 1280
контролни върхове.
NURBS Ellipsoid
 1 стъпка за създаване;
 5 секунди (9 пъти по-бързо);
 NURBS повърхнина с 9, 15, 25 и
т.н. контролни върхове.
 Лека локална модификация.
21
Повърхнини от параболоид
 6 стъпки при конструирането;
 180 секунди;
 NURBS повърхнина с 2560
контролни върхове.
NURBS Paraboloid
 1 стъпка за създаване;
 5 секунди (36 пъти по-бързо);
 NURBS повърхнина с 9, 15, 25 и
т.н. контролни върхове.
 Лека локална модификация.
22
Повърхнини от хиперболоид
 6 стъпки при конструирането;
 240 секунди;
 NURBS повърхнина с 4864
контролни върхове.
NURBS Hyperboloid
 1 стъпка за създаване;
 5 секунди (48 пъти по-бързо);
 NURBS повърхнина с 9, 15, 25 и
т.н. контролни върхове.
 Лека локална модификация.
23
Рендерирани изображения
на повърхнини получени чрез ССМ
NURBS
NURBS
NURBS
Hyperbolic
Paraboloid
Ellipsoid
Paraboloid
NURBS
Hyperboloid
24
Обобщени резултати
от сравнителния анализ
Представените модели, алгоритми и ССМ позволяват кривите и
повърхнините да се създават:
 с брой на стъпките – 1, а при другите подходи – 3 - за кривите, и 5
и 6 - за повърхнините;
 в реално време – за около 5 секунди, което е от 9 до 48 пъти побързо от другите подходи;
 с отлична възможност за локална модификация;
 с минимизиран брой на контролните върхове: 3 - за кривите и 9 за повърхнините, а при другите подходи от 31 до 73 - за кривите и
от 256 до 4864 - за повърхнините; това показва, че в определени
случаи (при повърхнините) се постига 540 пъти по-малък брой на
контролните върхове;
 с отлична визуализация при рендериране (за повърхнините).
25
Апробация на резултатите
Дванадесетте плъгина са одобрени и приети от HighEnd3D и са достъпни за
изтегляне както следва:
Придружени са с:
NURBS Conical Arcs 1.4
- инсталационни
http://www.highend3d.com/f/4368.html,
файлове и
NURBS Quadratic Surfaces 1.2
http://www.highend3d.com/f/4369.html.
инструкции за
инсталиране;
- с указание за
експлоатация.
В Интернет от 11.10.2007 г.
Не са постъпили забележки за възникнали проблеми при използването им от повече
от 1900 потребители за NURBS Conical Arcs и
повече от 3100 – за NURBS Quadratic Surfaces.
Положителен отзив от реалните приложения на плъгините в работата на фирма
“Монблан Дизайн” ЕООД, гр. Варна.
26
Научни и научно-приложни приноси
1. Изследвана е методологията за създаване на ССМ в триизмерните
графични системи и е определен единен подход за алгоритмична
реализация на плъгини за моделиране.
2. Разработени са NURBS модели
помощ се построяват дъги от
положителна и отрицателна
координатна система. Те са
стойностите на параметрите от
на кривите.



на криви от втора степен, с чиято
елипса, парабола и хипербола в
посока спрямо дефинираната
реализирани в зависимост от
скаларно-параметричното задаване
Дъгите от елипса се построяват за стойности по-малки, равни и по-големи от 360˚,
което разширява приложните области на моделите.
Представянето на дъги от параболи и хиперболи следва директно от доказани
твърдения, в които са изведени формули за стойностите на координатите на
контролните върхове и техните тегла на NURBS кривите.
Предложен е алгоритъм за подразделяне на NURBS кривите според дефинирани
критерии и нуждите на приложенията.
27
Научни и научно-приложни приноси
3. Разработени са NURBS модели на повърхнините от втора степен. За
получаването им се използват генераторни NURBS криви
(елиптични, параболични и хиперболични) и индивидуален подход
за представяне на хиперболичния параболоид. Подразделени са по
двете си направления, което дава възможност за локална
модификация.


Разработен и внедрен е алгоритъм за построяване на ротационни биквадратни NURBS
повърхнини-парчета, които се построяват за стойности на ъгъла на завъртане по-малки,
равни и по-големи от 360˚.
Разработен е алгоритъм за подразделяне на биквадратна NURBS повърхнина на
зададен брой сегменти.
4. На база на създадените NURBS модели на криви и повърхнини са
разработени дванадесет ССМ за 3D графичната система за
моделиране Autodesk 3ds Max. Те са одобрени и приети от Интернет
портала за високи 3D технологии и приложения HighEnd3D.
28
Публикации по дисертацията
1. Петков Емилиян. Развитие на NURBS модели на квадратични повърхнини за 3D
графичните системи. Списание “Computer Engineering”, София. 2008.
2. Petkov Emiliyan. Three Quadratic Surfaces as Design Tools for 3D Graphic Systems,
South East European Research Centre by the University of Sheffield: International
conference DSC’2007, Thessaloniki, Greece. 2007.
3. Petkov Emiliyan, Liuben Cekov. A Software Design Tool for Constructing Arcs of
Parabola in Graphics Systems, International conference Automatics and informatics’05,
Sofia. 2005.
4. Petkov Emiliyan, Liuben Cekov. One Method for Representing an Arc of Hyperbola by a
NURBS Curve. 19th International Conference SAER-2005, St. Konstantin Resort, Varna.
2005.
5. Petkov Emiliyan, Liuben Cekov. One Method for Representing an Arc of Ellipse by a
NURBS Curve, International conference Automatics and informatics’05, Sofia. 2005.
6. Petkov Emiliyan, Liuben Cekov. A B-spline Model of a Hyperbolic Paraboloid for
Graphics Systems, Anniversary Conference 60 Years University of Russe ‘Angel
Kanchev’ 2005, Russe. 2005.
7. Петков Емилиян, Любен Цеков. NURBS коники – програмен модел. Международна
научна конференция УниТех’04, Габрово. 2004.
8. Petkov Emiliyan. Computer Modelling of Surfaces. International conference of computer
systems and technologies CompSysTech’2002, Sofia. 2002.
29
Моделиране с
NURBS Elliptical Arc
30
Моделиране с
NURBS Ellipsoid
31