Sunteți pe pagina 1din 18

INGINERIE ASISTATĂ DE CALCULATOR

CURS 4&5&6 2017/2018

3. Modelarea suprafeţelor 3D bazate pe norii de puncte


Norii de puncte produşi de scanerele 3D nu sunt de obicei folosiţi direct, deşi pentru
simple vizualizări şi măsurători în domeniul arhitecturii sau al construcţiilor punctele pot
fi suficiente.

Numărul foarte mare de puncte (milioane sau chiar miliarde) creşte volumul de
informaţie şi timpul de prelucrare. Se impune reducerea volumului de informaţie. Dacă în
loc de un număr de puncte găsim o reprezentare matematică (de exemplu ecuaţia
suprafeţei care trece prin acele puncte sau aproximativ prin ele) atunci am făcut un prim
pas în această direcţie. Ideal ar fi să găsim o singură ecuaţie pentru toate punctele. La o
sferă acest lucru este posibil. La fel la un plan (un zid!). În general acest lucru nu este
valabil.

Procesul de convertire a unui nor de puncte într-un model 3D folositor în oricare din
formele descrise mai sus se numeşte reconstrucţie sau modelare.

Există mai multe metode pentru a genera un model bazat pe suprafeţe plecând de la o
mulţime de puncte 3D furnizate, de exemplu, de un scaner. O abordare intuitivă se
bazează pe divizarea spaţiului de lucru în celule elementare (voxeli - prin analogie cu
pixeli). Un model geometric ar fi realizat din suma celulelor ocupate de obiectul real.
Modelul poate fi aproximativ, dar el se calculează uşor folosind hărţi de coordonate sau
grafuri (în engleză octree).

În reprezentarea poligonala a unei forme 3D, o suprafaţă curbată este modelată ca o reţea
de multe suprafeţe poligonale plane mici (gândiţi-vă la o sferă de discotecă formată din
mici oglinzi poligonale plane, aceea pe care o iluminează un stroboscop pentru a crea o
ambianţă tipică). Modelele bazate pe reţelele poligonale, denumite şi modele Mesh, sunt
utile pentru vizualizare, dar sunt şi dificil de utilizat din cauza volumului mare de date
care trebuie prelucrate. O altă dificultate este legată de posibilitatea de a edita suprafaţa
reprezentată în această formă. Reconstrucţia bazată pe reţele poligonale implică găsirea şi
conectarea unor puncte adiacente cu linii drepte pentru a crea o suprafaţă continuă
(triunghiuri, pătrate etc.).

CURSUL IAC 4&5&6 2017/2018 1


Prin scanare se obţine norul de puncte (a), prin gruparea punctelor în poligoane plane şi
convexe se aproximează suprafaţa obiectului (b), în funcţie de poziţia surselor de lumină
se obţine un model cu umbre (shaded model) (c), în final se pot adăuga informaţii
suplimentare, cum ar fi de exemplu curbura în fiecare punct al suprafeţei reprezentată
(vizualizată) prin culoare.

Utilizarea triunghiurilor pentru aproximarea poligonală reprezintă o soluţie avantajoasă


din punct de vedere al simplităţii calcului. Triunghiurile sunt cele mai simple poligoane,
doar trei perechi de coordonate, plane şi convexe. Condiţia de planaritate permite
realizarea de interpolări liniare între punctele (noduri, vertices) implicate în calcul.
Condiţia de convexitate permite cuplarea suprafeţelor astfel generate la structuri mult mai
complicate. Aceste două proprietăţi împreună permit cuplarea suprafeţelor (reţele,
networks) formate din petece (mesh) triunghiulare la modele mult mai complexe generate
prin alte tehnici. Metoda care utilizează aceste suprafeţe se numeşte triangulare (ca în
figura b) iar procesul se numeşte meshing sau tesselation.

Sunt cunoscute trei importante proceduri de implementare a procesului de meshing:


- Marching Cubes,
- Triangulare Delaunay,
- Suprafeţe parametrizate (B-Splines, Bezier).

3.1 Metoda Marching Cubes

Marching-Cubes reprezintă unul dintre cei mai cunoscuţi algoritmi de construire a


suprafeţelor utilizat pentru a afişa datele 3D. Acest algoritm produce o reţea de suprafeţe
triunghiulare prin calcularea iso-suprafeţelor din datele discrete reprezentate de nori de
puncte.

În matematică, o mulţime de tip nivel (level set) pentru o funcţie f care ia valori reale
depinzând de n variabile este definită ca

{ (x1,...,xn) | f(x1,...,xn) = c }

unde c este o constantă. Prin urmare, aceasta este mulţimea punctelor de definiţie în care
funcţia ia o valoare constantă.

CURSUL IAC 4&5&6 2017/2018 2


Dacă n = 2 atunci această mulţime este o curbă de nivel, dacă n = 3 mulţimea devine
suprafaţă de nivel. Pentru n > 3 mulţimea devine o hipersuprafaţă. Altfel spus, o curbă de
nivel este o mulţime de valori reale care sunt rădăcini ale ecuaţiei în două variabile x1 şi
x2. O suprafaţă de nivel este o mulţime de valori reale care sunt rădăcini ale ecuaţiei în
trei variabile x1, x2 si x3. O hipersuprafaţă de nivel este o mulţime de valori reale care sunt
rădăcini ale ecuaţiei în n variabile x1, x2 .... xn.

O mulţime de forma { (x1,...,xn) | f(x1,...,xn) ≤ c } se numeşte o mulţime de tip subnivel.

Algoritmul Marching-Cubes (march = a marsalui, cube = cub) se bazează pe o divizare a


spaţiului 3D în celule, unde celulele pot fi considerate mici cuburi (voxels, volume
elemente). Punctele centrale ale voxelilor sunt colţurile celulelor. Pentru fiecare colţ al
unui cub este determinată poziţia punctului relativă la suprafaţa obiectului. Deci, iso-
valoarea este calculată pentru toate colţurile voxelilor. Calculul se face prin rezolvarea
iso-funcţiei pentru fiecare poziţie. Dacă valoarea rezultată este mai mare decât iso-
valoarea asumată, colţul cubului este în afara suprafeţei. Un caz special îl constituie
egalitatea, unde poziţia este definită ca fiind interioară. Aceste valori sunt calculate
pentru toate colţurile cuburilor pentru a determina în ce poziţii se intersectează suprafaţa.
Punctul de intersecţie este calculat prin interpolare de-a lungul muchiilor între iso-
valorile de la colţuri.

În continuare, fiecare cub este înlocuit de un set de poligoane, în funcţie de care margini
ale cubului au intersectat iso-suprafaţa asumnată. Pentru fiecare cub există 28 = 256
variante posibile de intersectare, şi acestea pot fi reduse la 15 prin eliminarea variantelor
simetrice. Este propus un anumit set de aproximări ale poligonului. Prin adăugarea sau
omiterea de cuburi cu toate muchiile/colţurile în interior, respectiv exterior, în literatura
de specialitate găsim 14 sau 16 variante. Datorită faptului că două cuburi vecine au
muchii comune, reţeaua de conectivităţi creata este consistentă. Totuşi algoritmul are de
asemenea şi probleme, deoarece nu toate variantele poligonale sunt compatibile unele cu
celelalte. Această metodă este aplicată tuturor cuburilor ce intersectează suprafaţa. Ca
rezultat, este produsă o reţea de suprafeţe poligonale triunghiulare, care este frecvent
utilizată pentru vizualizarea mulţimilor de coordonate tridimensionale.

Există şi metode mai precise, dar derivate din varianta de bază. Ideea de bază este să se
calculeze mai precis interpolarile (de exemplu triliniar în loc de biliniar) şi să se
implementeze algoritmi de corectare a neregularităţilor suprafeţelor. Rezultă suprafeţe
mai netede şi mai apropiate de original, dar se consumă timp de calcul mai mult pentru că
se crează mai multe triunghiuri mai mici pentru o aproximare mai bună. În practică,
descrierea analitică a topologiei sau a iso-suprafeţei pentru obiectele scanate este
necunoscută. Drept urmare, este necesară o aproximare pentru aplicarea cu succes a
metodei Marching Cubes. Pentru suprafeţe omogene şi rotunjite (smooth) fără margini şi
colţuri ascuţite se poate aproxima funcţia de calcul a distanţei într-o manieră comparabilă
cu cea de la iso-suprafeţe. Pentru fiecare punct vecinătatea locală este calculată şi
aproximată cu o funcţie cubică.

C(r) = 2r3/R3 – 3r2/R2 + 1

CURSUL IAC 4&5&6 2017/2018 3


O sferă este o iso-suprafaţă pentru funcţia F(x, y, z) = x2 + y2 + z2. În figura alăturată se
prezintă exemplificarea procedeului pentru o sferă: cele 15 posibile poligoane care pot
aproxima suprafaţa celulei, vârfurile marcate sunt în interiorul suprafeţei (a); voxelii care
intersectează suprafaţa (b); reţeaua de petece triunghiulare (c); modelul final cu umbre
(d);

Influenţa vecinilor este limitată la o distanţă r care trebuie să fie mai mică decât o rază R
predefinită. Însuşi punctul considerat are ponderea maximă 1, această pondere (influenţă)
descreşte neliniar cu creşterea distanţei pentru realizarea unor tranziţii line. După
calcularea funcţiei iso, pentru fiecare punct (sau pentru regiuni, pentru mai multă
eficienţă) sunt detectate toate celulele care se pot afla în regiunea de interes.

Pentru fiecare colţ al celulei, funcţia este evaluată în mod analog cu abordarea standard
Marching Cube. În contrast, este propusă o altă schemă meshing ce foloseşte doar 7
aproximări poligonale diferite. Poligoanele generate sunt pur şi simplu împărţite în
triunghiuri prin conectarea punctelor din colţuri cu mijlocul lor. Această procedură nu
poate fi utilizată pentru toate tipurile de poligoane, dar este suficientă pentru a crea
suprafeţe line (smooth).

Putem semnala şi un alt algoritm mai complex pentru a produce suprafaţa mesh dintr-o
reţea de puncte neorganizate, care de asemenea se bazează pe tehnica Marching Cubes.
Această abordare constă în 3 faze şi permite modelarea adiţională o muchiilor
suprafeţelor. Pentru fiecare punct Pi în mulţimea de puncte P, este aproximat un plan
tangenţial pentru o vecinatate mică (cele mai apropiate k puncte, unde k=15). Distanţa
până la plan este de asemenea folosită ca o iso-valoare, comparabil cu abordarea
precedentă. Aici este important să se calculeze foarte corect orientarea planelor pentru a
asigura orientarea corectă a poligoanelor produse. Cea de-a doua fază optimizează
suprafaţa mesh iniţială prin ştergerea şi introducerea de triunghiuri şi puncte. Scopul este
de a reduce tringhiurile redundante şi dispensabile, în timp ce marginile sunt păstrate. O
funcţie energetică este minimizată.

E= Edist + Erep + Espring

Termenul Edist reprezintă pătratul distanţei dintre reţea şi norul de puncte, iar Erep descrie
raportul dintre numărul de triunghiuri şi, respectiv, numărul de puncte. Funcţia Espring
atribuie o componentă fiecărui vertex şi a fost introdusă pentru a asigura un anumit grad

CURSUL IAC 4&5&6 2017/2018 4


de netezime între triunghiurile vecine (se penalizează triunghiurile alăturate care diferă
mult ca orientare).

În final, în a treia fază, reţeaua optimizată este subdivizată pentru a întări caracteristicile
locale. Drept urmare, este aplicat un algoritm specific pentru generarea de suprafeţe prin
subdivizare acolo unde este nevoie de reliefarea unor detalii pierdute în primele faze.
Cele trei faze sunt ilustrate în figura următoare.

a) nor de puncte iniţial neorganizat; b) faza 1: reţeaua iniţială; c) faza 2: reţeaua optimizată; d) faza 3: suprafaţa plană.

3.2 Triangularea Delaunay

Triangulaţia Delaunay reprezintă un vechi principiu matematic introdus de către


Delaunay în 1924. Acesta descrie o metodă incrementală pentru a genera reţele închise de
suprafeţe triunghiulare. Algoritmul porneşte de la un triunghi iniţial. Prin introducerea
iterativă a unor puncte, sunt produse noi margini şi triunghiuri până când sunt epuizate
toate punctele.

Triangulaţia Delaunay poate fi generată în două moduri diferite:


- Diagrama Voronoi,
- Criteriul cercului circumscris.

În matematică, o diagramă Voronoi este un tip special de descompunere a unui spaţiu


după criteriul distanţelor până la o mulţime de obiecte discrete din spaţiu, de exemplu
până la o mulţime de puncte. În cazul cel mai simplu, se dă o mulţime S de puncte din
plan care este zona Voronoi. Fiecare zonă are o celulă Voronoi V(S) care este formată din
toate punctele mai apropiate de zona S decât de oricare altă zonă. Segmentele diagramei
Voronoi sunt toate punctele din plan care sunt echidistante faţă de cele mai apropiate
două zone. Nodurile Voronoi sunt punctele echidistante în raport cu trei sau mai multe
zone.

Fie S o mulţime de puncte în spaţiul Euclidian cu toate punctele de graniţă conţinute în S.


Pentru aproape fiecare punct x din spaţiul euclidian există un punct din S ca fiind cel mai
apropiat punct în raport cu x. Spunem “aproape” pentru că s-ar putea să fie două sau mai
multe puncte din S cu aceeaşi distanţă până la x.

CURSUL IAC 4&5&6 2017/2018 5


Dacă S conţine numai două puncte, A şi B, atunci mulţimea de puncte echidistante este
un hiperplan (planul mediator al segmentului AB). Acest hiperplan este graniţa dintre
mulţimea tuturor punctelor mai apropiate de A decât de B şi mulţimea tuturor punctelor
mai apropiate de B decât de A.

În general, mulţimea tuturor punctelor mai apropiate de un punct C din S decât de orice
alt punct din S este interiorul unui poligon (mai general polytope) numit celula Voronoi a
lui C. Mulţimea acestor poligoane acoperă tot spaţiul şi determină acoperirea
(tessellation) Voronoi corespunzatoare mulţimii S.

Diagramele Voronoy se folosesc pentru a găsi vecini mai apropiaţi în structuri de puncte.
De exemplu cel mai apropiat spital într-un oraş, cel mai asemănător obiect într-o bază de
date. Dacă se dă diagrama Voronoi atunci se poate găsi cel mai mare cerc gol într-o
mulţime de puncte care definesc un poligon. De exemplu să se construiască un
supermarket în cea mai mare zonă din oraş în care nu există concurenţă.

a) Triangularea Delaunay conţine toate cercurile circumscrise şi centrele lor,


b) Diagrama Voronoy se obţine unind centrele cercurilor de la punctul a.

Din caracteristicile de mai sus rezultă nişte proprietăţi importante. Fie două triunghiuri
ABD şi BCD cu o latură comună BD. Dacă suma unghiurilor  şi  este mai mică de
180o atunci triunghiul satisface condiţia Delaunay. Acest fapt este important pentru că
permite utilizarea unei tehnici numite tehnica flipping. Dacă două triunghiuri nu verifică
condiţia Delaunay, atunci, schimbând latura comună BD cu latura comună AC, se vor
produce două triunghiuri care îndeplinesc condiţia Delaunay.

CURSUL IAC 4&5&6 2017/2018 6


a) Acest triunghi nu îndeplineşte condiţia Delaunay pentru că suma celor două
unghiuri  şi  este mai mare decât 180o,
b) Triangularea nu verifică condiţia Delaunay pentru că există cercuri circumscrise
care conţin mai mult de 3 puncte,
c) Prin schimbarea laturii comune se obţin două triunghiuri care verifică condiţia
Delaunay.

Toţi algoritmii pentru calculul triangularii Delaunay se bazează pe operaţii de detecţie a


punctelor care se află în interiorul cercului circumscris unui triunghi şi, ca urmare,
necesită structuri de date performante din punct de vedere al stocării triunghiurilor şi
muchiilor. În 2D, a detecta dacă un punct este în interiorul cercului circumscris
triunghiului ABC revine la a calcula determinantul :

Dacă presupunem că A, B şi C sunt dispuse în sens orar atunci condiţia de pozitivitate


este îndeplinită dacă D se află în interiorul cercului circumscris.

Pentru un algoritm de tip fliping, dacă un triunghi este non-Delaunay, atunci problema
este rezolvabilă prin schimbarea laturii comune: se construieşte orice triangulare, se
schimbă laturile comune până când nu mai există triunghiuri non-Delaunay. Efortul de
calcul este de ordinul O(n2) în raport cu schimbările de laturi, iar metoda nu se poate
extinde la dimensiuni mai mari.

Metoda incrementală este o metodă care eficientizează calculul pentru triangularea


Delaunay şi care se bazează pe adăugarea repetată a vârfurilor şi triangularea numai a
părţii de graf afectate. Când un vârf  este adăugat atunci se divizează în trei triunghiul
care-l conţine pe iar apoi se aplică algoritmul fliping. Aplicarea directă a acestei
metode presupune că vom căuta triunghiul care-l conţine pe iar ulterior vom aplica

CURSUL IAC 4&5&6 2017/2018 7


tehnica flipping eventual pentru toate triunghiurile. În acest mod complexitatea calculului
creşte foarte mult.

Dacă vom adăuga vârfuri într-o ordine aleatoare, atunci există la fiecare introducere un
număr de triunghiuri care vor fi supuse procesului de flipping. Se poate memora istoria
împărţirii triunghiurilor şi aplicării procesului de fliping: pentru fiecare triunghi se
memorează un pointer (o adresă) către două sau trei triunghiuri care l-au înlocuit. Pentru
a găsi varful , se pleacă de la triunghiul rădăcina (primul triunghi) şi se urmează
pointerii către triunghiul care-l conţine pe , până când se găseşte un triunghi care nu a
fost încă înlocuit. În acest fel se face o economie de timp ca de la O(n2) la O(nlogn).

Metoda bazată pe tehnica “divide şi cucereşte” este o variantă a triangulării în spaţiul 2D.
Se desenează secvenţial linii care divid vârfurile în două mulţimi. Se face triangularea
Delaunay pentru ambele mulţimi. Ulterior se face o unire a celor două suprafeţe de-a
lungul liniei de separare. Pe total are loc o economie de timp în raport cu varianta în care
se aplică triangularea o singură dată. Locul unde se poate decide economia de timp este
alegerea liniei de demarcaţie.

Revenind la reconstruirea suprafeţelor din norurile de puncte, pentru construirea


diagramei Voronoi un prim pas îl constituie determinarea unei linii între punctele
învecinate. În cel de-al doilea pas este calculată mediatoarea segmentului determinat
anterior. În momentul adăugării unor noi puncte sistemului, sunt calculate noi
mediatoare, dar sunt şi eliminate părţi existente dar considerate nerelevante. Deci, pentru
fiecare punct, apare o suprafaţă convexă. Regiunile fără muchii de graniţă sunt conectate
şi reprezintă o suprafaţă externă (înfăşurătoare convexa) a mulţimii de puncte. În final,
punctele din regiunile învecinate pot fi conectate fără a crea suprapuneri. Această metodă
necesită o durată teoretică de O(n2). Timpul cerut poate fi redus la O(log(n)) printr-o
abordare de tip “divide şi cucereşte”, care a generat iniţial reţele independente care au
fost fuzionate la pasul 2. Această abordare se potriveşte de asemenea şi pentru procesarea
paralelei acolo unde există structuri de calcul adecvate.

a) b) c) d)

Generarea regiunilor Voronoi (a-c) şi triangularea Delaunay rezultantă (d)

CURSUL IAC 4&5&6 2017/2018 8


Cea de-a doua metodă se bazează pe metoda cercului circumscris. Pentru o mulţime de
puncte P în plan, triangularea DT(P) se obţine astfel încât nici un punct P nu se află în
interiorul vreunui cerc circumscris unui triunghi din DT(P).

Plecând de la definiţia Delaunay, cercul circumscris triunghiului format de trei puncte din
mulţimea iniţială de puncte este gol dacă nu conţine alte puncte decât cele trei care l-au
definit (alte puncte sunt admise doar dacă se afla chiar pe perimetru, pe margine, şi nu în
interior). O mulţime de triunghiuri organizate într-o reţea se numeşte triangulare
Delaunay numai dacă toate cercurile circumscrise la toate triunghirile din reţea sunt
goale. Definiţia se poate extinde de la R2 la R3 înlocuind cercurile cu sfere şi triunghiurile
cu tetraedre. Pentru trei puncte coliniare nu se defineşte triangularea Delaunay. Pentru 4
puncte ale aceluiaşi cerc (vârfurile unui patrulater) triangularea Delaunay nu este unică:
un patrulater se poate împărţi în două triunghiuri în două moduri diferite care conduc la
două triangulări diferite. Iniţial trei puncte sunt conectate pentru a forma un triunghi. Un
nou punct introdus este conectat la o muchie numai dacă se află în afara cercului
circumscris triunghiului. Altfel, muchia comună dintre două triunghiuri este schimbată şi
criteriul cercului circumscris trebuie să fie reaplicat.

Considerând criteriul Delaunay în R3, cercul circumscris este înlocuit de sfera


circumscrisă şi punctele nu formează triunghiuri, ci tetraedre. Criteriul sferei circumscrise
defineşte faptul că nici unui punct în afara vertex-urilor unui tetraedru nu-i este permis să
se afle în interiorul sferei circumscrise. Atâta timp cât aceste patru puncte nu se află într-
un plan, triangulaţia tridimensionala Delaunay (tetraedrizare) este unică. Această tehnică
produce cea mai mică suprafaţă externă (înfăşurătoare convexă) a unui set de puncte 3D.
Totuşi, trebuie să fie realizate multe teste de intersecţie, acestea necesitând structuri de
date eficiente pentru a administra norul de puncte şi tetraedrele. În paşii următori,
vârfurile triunghiului sunt mutate pentru a obţine o aproximare a suprafeţei optime. Prin
eliminarea unirilor de triunghiuri pot fi restabilite orificiile originale existente şi care au
fost iniţial obturate.

a) b) c)

a) Două triunghiuri care nu satisfac criteriul cercului circumscris; b) Două triunghiuri


care satisfac criteriul cercului circumscris; c) Două tetraedre care satisfac criteriul
cercului circumscris.

Pentru modelarea terenului sau a unor construcţii, triangularea Delaunay oferă o mulţime
de triunghiuri pentru a fi folosite ca poligoane în modelarea 3D a respectivelor suprafeţe.
Se evită folosirea unor triunghiuri prea înguste, adică a acelora care au o arie prea mică în
raport cu aria cercului circumscris lor.

CURSUL IAC 4&5&6 2017/2018 9


3.3 Reprezentarea parametrizată şi analitică a suprafeţelor

Un nivel superior de modelare implică aproximarea suprafeţei obiectului 3D prin


utilizarea unui număr mare de mici suprafeţe curbate (petece) de bază. Aceste suprafeţe
individuale corespund unor modele matematice consacrate cum sunt NURBS, splines sau
alte reprezentări ale topologiei 3D.

Folosind NURBS (Non-uniform Rational Basis Spline), sfera capătă o adevărată


reprezentare matematică. Dezvoltarea acestui aparat matematic a început în anii 1950 din
necesitatea de a reprezenta matematic suprafeţele 3D implicate în proiectarea avioanelor
sau automobilelor. Pionierii acestor abordari au fost inginerii Pierre Bezier de la Renault
şi Paul de Cateljau de la Citroen. Funcţiile utilizate sunt numite spline.

Un exemplu simplu şi intuitiv este aproximarea unei curbe date prin puncte de control:
închipuiţi-vă că în locul acestor puncte de control am avea stâlpii dintr-un gard de nuiele,
iar nuielele corespund funcţiilor spline care aproximează curba care descrie gardul în
întregime. Sunt impuse condiţii de continuitate şi derivabilitate la capetele intervalului
(nu sunt lipsuri şi nici colţuri de-a lungul curbei). Încercaţi să faceţi intuitiv trecerea de la
2D la 3D. Gândiţi-vă, de exemplu, la o minge de fotbal, o sferă, formată din petece de
piele.

Reprezentări B-Spline şi Bezier


Ambele variante de bază pentru algoritmul Marching Cubes şi pentru abordarea
Delaunay produc modele conectate, liniare pe porţiuni, ale suprafeţei din moment ce ele
obţin rezultatul dorit prin concatenarea unor suprafeţe triunghiulare individuale. În
funcţie de rezoluţie şi de numărul de triunghiuri, suprafeţele generate pot apărea şi ca
forme cu muchii în loc de forme rotunjite aşa cum ar fi preferabil. În mod particular pe
suprafeţele scanate, care conţin zgomot şi puncte eronate, triangularea poate da greş sau
poate reprezenta insuficient de corect suprafaţa scanată.

Reprezentarea suprafeţelor B-Spline de grade diferite a) liniare b) pătratice c) cubice

O aproximare mai bună a suprafeţei care garantează tranziţii mai line între suprafeţele
învecinate este asigurată de suprafeţele Bezier şi B-Spline. Acestea sunt definite de
funcţii polinomiale pe porţiuni şi de aceea au o descriere analitică, descriere care permite
adăugarea de puncte suplimentare pe suprafaţă. Continuitatea suprafeţei este impusă, iar

CURSUL IAC 4&5&6 2017/2018 10


condiţiile corespunzătoare se determină de către utilizator în funcţie de gradul
polinoamelor alese pentru reprezentare. În afară de continuitate, şi rotunjimea
suprafeţelor (derivabilitatea) poate fi impusă. Mai mult, funcţiile B-Splines raţionale
permit definirea unor ponderi pentru fiecare vârf (vertex) în parte ceea ce ajută la
modelarea suplimentară a muchiilor. Datorită condiţiei de continuitate garantate,
aproximarea golurilor este mai complicată.

În matematică, o funcţie spline este o funcţie definită pe porţiuni prin polinoame.


Principalul avantaj al utilizării acestor funcţii este posibilitatea de a aproxima bine (erori
mici) şi usor (calcul relativ rapid) curbe şi suprafeţe. Termenul vine de la nişte şipci de
lemn flexibile cu care se făcea aproximarea curbelor în şantierele navale clasice. Se
băteau cuie în pământ în punctele de control şi pe urmă se monta şipca flexibilă de lemn
printre aceste cuie. Se obţinea o aproximare continuă şi derivabilă a curbei în discuţie.

Termenul de spline este destul de general şi asociat cu o clasă de funcţii implicate în


interpolări şi crearea de curbe şi suprafeţe definite prin puncte. Potrivirea curbelor şi
suprafeţelor se face prin minimizarea unui criteriu de eroare legat de neregularităţile
curbei (curba să fie cât mai “rotundă” adică să fie derivabilă de n ori).

Numai cu titlul de exemplu, dacă avem intervalul [a,b] = [0,3] şi subintervalele [0,1],
[1,2] şi [2,3] atunci putem să alegem funcţii polinomiale de ordin 2 şi putem pune
condiţiile de continuitate la t=1 (reprezentarea este parametrică!!) pentru primele două
intervale şi la t=2 pentru ultimele două intervale. În aceste condiţii s-ar putea obţine
funcţii spline de următorul tip:

sau :

O întreagă teorie este dezvoltată şi aplicată pentru utilizarea funcţiilor spline pentru
determinarea curbelor şi suprafeţelor definite prin puncte.

O curbă Bezier este o curbă reprezentată parametric. Cea mai mare utilizare a acestor
curbe se întâlneşte în grafica pe calculator. Prin generalizarea la dimensiuni mai mari se
ajunge la suprafeţe Bezier (triunghiul Bezier este un caz special). Curba este definită de
un nor de puncte de control. Transformările afine (translaţii, scalări, rotaţii) pot fi aplicate
asupra curbei prin manipularea punctelor de control. Cele mai utilizate curbe Bezier sunt
cele de ordinul doi şi trei, patratice şi cubice. Dacă se utilizează grade mai mari trebuie să
ne aşteptăm la creşterea foarte puternică a timpului de calcul. Curbele individuale sunt

CURSUL IAC 4&5&6 2017/2018 11


concatenate în curbe multiple sau polylines – polilinii. La graniţa dintre componente se
impun condiţii de derivabilitate.

O curbă Bezier se poate aproxima şi printr-o secvenţă de segmente. Dacă punctele sunt
multe şi dese atunci aproximarea poate fi satisfacatoare, dar s-ar putea să se piardă mult
timp pentru că multe puncte se vor folosi şi acolo unde curba însăşi este destul de liniară.
O manieră adaptivă se poate baza pe divizarea succesivă a curbei în părţi mai mici şi
verificarea pentru fiecare porţiune a modului în care curba este bine aproximată (cu o
toleranţă sau eroare impusă) de un segment. Dacă aproximarea nu este acceptabilă, atunci
porţiunea se divide în două jumătăţi şi procedura se aplică recursiv pentru fiecare
jumătate.

O curbă Bezier liniară este chiar linia dreaptă definită de doua puncte P0 si P1 într-o
manieră similară cu procesul de interpolare:

O curbă pătratica Bezier este o curbă parabolică şi care trece prin trei puncte P0, P1, şi P2,

Patru puncte P0, P1, P2 şi P3 în plan sau în spaţiul tridimensional se poate defini o curbă
Bezier cubică. Curba pleacă din P0, trece printre punctele P1, P2 şi sfârşeşte în P3.
Punctele P1 şi P2 sunt utilizate pentru a determina direcţia curbei. Distanţa P0P1
determină “cât de mult” se merge către P2 înainte de a se îndrepta spre P3. P0P1 şi P2P3
sunt tangentele în P0 şi respectiv P3.

Se poate face trecerea, ca o generalizare, către un polinom de grad n. Dându-se punctele


de control P0, P1,..., Pn curba este:

Unde este un coeficient binomial.

De exemplu pentru n = 5:

suprafeţele Bezier sunt o extensie a curbelor Bezier şi moştenesc multe dintre


proprietăţile acestora.

CURSUL IAC 4&5&6 2017/2018 12


Curba Bezier cubică
Suprafeţele Bezier sunt variante ale funcţiilor spline. Maniera de determinare a
suprafeţelor este similară cu interpolarea, cu deosebirea că suprafeţele nu trec prin puncte
ci mai degrabă printre ele. Intuitiv putem să ne imaginam că în fiecare punct acţionează
......... care “atrage” suprafaţa spre el.

O suprafaţă Bezier de ordin (n,m) este definită printr-o mulţime de (n + 1)(m + 1) puncte
de control Kij. De exemplu, dacă k sunt toate puncte în spaţiul cu patru dimensiuni R4
atunci suprafaţa va fi şi ea în spaţiul cu patru dimensiuni R4. O suprafaţă Bezier
bidimensională poate fi definită ca o suprafaţă parametrică unde poziţia punctului p, ca
funcţie parametrizată de coordonatele u şi v, este dată de:

calculată pe o unitate pătratică, şi unde

este un polinom Bernstein, şi

Spre exemplu, numai pentru a da o imagine de ansamblu, primele câteva polinoame


Bernstain sunt:

CURSUL IAC 4&5&6 2017/2018 13


În general, cele mai utilizate suprafeţe Bezier sunt reţele de petece bicubice, adică
m=n=3. Geometria pentru o singură suprafaţă bicubică este complet definită de o
mulţime de 16 puncte de control. Aceste suprafeţe sunt numite suprafeţe B-spline într-o
manieră similară cu aceea în care curbele Bezier conduc la curbele B-spline.
Şi pentru curbele şi pentru suprafetele Bezier, se poate spune ca acestea se găsesc integral
în învelişul creat de punctele de control (convex hull).

Petecele (mashes) Bezier sunt superioare petecelor triunghiulare pentru a reprezenta


suprafeţele rotunjite pentru că sunt mai compacte, mai uşor de manipulat şi oferă
proprietăţi mai bune de continuitate. Unele suprafeţe uzuale întâlnite în aplicaţii de
construcţii, cum sunt cilindrii sau sferele, pot fi bine aproximate de un număr mic de
petece Bezier.

Există însă şi dificultăţi în utilizarea petecelor Bezier. O problemă este legată de


calcularea intersecţiilor cu dreptele spaţiale, care devine dificilă dacă nu se utilizează
metode de subdivizare interactică sau tehnici de calcul aproximativ. O altă dificultate este
legată de combinarea acestor petece spaţiale într-o reprezentare perspectivă (acolo unde
proiecţia depinde şi de distanţa de la care se face, nu numai de direcţia pe care se face
această operaţie).

Din acest motiv se practică descompunerea petecelor Bezier în petece triunghiulare, deci
plane. Această relaţie se numeşte randare 3D (3D Rendering pipeling). Dacă randarea se
face cu un număr foarte mare de triunghiuri foarte mici atunci graniţele dintre triunghiuri
nici nu se văd.

NURBS este sigla pentru Non-uniform rational basis spline care este un model matematic
foarte utilizat pentru reprezentarea curbelor, atât pentru cele reprezentate analitic (cu
formule) cât şi pentru cele definite explicit (prin puncte). Această reprezentare oferă
flexibilitate şi precizie.

Curba reprezentată prin NURBS O suprafaţă 3D reprezentată prin NURBS

Forma unei suprafeţe este determinată de punctele de control. Modificarea (editarea)


suprafeţelor se face simplu şi intuitiv prin modificarea punctelor de control ca în cazul
mai general al funcţiilor spline şi respectiv Bezier. O suprafaţă aflată în proiectare, de
exemplu a unei bărci, este în mod obişnuit formată din mai multe suprafeţe NURBS (sau
petece). Aceste suprafeţe trebuie concatenate fără să se vadă graniţele dintre ele. Din
punct de vedere matematic acestea sunt condiţiile de continuitate şi derivabilitate.

CURSUL IAC 4&5&6 2017/2018 14


O curbă NURBS este definită prin ordinul sau o mulţime de puncte de control cu ponderi
asociate şi un vector de noduri. Curbele şi suprafeţele NURBS sunt generalizări ale
reprezentărilor B-spline şi Bezier, cu diferenţa că aici apar ponderi pentru punctele de
control, ceea ce face să apară curbele raţionale NURBS (cele nerationale sunt cazuri
particulare). Curbele NURBS evoluează în două direcţii parametrizate, notate de obicei s
şi sau u şi v. Evaluând o curbă NURBS pentru diferite valori ale parametrului atunci
această curbă poate fi reprezentatată în spaţiul 2D sau 3D. Similar, evaluând o suprafaţă
NURBS pentru diferite valori pentru doi parametri atunci acea suprafaţă va putea fi
reprezentată în spaţiul cartezian 3D.

Punctele de control determină forma curbei. Fiecare valoare într-un punct al curbei se
calculează ca o sumă ponderată a valorilor asociate punctelor de control. Ponderile
fiecărui punct variază în funcţie de parametrul ales. Pentru o curbă de grad d, ponderile se
schimbă în cele d+1 intervale ale parametrului, după o funcţie polinomială (funcţie de
bază) de grad d. La marginile intervalului funcţiile de bază converg lin la zero. Faptul că
un singur punct de control infuenţează numai în acele intervale unde este activ este o
proprietate foarte convenabilă: în acest fel se pot schimba numai anumite părţi din
suprafaţă fără a modifica restul. Cu cât sunt mai multe puncte de control, cu atât cresc
şansele să crească precizia de reprezentare a curbelor. Fiecare punct de control este
ponderat, ceea ce a impus numele de “raţional” în NURBS. Aceste ponderi ajută la
obţinerea unui control mai bun al formei fără a mări neaparat numărul de puncte de
control.

Punctele de control pot avea dimensiune, adică iau mai mult de o valoare. De exemplu, se
utilizează foarte mult puncte de control tridimensionale. În acest mod se pot asocia
punctelor de control informaţii suplimentare (strălucirea culorii în prelucrarea imaginilor,
poziţii şi orientări pentru braţul unui robot). În această manieră se face şi trecerea către
suprafeţele NURBS. Fiecare punct de control devine un vector de puncte de control care
defineşte o curbă. Aceste curbe au aceelaşi grad şi număr de puncte de control. Prin
interpolarea vectorilor punctelor de control peste dimensiunea parametrului se obţine o
mulţime de curbe care definesc suprafata.

Vectorul nodurilor este o sevenţă de valori pentru parmetru care determină unde şi cum
afectează punctele de control curba NURBS. Numărul nodurilor este egal cu al punctelor

CURSUL IAC 4&5&6 2017/2018 15


de control plus gradul curbei plus unu. Vectorul nodurilor divide spaţiul parametrilor în
intervale. Când parametrul ia valori dintr-un astfel de interval atunci un nou punct de
control devine activ, iar vechiul punct de control se inactivează. Această maniera impune
ordonarea crescătoare a valorilor în vectorul nodurilor: (0, 0, 1, 2, 3, 3) este în regula, iar
(0, 0, 2, 1, 3, 3) nu este.

Noduri consecutive pot avea aceeaşi valoare. Atunci intervalul are lungime zero, două
puncte de control se activează simultan şi două se dezactivează. În acest fel se pot crea
colţuri într-o reprezentare NURBS care altfel este lină, rotundă. În acest fel se asociază
nodurilor ordinul de multiplicitate (doi sau trei, dar nu mai mult de gradul curbei). Pentru
NURBS de ordinul întâi, fiecare nod corespunde la un punct de control.

Valorile nodurilor nu au semnificaţie în sine. Numai raportul diferenţelor valorilor


contează. De exemplu vectorii de noduri (0, 0, 1, 2, 3, 3) şi (0, 0, 2, 4, 6, 6) produc
aceeaşi curbă. În mod obişnuit randarea unei curbe NURBS se face cu un pas constant
pentru variaţia parametrului, dar se pot face şi randări mai dese (pas mai des, puncte mai
multe) în zone de interes, de exemplu acolo unde suprafaţa are curbura mai mare. Această
neuniformitate a dus la introducerea termenului ”neuniform “

Nodurile sunt utile pentru a face calculele, utilizatorul poate să nu le vadă dacă foloseşte
un program specializat. Sunt şi programme care îi dau utilizatorului posibilitatea să
controleze nodurile. Controlul punctelor de control rămâne un mijloc mult mai intuitiv de
influenţare a formei curbei sau suprafeţei.

Ordinul curbei NURBS este numărul de puncte de control care influenţează un anumit
punct al curbei. Curba este reprezentată matematic prin polinoame de grad cu unu mai
mic decât ordinul curbei. Curbele de ordinul doi care sunt reprezentate prin polinoame
liniare (de grad unu) sunt numite liniare. Curbele de ordin trei sunt numite pătratice, iar
cele de ordin patru sunt numite cubice. Numărul punctelor de control trebuie să fie mai
mare sau egal cu ordinul curbei.

În practică, cele mai utilizate sunt curbele cubice. Crescând gradul creşte şi timpul de
calcul. Se utilizează în aplicaţii speciale curbe de ordin cinci sau şase, dar nu mai mult.

Funcţiile de bază utilizate în NURBS se notează de obicei cu Ni,n(u), unde i corespunde la


al i-lea punct de control, iar n corespunde la gradul funcţiei de bază. Uzual nu se mai
scrie parametrul şi rămane Ni,n. Definiţia este recursivă în n. Funcţiile de grad 0 Ni,0 sunt
funcţii constante pe porţiuni. Ele iau valoare unu în nodul corespunzator şi zero în rest.

Funcţii liniare de bază:

CURSUL IAC 4&5&6 2017/2018 16


Funcţii pătratice de bază:

Pe baza definiţiei funcţiilor de bază Ni,n o curbă NURBS ia următoarea formă:

unde k este numărul punctelor de control Pi , iar wi sunt ponderile. Numitorul a fost
introdus pentru normalizare: să dea unu dacă toate ponderile sunt unu.

Se mai poate scrie

unde funcţiile

sunt cunoscute ca funcţiile raţionale de bază.

Curbele spline non-raţionale sau curbele Bezier pot aproxima un cerc, dar nu pot să-l
reprezinte exact. Funcţiile spline raţionale pot reprezenta orice secţiune conică, inclusiv
un cerc, în mod exact. Această reprezentare nu este unică, dar se poate da un exemplu.

x y z Ponderi
1 0 0 1
1 1 0 2/2
0 1 0 1
-1 1 0 2/2
-1 0 0 1
-1 -1 0 2/2
0 -1 0 1
1 -1 0 2/2
1 0 0 1

CURSUL IAC 4&5&6 2017/2018 17


Ordinul este trei, din moment ce cercul este o curbă patratică, iar ordinul spline este cu
unu mai mare decât gradul segmentelor polinomiale.

Vectorul nodurilor este

Se crede că cercul este compus din patru arce legate între ele cu noduri duble. S-ar putea
crede ca noduri duble în reprezentări NURBS de ordinul trei ar putea duce la
nederivabilităţi (la ordinul întâi, adică colţuri). Totuşi nodurile sunt astfel poziţionate
încât funcţia este derivabilă. De fapt curba este indefinit derivabilă în orice punct, aşa
cum şi trebuie să fie dacă reprezintă un cerc.

Curba reprezintă exact cercul, dar nu este exact parametrizată în raport cu lungimea
arcului de cerc. Adică punctul de la momentul t nu se află la (sin(t), cos(t)) cu excepţia
începutului, mijlocului şi sfârşitului fiecărui sfert de cerc. Acest fapt se datorează faptului
că altfel x ar reprezenta o valoare exactă şi raţională a lui cos(t), ceea ce nu este posibil.
Cercul nu face o rotaţie completă când parametrul t merge de la o la 2, iar acest lucru se
datorează faptului că vectorul nodurilor a fost arbitrar ales ca multiplu de 

CURSUL IAC 4&5&6 2017/2018 18

S-ar putea să vă placă și