następny punkt » |
W fazie modelowania tworzone są modele poszczególnych obiektów oraz scena zawierająca te obiekty. Scena ta jest podstawą generowania obrazu na ekranie. Każdy obiekt najczęściej jest generowany w swoim układzie współrzędnych i dopiero w fazie tworzenia sceny jest przenoszony do wspólnego układu współrzędnych sceny określanego często jako układ współrzędnych świata.
Znanych jest wiele różnych metod modelowania obiektów trójwymiarowych - każda z nich ma swój obszar stosowania. Dalej ograniczymy się do omówienia najczęściej stosowanych metod.
Bodaj najprostszą metodą modelowania obiektów jest metoda szkieletowa (drutowa). W metodzie tej określa się jedynie szkielet bryły, a więc definiuje się położenie wierzchołków i krawędzi występujących w obiekcie. Przykłady modeli szkieletowych pokazano na rysunku IX.1. Model szkieletowy nie zawiera informacji o powierzchni bocznej bryły ani tym bardziej o jej wnętrzu. Dzięki swej prostocie modele szkieletowe umożliwiają szybkie tworzenie obiektów 3D o wymaganych kształtach i są często stosowane w fazie wstępnej definiowania bryły.
![]() | ![]() |
Rys. IX.1. Przykładowe modele szkieletowe
Model szkieletowy stanowi często podstawę dla utworzenia bardziej szczegółowego modelu, w którym opisuje się powierzchnię zewnętrzną obiektu. Metody, które to umożliwiają, są określane jako metody Brep (ang. boundary representation).
W większości zastosowań do opisania powierzchni zewnętrznej wykorzystuje się reprezentację wielokątową - powierzchnia boczna bryły jest opisywana za pomocą zbioru wielokątów. W przypadku takich brył jak wielościany reprezentacja ta jest w pełni naturalna. W przypadku gdy powierzchnie boczne nie są płaskie dokonuje się aproksymacji wielokątowej tych powierzchni.
W niektórych zastosowaniach, gdzie zależy nam na jak największym realizmie generowanych obrazów, powierzchnie boczne złożonych obiektów opisuje się za pomocą odpowiednich powierzchni krzywoliniowych (na przykład powierzchni Béziera albo powierzchni NURBs (ang. nonuniform rational B-splines)).
Na rysunku IX.2 pokazano przykład aproksymacji powierzchni walca za pomocą wielokątów. Pokazano również dwie reprezentacje powierzchni kuli (proszę się zastanowić nad sposobami uzyskania takich reprezentacji kuli oraz nad różnicami między tymi reprezentacjami).
![]() |
Rys. IX.2. Przykłady wielokątowej aproksymacji powierzchni: a) walec, b) dwa sposoby aproksymacji kuli
W praktyce najczęściej do aproksymacji wykorzystuje się trójkąty. Wynika to z faktu, że każdy trójkąt jednoznacznie wyznacza powierzchnię na której leży. Liczba wielokątów (trójkątów) aproksymujących złożony obiekt może być bardzo duża. Niczym wyjątkowym nie są przypadki aproksymowania powierzchni za pomocą kilkuset tysięcy trójkątów. Im więcej szczegółów zawiera powierzchnia boczna obiektu, tym więcej trójkątów potrzeba do jej aproksymacji. Należy jednak pamiętać o konieczności zachowania kompromisu między dokładnością modelowania powierzchni a czasem potrzebnym do jej renderowania - im więcej wielokątów tym dłuższy czas renderingu.
Inny sposób modelowania obiektów 3D zapewnia tak zwana metoda CSG (ang. constructive solid geometry). W metodzie tej zakłada się, że dostępny jest zestaw podstawowych brył (tak zwanych prymitywów), z których można tworzyć bryły bardziej złożone. Wykorzystuje się przy tym operację łączenia brył ze sobą, operację znajdowania części wspólnej brył oraz operację odejmowania brył. Na rysunku IX.3 pokazano przykłady ilustrujące działanie tych operacji.
![]() |
Rys. IX.3. Przykłady operacji wykonywanych w metodzie CSG. (a) Dodawanie brył, (b) odejmowanie brył, (c) część wspólna brył
Kolejna metoda modelowania brył określana jest jako metoda przesuwania (ang. sweeping). W metodzie tej definiowany jest przekrój bryły, który następnie jest przesuwany wzdłuż zadanej ścieżki. W czasie przesuwania jest wyznaczana powierzchnia boczna bryły. Ścieżka może być linią prostą albo krzywą (na przykład krzywą Béziera). W czasie przesuwania przekrój bryły może się zmieniać. W szczególnym przypadku, gdy przekrój jest obracany wokół pewnej osi możliwe jest tworzenie brył obrotowych. Na rysunku IX.4 pokazano przykład ilustrujący działanie metody.
![]() |
Rys. IX.4. Modelowanie metodą przesuwania
W niektórych zastosowaniach wykorzystuje się takie metody modelowania, które umożliwiają reprezentowanie całej bryły a nie tylko jej powierzchni zewnętrznej. Klasyczną metodą w tym zakresie jest metoda wokselowa (objętościowa). W metodzie tej wykorzystuje się pojęcie woksela. Woksel jest to elementarna objętość w przestrzeni 3D, reprezentowana najczęściej jako najmniejszy sześcian, którym operujemy w fazie modelowania. Woksel można traktować jako komórkę rastra przestrzennego - przestrzenny odpowiednik piksela na płaszczyźnie. Modelowanie obiektu 3D sprowadza się do określenia zbioru wokseli należących do obiektu.
Metoda wokselowa jest bardzo wymagająca jeśli chodzi o pojemność pamięci potrzebnej do zapamiętania informacji o obiekcie. Załóżmy dla przykładu, że ograniczamy precyzję modelu do sześcianu o boku 512 jednostek. Oznacza to, że musimy liczyć się z koniecznością zarezerwowania miejsca w pamięci dla przechowania informacji o 5123 = 227 wokselach (a nie jest to wcale duża rozdzielczość w stosunku do potrzeb). Jednak niewątpliwą zaletą metody jest to, że z każdym wokselem można związać dodatkową informację w postaci odpowiednich atrybutów. Uzyskujemy w ten sposób model, który dostarcza informację nie tylko o tym, które fragmenty przestrzeni należą do obiektu 3D, ale również o innych cechach poszczególnych fragmentów przestrzeni. Tworząc na przykład model wokselowy jakiejś części ciała człowieka można z każdym wokselem związać informację o tym czy w danym miejscu jest tkanka miękka, tkanka kostna, naczynie krwionośne itd. Mając taki model można z kolei wyznaczać różne przekroje albo odtwarzać powierzchnie zewnętrzne różnych narządów wewnętrznych itd.
Uzyskane modele brył mogą być poddawane różnego przekształceniom geometrycznym: przesuwaniu, obrotom, skalowaniu itd. Wykorzystuje się przy tym najczęściej koncepcję współrzędnych jednorodnych, podobnie jak na płaszczyźnie. Z tym, że teraz każdy punkt jest reprezentowany za pomocą czterech współrzędnych (x,y,z,1). Macierze dla podstawowych przekształceń maja następujące postacie.
Przesunięcie o wektor (tx, ty, tz):
![]() |
Skalowanie ze współczynnikami skalowania Sx, Sy, Sz:
![]() | ![]() |
W przypadku obrotów są trzy macierze - odpowiednio dla obrotu wokół osi x, wokół osi y i wokół osi z. W prawoskrętnym układzie współrzędnych dodatni kąt obrotu oznacza obrót w kierunku przeciwnym do ruchu wskazówek zegara jeżeli patrzy się wzdłuż osi w kierunku początku układu współrzędnych.
Obrót wokół osi x:
![]() |
Obrót wokół osi y:
![]() |
Obrót wokół osi z:
![]() |
Możliwe jest również składanie przekształceń i wyznaczanie macierzy wypadkowej dla określonego ciągu przekształceń. W szczególności można w ten sposób znaleźć macierz obrotu wokół innej osi niż jedna z osi układu współrzędnych.
Poza podstawowymi przekształceniami geometrycznymi możliwe jest stosowanie różnych modyfikacji obiektów, takich jak na przykład skręcanie, wyginanie, przewężanie, rozciąganie itd. Przykłady takich modyfikacji pokazano na rysunku IX.5.
![]() ![]() | ![]() | ![]() |
Rys. IX.5. Przykłady modyfikacji obiektów 3D
Bardziej złożone obiekty mogą być modelowane z wykorzystaniem koncepcji hierarchii. Elementy składowe obiektu mogą być łączone w jedną wspólną strukturę. Wtedy zastosowanie transformacji do jednego obiektu przenosi się na obiekty z nim związane.
Zwróćmy w tym miejscu uwagę na to, że w fazie modelowania poszczególne obiekty mogą być tworzone w swoich układach współrzędnych. Przy tworzeniu bardziej złożonego obiektu, konieczne jest przeniesienie obiektów składowych do jednego wspólnego układu współrzędnych. Na przykład, przy modelowaniu samochodu nadwozie, podwozie i koła mogą być modelowane w zupełnie niezależnych układach. Jednak przy tworzeniu modelu całego samochodu poszczególne elementy muszą być połączone w jednym wspólnym układzie współrzędnych. Zmiana układu współrzędnych polega na wykonaniu ciągu przekształceń geometrycznych: obrotów, przesunięć i skalowania.
Etap modelowania obiektów dostarcza informacji o kształcie obiektu. Przed przejściem do fazy renderingu konieczne jest jeszcze określenie atrybutów bryły, które umożliwią poprawny rendering. W szczególności trzeba określić kolor obiektu, rodzaj materiału z jakiego jest wykonany obiekt, rodzaj tekstury jaką mają być pokryte powierzchnie boczne obiektu itp. Rodzaj materiału decyduje o właściwościach refleksyjnych powierzchni (czasami również o właściwościach emisyjnych powierzchni). Pozwala to modelować obiekty o powierzchniach pochłaniających, matowych, lśniących, błyszczących czy odbijających zwierciadlanie. Dodajmy od razu, że końcowy widok obiektu będzie dodatkowo zależał od jego oświetlenia, kąta obserwacji itd.
następny punkt » |