Plasa poligonala

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare
Un exemplu de plasă de poligon

O plasă de poligon , în grafică computerizată , este o rețea care definește un obiect în spațiu, alcătuit din vârfuri , margini și fețe . [1] Termenul mesh în engleză înseamnă literalmente „mesh”, „rețea”. [2] [3]

Începând cu anii 2000, ochiurile poligonale au fost utilizate din ce în ce mai intens în multe domenii diferite ale proceselor de grafică pe computer și geometrie , care este un domeniu relativ nou al informaticii care se referă la algoritmi și modele matematice pentru analiza și manipularea datelor geometrice). [4]

Definiție

Intuitiv, o plasă poligonală este partiția unei suprafețe continue în celule poligonale, cum ar fi triunghiuri , patrulatere etc. Mai formal, o plasă poate fi definit ca un tuplu , unde este este setul de vârfuri ale modelului (puncte în ) Și conține informațiile de adiacență sau, cu alte cuvinte, modul în care vârfurile sunt conectate pentru a forma marginile și fețele ochiului. [5] De exemplu, o plasă compusă dintr-un singur triunghi ar fi , și anume cele trei vârfuri, cele trei margini și triunghiul.

Cele mai frecvent utilizate ochiuri în grafica computerizată sunt ochiuri triunghiulare și ochiuri patrulatere (prescurtate în ochiuri cu patru ). [5] În acest articol, „plasă” înseamnă o plasă triunghiulară . Alte ochiuri, în care elementele de bază sunt patrulatere sau alte poligoane, sunt uneori folosite, dar pot apărea dezavantaje. De exemplu, este ușor să creați un patrulater ale cărui vârfuri nu se află toate în același plan, în timp ce există întotdeauna un plan care trece prin trei vârfuri. [6] Mai mult, lucrul exclusiv cu ochiuri triunghiulare simplifică memorarea și reduce numărul de algoritmi. [7]

Caracteristici

O plasă, spre deosebire de un obiect solid real, nu are o masă; este deci un fel de volum gol, lipsit de grosime, ale cărui fețe sunt într-adevăr „voaluri” superficiale. [8]

Componentele vizibile ale unei rețele sunt:

  • Vertex - Un punct din spațiu , care are deci coordonate , , care îi determină poziția. În engleză: vertex .
  • Edge - Segment care unește două vârfuri în spațiu. În engleză: edge .
  • Față - Definită prin conectarea și închiderea a cel puțin trei margini. [9] În engleză: face .

Ventilatoare și benzi

Ansamblul tuturor vecinilor unui vârf se numește inelul 1 al vârfului și este definit ca . [5] Cardinalitatea lui se numește grad ( grad ) sau valență ( valență ) a vârfului . [5]

O succesiune de triunghiuri adiacente care au același vârf se numește ventilator triunghi. O bandă este o secvență de triunghiuri care poate fi specificată prin listarea vârfurilor sale fără ambiguități. Pentru a fi mai specific, ni se oferă o listă ordonată de vârfuri , triunghiul este reprezentat de vârfuri . Benzi și ventilatoare sunt folosite pentru a compacta reprezentările ochiurilor. O fâșie de triunghiuri cu vârfurile reprezintă triunghiuri. Astfel, o bandă de 100 de triunghiuri necesită stocarea a 102 vârfuri, mai degrabă decât 300. Cantitatea de vârfuri salvate crește cu numărul de triunghiuri; numărul mediu de vârfuri necesar pentru a reprezenta un triunghi într-o bandă cu triunghiuri este . [5] În cazul unui ventilator , triunghiul este reprezentat de vârfuri asumand este summitul comun. [5]

varietate

Pictogramă lupă mgx2.svg Același subiect în detaliu: Varietate (geometrie) .

O plasă finită 2D este o plasă multiplă dacă marginile și triunghiurile care întâlnesc un vârf pot fi sortate într-o ordine ciclică fără repetări, astfel încât marginea este o margine a triunghiurilor Și . [6] Aceasta implică faptul că pentru fiecare margine, există exact două fețe care o conțin. [6]

O suprafață se numește 2-manifold (bidimensional-multiplu) dacă este în jurul (vecinătății) fiecărui punct la suprafață este homeomorf pentru un disc . [5] [10] Mai simplu, înseamnă că dacă avem un disc îl putem centra în și faceți-l să adere la suprafața din jurul său. Definiția colectorului 2 se poate extinde la suprafața cu margini , având în vedere tăierea jumătății discului și fixarea acestuia la margine.

Dacă suprafața este o plasă de poligon, putem determina dacă este multiplă verificând dacă sunt adevărate următoarele condiții: [5]

  • Colector de margini - Fiecare margine este împărțită de o singură față (înseamnă că se află pe marginea ochiurilor) sau de două fețe.
  • Vertex Manifold - Dacă două fețe Și împărtășește un summit, apoi putem trece de la la „traversând” doar marginile din inelul 1 al vârfului. Cu alte cuvinte, putem merge în jurul vârfului fără a trece prin vertex în sine.

Orientare

Pictogramă lupă mgx2.svg Același subiect în detaliu: Orientare .
Un poligon și cei doi vectori normali ai acestuia

Fiecare față este un poligon și, prin urmare, are două laturi (laturi). Dacă privim o față și îi urmăm vârfurile în ordinea în care sunt specificate , pot descrie mișcarea în sensul acelor de ceasornic sau în sens invers acelor de ceasornic . [5] Evident, dacă privim aceleași fețe din interior, aceste orientări vor fi schimbate. [5]

Definiția orientării este utilă pentru determinarea vectorului normal : dacă vârfurile unui triunghi nedegenerat (adică unul cu o zonă diferită de zero) sunt în puncte , , , atunci putem calcula , care este vectorul perpendicular pe planul triunghiului. [6] Rețineți că, dacă schimbăm vârfurile Și , vectorul rezultat este negativ. [6] Întrucât normele unui triunghi dintr-o plasă sunt adesea folosite pentru a determina ce este „în interiorul” sau „în afara” acesteia, ordinea vârfurilor este critică.

Structuri de date mesh

Pentru a alege o structură de date mesh ( structura de date a mesh-ului), este necesar să se ia în considerare factorii topologici [11] și algoritmici : [4]

  • Cerințe topologice - Ce tipuri de ochiuri trebuie să fie reprezentate prin intermediul structurii de date? Ne putem baza pe ochiuri cu 2 manifolduri sau trebuie să reprezentăm muchii complexe și vârfuri singulare? Ne putem limita la ochiuri triunghiulare pure sau trebuie să reprezentăm ochiuri poligonale arbitrare? Sunt ochiurile regulate, semi-regulate, neregulate? [12] Vrem să construim o ierarhie a rețelei mai rafinată?
  • Cerințe algoritmice - Ce tipuri de algoritmi vor opera pe structura datelor? Vrem pur și simplu să redăm rețeaua sau avem nevoie de acces eficient la cartierele locale de vârfuri, margini și fețe? Rețeaua va fi statică sau geometria și / sau conectivitatea acesteia se vor schimba în timp? Trebuie să asociem date cu vârfurile, marginile și fețele mesh-ului? Avem cerințe specifice în ceea ce privește consumul de memorie (adică seturile de date sunt masive)?

Alegerea unei structuri de date necesită măsurarea diferitelor criterii, cum ar fi ... [4]

  1. Timpul pentru a-l construi în timpul preprocesării.
  2. Timpul de răspuns la o anumită interogare .
  3. Timpul pentru efectuarea unei operații specifice.
  4. Consum de memorie și redundanță.

Reprezentări ale ochiurilor poligonale

Până în prezent, am presupus că există o oarecare reprezentare a ochiurilor fără a lua în considerare în detaliu cum se stochează de fapt poligoanele. De fapt, există multe reprezentări, iar alegerea uneia sau alteia influențează foarte mult posibilitățile noastre de procesare a ochiurilor. [7]

Cea mai simplă soluție este stocarea fiecărui poligon cu poziția geometrică a fiecărui vârf. [7] Totuși, a face acest lucru ar însemna să nu ai nicio informație de conectivitate - de fapt, ai obține doar o supă de poligon care poate fi redată , dar cu o manipulare redusă, deoarece toate operațiile primitive presupun o anumită cunoaștere a modului în care poligoanele se potrivesc între ele. fiecare.

Set de fețe indexate

O reprezentare mai utilă și mai simplă este setul de fețe indexate . [7] Un set de fețe indexate stochează rețeaua în două matrice . Primul conține toate vârfurile indexate de un număr (de obicei numai într-o matrice liniară). Pentru fiecare vârf sunt stocate atributele sale, adică cel puțin poziția sa în spațiu, dar frecvent și alte informații, cum ar fi un vârf normal , și, eventual, unele atribute care sunt necesare în scopuri particulare, cum ar fi redarea . A doua matrice este o listă de fețe care conține cel puțin o listă de indici, în care fiecare index se referă la matricea de vârfuri.

Structură de date bazată pe margini

Principiul structurii de date bazate pe margini este reprezentarea conectivității prin memorarea explicită a modului în care marginile se raportează între ele. [7] Pentru fiecare față a rețelei, stocăm pur și simplu un pointer doar pe una dintre marginile sale. În mod similar, este stocat doar un singur indicator către o singură margine pentru fiecare vârf. Dacă dorim următoarea margine din bucla de margine [13] care definește o față, vom urmări pur și simplu un indicator de la marginea curentă. Drept urmare, putem cercula o față, vizitând toate marginile acesteia, chiar dacă fața are doar un indicator către una dintre ele. Deoarece reprezentările pe bază de margine se bazează pe margini care cunosc fețele lor incidente, doar colectoare sunt , de obicei reprezentabile folosind aceste structuri de date.

Structura de date a marginilor înaripate

O margine înaripată este o margine orientată care leagă două vârfuri. Pentru fiecare dintre cele două bucle ale feței , are două indicatoare către marginile ulterioare, atât în ​​sensul acelor de ceasornic, cât și în sens invers acelor de ceasornic. Din păcate, reprezentarea marginii înaripate este puțin complicată și are un alt defect: marginea în sine este bidirecțională, dar marginea înaripată este orientată. Dacă vrem să trecem de la o margine la alta, indicatorul pe care trebuie să-l folosim depinde de orientarea marginii. Vezi lucrarea lui Bruce G. Baumgart pentru mai multe detalii. [14]

Structura de date pe jumătate

Reprezentarea pe jumătate a muchiei are două reprezentări ale unei muchii date. [7] Jumătățile de margine sunt în perechi și fiecare element al perechii reprezintă marginea din punctul de vedere al unuia dintre cei doi poligoane care împart marginea. [7] Prin urmare, nu există nicio ambiguitate. Fiecare jumătate de margine are un următor următor, care indică marginea următoare din bucla care corespunde feței sale. Pur și simplu urmărind următorii indicatori, putem vizita toate marginile din bucla de margine a unei fețe.

Formate de fișiere pentru ochiuri

Unele formate de fișiere care stochează informații despre mesh sunt după cum urmează:

Notă

  1. ^ ( IT ) Francesco Siddi, Grafică 3D cu Blender , Apogeo, 25 iunie 2014, ISBN 9788850333141 . Adus pe 3 martie 2018 .
  2. ^ ( IT ) Giuseppe Ragazzini, Il Ragazzini 2017. Dicționar englez-italian, italian-englez. Cu conținut digital , Zanichelli, 1 iunie 2016, ISBN 9788808737373 . Adus pe 3 martie 2018 .
  3. ^ mesh - Dicționar WordReference Engleză-Spaniolă , la www.wordreference.com . Adus pe 3 martie 2018 .
  4. ^ a b c ( EN ) Mario Botsch, Leif Kobbelt și Mark Pauly, Polygon Mesh Processing , prima ediție, AK Peters / CRC Press, 9 august 2010, ISBN 9781568814261 . Adus pe 3 martie 2018 .
  5. ^ a b c d e f g h i j ( EN ) Fabio Ganovelli, Massimiliano Corsini and Sumanta Pattanaik, Introduction to Computer Graphics: A Practical Learning Approach , 1st ed., Chapman and Hall / CRC, 22 octombrie 2014, ISBN 9781439852798 . Adus pe 3 martie 2018 .
  6. ^ a b c d e ( EN ) John F. Hughes, Andries Van Dam și Morgan Mcguire, Computer Graphics: Principles and Practice , ed. a III-a, Addison-Wesley Professional, 28 februarie 2009, ISBN 9780321399526 . Adus pe 4 martie 2018 .
  7. ^ a b c d e f g ( EN ) Jakob Andreas Baerentzen, Jens Gravesen și Francois Anton, Guide to Computational Geometry Processing: Foundations, Algorithms, and Methods , Springer-Verlag New York Inc, 31 mai 2012, ISBN 9781447140740 . Adus pe 4 martie 2018 .
  8. ^ ( IT ) Werner Stefano Villa, Autodesk AutoCad 2017. Ghid complet pentru arhitectură, mecanică și proiectare , Tecniche Nuove, 23 iunie 2016, ISBN 9788848131360 . Adus pe 3 martie 2018 .
  9. ^ Francesco Siddi, Grafică 3D cu Blender .
  10. ^ (EN) Jakob Andreas Baerentzen, Jens Gravesen și Francois Anton, Ghid de procesare a geometriei computaționale: fundații, algoritmi și metode , Springer-Verlag New York Inc, 31 mai 2012, ISBN 9781447140740 . Adus pe 4 martie 2018 .
    "O formă este o varietate dacă un patch suficient de mic este homeomorf pentru un disc." .
  11. ^ Walter Maraschini și Mauro Palma, Enciclopedia Matematicii , MZ, Ediție specială pentru Corriere della Sera, Garzanti, 2014.
    «Topologia constă în studiul proprietăților figurilor și a formelor geometrice care rămân neschimbate atunci când sunt supuse unor deformări continue, care apar fără„ rupere ”,„ suprapunere ”,„ lipire ”și„ duplicări ”. În termeni mai puțin intuitivi, este studiul proprietăților figurilor geometrice ale planului și ale spațiului care rămân invariante sub transformări biunivoce și bicontinue, numite homeomorfisme sau transformări topologice, adică transformări care mențin, chiar și invers, proprietăți ale „convergenței”. și „conexiune” „» .
  12. ^ (EN) Mario Botsch, Leif Kobbelt și Mark Pauly, Polygon Mesh Processing , prima ediție, AK Peters / CRC Press, 9 august 2010, ISBN 9781568814261 . Adus pe 4 martie 2018 .
    „Un vârf dintr-o plasă triunghiulară se numește regulat dacă valența sa (adică, numărul său de vârfuri învecinate) este 6 pentru vârfurile interioare sau 4 pentru vârfurile limită. În ochiurile patrulatere, valențele regulate sunt 4 și respectiv 3. [...] Structura globală a unei rețele poate fi clasificată ca fiind neregulată, semiregulară, foarte regulată sau regulată. [...] Într-o rețea obișnuită, toate vârfurile sunt regulate. O rețea obișnuită poate fi reprezentată compact ca o matrice 2D care poate fi utilizată pentru redarea eficientă (așa-numita imagine de geometrie). " .
  13. ^ Edge Loop - CGWiki , pe wiki.cgsociety.org , 24 martie 2011. Accesat la 4 martie 2018 (arhivat din original la 24 martie 2011) .
  14. ^ Bruce G. Baumgart, Weded Edge Polyhedron Representation , PN, 1972. Accesat la 4 martie 2018 .

Elemente conexe

Informatică Portal IT : accesați intrările Wikipedia care se ocupă cu IT