Modelowanie obiektów 3-D stosowane w grafice komputerowej

From Obrona

Revision as of 19:35, 9 July 2006 by Magda (Talk | contribs)
(diff) ←Older revision | view current revision (diff) | Newer revision→ (diff)

W grafice 3D stosuje się kilka różnych metod modelowania (reprezentacji) obiektów przestrzennych:

  • modele szkieletowe,
  • modele w postaci równań matematycznych,
  • konstrukcyjna geometria bryłowa,
  • modele na bazie geometrii fraktalnej,
  • inne modele.

Contents

Modele szkieletowe

Modele szkieletowe (wireframe representation) operują na trzech podstawowych pojęciach:

  • wierzchołek (vertex),
  • krawędź (edge),
  • ściana (polygon surface).

Model szkieletowy to zbiór wyerzchołków, krawędzi i ścian (wiloboków) połączonych tak, że każda krawędź jest wspólna dla przynajmniej dwóch ścian (kryterium to nie może zostać spełnione w przypadku powierzchni otwartych).

Aby uzyskać model szkieletowy można przetworzyć opisany w postaci równania matematycznego model powierzchni obiektu lub też przy pomocy interakcji z narzędziami do modelowania obiektów np. z brył geometrycznych. Możliwa jest także akwizycja danych o powierzchni obiektu (próbkowanie) przy pomocy skanerów 3D.

Podział modelu matematycznego (np. z postaci równania parametrycznego) może nastąpić w sposób jednorodny (równe "odstępy" uzyskanych wierzchołków, podział na takie same wieloboki) lub niejednorodny. Triangulacja niejednorodna wymaga złożonego aparatu matematycznego, który pozwoli na dobranie rozmiaru utworzonych w wyniku triangulacji powierzchni trójkątów.

Triangulacja niejednorodna prowadzi do uzyskania modelu o znacznie mniejszej niż w przypadku podziału jednorodnego liczby wynikowych trójkątów.

Metody zapisu danych modeli szkieletowych

  • Reprezentacja bezpośrednia opiera się na opisie każdej z powierzchni (ścian) zestawem wspójrzędnych wierzchołków składających się na ścianę. Reprezentacja taka prowadzi do składowania nadmiarowych informacji (w przypadku bryły złożonej z trójkątów każdy wierzchołek współdzielony jest przez przynajmniej trzy ścianki). Opis taki zwiększa także trudność modyfikacji obiektu (następuje konieczność odnalezienia wszystkich duplikatów przesuwanego punktu) a także wpływa na kilkukrotne rysowanie tej samej trawędzi w przypadku reprezentacji siatkowej (wireframe).
  • Reprezentacja przy pomocy wskaźników na listę wierzchołków (reprezentacja listą wierzchołków i listą indeksów wierzchołków). Mniejsza ilość danych pociąga za sobą z jednej strony łatwiejszą modyfikację wierzchołków (każdy występuje tylko raz), z drugiej prowadzi do utrudnionego odnajdywania wspólnych krawędzi i prowadzi do ich dwukrotnego rysowania.
  • Reprezentacja przy pomocy wskaźników na listę krawędzi - do listy wierzchołków dochodzi lista krawędzi związanych z wierzchołkami, do której to listy prowadzi dopiero opis ściany. Metoda ta likwiduje trudność w wypełnianiu ścian i dwukrotne rysowanie krawędzi przy projekcji siatki.

Modele matematyczne

Istnieje możliwość modelowania obiektów w postaci równań analitycznych przy pomocy:

  • równań uwikłanych
    f(x, y, z) = 0
  • równań parametrycznych
    x = fx (u,v)
    y = fy (u,v), 0 <= u, v <= 1
    z = fz (u,v)

Równania matematyczne w postaci uwikłanej

Dla pow. drugiego stopnia (kwardyki) reprezentowane są jako: File:PWr - kwadryka, rownanie (2).png

File:PWr - kwadryka, rownanie.png

Zaletą reprezentacja za pomocą kwadryk jest łatwość obliczania normalnych do powierzchni, punktów przecięcia powierzchni z prostą, testowała położenia punktu na powierzchni/poza nią, łatwe obliczanie przecięcia kwadryk między sobą. Do wad należą: trudna generacja punktu na powierzchni, trudna generacja fragmentu powierzchni (np. wycinka sfery).

Można opisywać powierzchnie także równaniami wyższego stopnia, np. trzeciego

Modele parametryczne

x = fx (u,v), umin <= u <= umax
y = fy (u,v), vmin <= v <= vmax
z = fz (u,v)

Sfera o środku (0,0,0):

z(u,v) = r cos(u)
y(u,v) = r sin(u) sin(2v)
x(u,v) = r sin(u) cos(2v), 0 <= u, v <= 1
  • łatwa generacja punktu na powierzchni
  • łatwa generacja wycinka powierzchni
  • brak bezpośredniej możliwości opisania powierzchni, której kształt sobie wyobrażamy

Krzywe parametryczne w 3D

x(u) = fx (u)
y(u) = fy (u), umin <= u <= umax
z(u) = fz (u)
  • trudność opisania krzywej wielomianowej, której kształt soie wyobrażamy
  • niski stopień wielomianu -> mała elastyczność
  • wysoki stopień wielomianu -> trudność w opanowaniu oscylacji funkcji, rosnąca złożoność obliczeniowa
  • trudność w doborze współczynników wielomianu do sterowania krzywą

Istnieje szereg podejść

  • krzywe trzeciego stopnia (12 parametrów)
  • krzywa Hermite'a
    • opis wielomianami 3. stopnia przy pomocy
      • dwóch punktów krzywej (końców)
      • wektorów stycznych do krzywej w punktach końcowych (pochodnych)
    • sterowanie następuje przy pomocy zmiany parametrów wektorów stycznych
    • trudność wysterowania wymaganej krzywizny
  • krzywe Beziera
    • sterowanie interaktywne przy pomocy n+1 punktów kontrolnych (stopień wielomianu zależny od liczby pkt. kontrolnych)
    • krzywa opisana układem równań parametrycznych (równania Bersteina)
    • przemieszczenie jednego punktu kontorlnego zmienia kształt całej krzywej (wada!)
  • krzywe B-sklejane (B-splines)
    • eliminują wadę krzywych Beziera
    • podział krzywej na segmenty
    • podział na krzywe jednorodne (węzły w jednakowych odstępach) i niejednorodne
    • stopień wielomianów jest dobierany
    • projektant kontorluje początek, koniec i punkty kontrolne
    • zmiana położenia pkt. kontrolnego zmienia lokalnie kształt krzywej
    • łatwość tworzenia krzywych gładko zamkniętych
    • wzory opisujące krzywe niejednorodne są wyjątkowo skomplikowane, istnieją jednak algorytmy numeryczne przyspieszające obliczenia

Dzięki krzywym parametrzycznym możliwe jest tworzenie powierzchni Beziera, B-sklejanych i NURBS. W przypadku powierzchni, tworzona jest siatka punktów kontorlnych opisujących powierzchnię, na której rozpinana jest ona. Podobnie jak w przypadku krzywych - deformacja punktu siatki działa globalnie na kształt siatki Beziera i lokalnie w przypadku powierzchni B-sklejanych i NURBS (Non-Uniform Rational B-Spline).

Konstrukcyjna geometria bryłowa

Solid modelling (volume modelling) to technika, w której dokonuje się jednoznacznego opisu brył (w przeciwieństwie do opisu wyłacznie powierzchni lub przybliżonego opisu siatkowego). Taki opis pozwala na komputerową obróbkę modelu np. na potrzeby symulacji.

Konstrukcyjną geometrię bryłową stosuje się m.in. w zastosowaniach CAD, inżynierskich, szybkiego prototypowania (rapid prototyping), testów medycznych i wizualizacji (np. wyników eksperymentów).

Wsparciem dla konstrukcyjnej geometrii bryłowej są specjalne narzędzia przeznaczone do projektowania brył poprzez tłoczenie i podział obiektów lub poprzez modyfikację powierzchni i "wypełnienie" powstałych powierzchni zamkniętych.

Modele fraktalne

Uzyskiwane np. przy pomocy kwaternionów (ogólniejsza liczba zespolona).

Personal tools