Transcript
Page 1: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Politechnika WrocławskaWydział Elektroniki

Instytut Cybernetyki Technicznej

KIERUNEK: Automatyka i Robotyka (AiR)SPECJALNOSC: Robotyka (ARR)

PRACA DYPLOMOWAMAGISTERSKA

System modelowania obiektów dla potrzebwizualizacji sceny robota

AUTOR: PROWADZACY PRACE:Przemysław Jakwert dr inz. Bogdan Kreczmer, I-6

OPIEKUN:dr inz. Bogdan Kreczmer, I-6

OCENA PRACY:

Wrocław 2004

Page 2: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki
Page 3: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Rozdział 1

Wstep

Celem pracy było stworzenie systemu do trójwymiarowego modelowania i symulacji urzadzenrobotycznych. Dzieki mozliwosciom oferowanym dzisiaj przez producentów sprzetu graficz-nego, wizualizacja trójwymiarowa stosowana jest niemal we wszystkich dziedzinach nauki iprzemysłu - pozwala znacznie lepiej ocenic wyglad modelowanego obiektu. W dziedzinie ro-botyki moze oszczedzic duzo wysiłku i kosztów, zwiazanych z projektowaniem zautomatyzo-wanego srodowiska. Aplikacja Gwell (Graphical workshop for modelling and simulating robotenvironments) została stworzona własnie do tego celu. Pozwala w dosyc łatwy i intuicyjnysposób budowac złozone sceny, wykorzystujac do modelowania otwartych łancuchów kinema-tycznych dowolne bryły geometryczne. Jadro aplikacji stanowi biblioteka VIONA (autorstwaB. Kreczmera), implementujaca kinematyczna strukture drzewiasta przystosowana do opera-cji na elementach trójwymiarowych. W celu wizualnego poprawienia jakosci modelowanychobiektów, aplikacja Gwell oferuje szereg dodatkowych efektów, takich jak: zmienne warunkioswietlenia, definiowanie własciwosci materiału, nakładanie tekstur, mgła czy przezroczystosc.Aby zmaksymalizowac szybkosc i jakosc wyswietlania edytowanych scen, wykorzystano bi-blioteke graficzna OpenGL firmy Silicon Graphics. Interakcje z uzytkownikiem zrealizowanow oparciu o biblioteke Qt firmy Trolltech.

Aplikacje Gwell podzielono na dwa moduły: Modeler i Layout. Pierwszy z nich wspo-maga modelowanie brył złozonych, rozumianych jako kompletne elementy sceny. Umozliwianadawanie im wszystkich efektów wizualnych oraz własnosci kinematycznych. Moduł Layoutsłuzy do budowy finalnej sceny ze wspomnianych elementów oraz w przyszłosci bedzie umoz-liwiał symulacje całego srodowiska robotycznego (obecnie brak odpowiednich mechanizmóww bibliotece VIONA).

W pracy przedstawiono krótki opis najwazniejszych technik modelowania obiektów trój-wymiarowych, poczawszy od najprostszych do najbardziej złozonych, dostepnych tylko w naj-bardziej rozbudowanych pakietach graficznych. Celem wprowadzenia czytelnika w standardyi róznorodnosc aplikacji 3D, zamieszczono przeglad dostepnych rozwiazan. Opisujac kolejnepakiety, połozono nacisk na ukazanie ich zróznicowania pod wzgledem zastosowania, moz-liwosci modelowania, zrealizowanego interfejsu i jakosci generowanych obrazów. W kolej-nym rozdziale zamieszczono opis mechanizmu modelowania zaimplementowanego w biblio-tece VIONA z dokładnym jego wyjasnieniem i przykładami. Sposób, w jaki wykorzystanostruktury dostepne we wspomnianej bibliotece, opisany jest w rozdziale „Opis zrealizowanegosystemu modelowania”. Znajduja sie tam wszystkie elementy, które musiały zostac wprowa-dzone, aby aplikacja Gwell pozwalała na szybkie i efektowne modelowanie. Dokładny opis orazinstrukcja posługiwania sie modułami Modeler i Layout zostały zawarte w rozdziale zatytuło-wanym „Interfejs aplikacji Gwell”. Aby pokazac mozliwosci, oferowane przez zrealizowanysystem, zbudowano w nim (w skali 1:1), model Laboratorium 010, znajdujacego sie w piwnicybudynku C-3 Politechniki Wrocławskiej. Rozdział ósmy zawiera przykładowe obrazy tej sceny.

1

Page 4: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

2 ROZDZIAŁ 1. WSTEP

Page 5: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Rozdział 2

Cel pracy i załozenia

W ramach pracy zostac ma zrealizowany system modelowania sceny roboczej. Powinien onskładac sie z aplikacji pozwalajacej tworzyc bryły złozone. Powinny one byc podstawa dlanastepnej aplikacji umozliwiajacej z ich wykorzystaniem modelowanie sceny roboczej. Repre-zentacja modeli brył ma zostac zrealizowana w oparciu o struktury z biblioteki VIONA.

Przy wizualizacji sceny roboczej powinno zostac zapewnione uzyskanie wszystkich pod-stawowych efektów, tzn. oswietlenie, cienie, mgła itp. Dla kazdego z tworzonych obiektówpowinno byc mozliwe nałozenie tekstury. Aplikacje powinny równiez zapewnic mozliwoscgenerowania interfejsów do sterowania obiektami, o ile odpowiednie struktury zostana udo-stepnione w bibliotece VIONA.

3

Page 6: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4 ROZDZIAŁ 2. CEL PRACY I ZAŁOZENIA

Page 7: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Rozdział 3

Techniki modelowania obiektów 3D

Obecnie mamy do dyspozycji wiele technik modelowania i reprezentacji obiektów przestrzen-nych, oferujacych zróznicowana szybkosc działania, dokładnosc i stopien „gładkosci” modelu.Ponizej została przedstawiona krótka charakterystyka tych metod poczawszy od najprostszychdo najbardziej zaawansowanych, dostepnych w profesjonalnych aplikacjach 3D.

• Modelowanie za pomoca brył elementarnych - najprostsza z technik modelowania.Obiekt buduje sie z gotowych, predefiniowanych, elementów składajacych sie ze stałejliczby scian i krawedzi równiez o stałej długosci. Zmianie moga ulegac jedynie trans-formacje wierzchołków, realizowane za pomoca macierzy translacji, rotacji, skali, itp.[8]

• Modyfikowanie pojedynczych scian, krawedzi i wierzchołków stosowane do modeli3D, w których wszystkie krawedzie stanowia linie proste, a sciany reprezentowane saprzez płaskie, wypukłe obiekty geometryczne. Otrzymujemy wtedy reprezentacje obiektuw postaci siatki. Mozliwa jest wówczas np. zmiana długosci krawedzi, rozdzielenie nadwie osobne czy łaczenie. W przypadku scian mozliwe jest odwrócenie sciany przód/tył,wszelkie operacje skalowania, obrotu czy pochylenia oraz usuwanie i rozdzielanie. Jest tostosunkowo prosta technika modelowania, ze wzgledu na mała złozonosc obliczeniowanadaje sie dobrze do wizualizacji w czasie rzeczywistym. W przypadku jednak zaim-plementowania interakcji z uzytkownikiem w programie edycyjnym, porównywalna dozaawansowanej edycji krzywych.

• Modelowanie sferyczne - technika ta stanowi raczej efektowny dodatek niz standard wmodelowaniu. Wychodzi z załozenia, ze dowolny obiekt mozna reprezentowac za po-moca dowolnej ilosci, róznej skali i wielkosci, sfer. W wielu aplikacjach mozna znalezc,przewaznie w postaci wtyczek, moduły posrednio wykorzystujace te technike oferujacenp. rysowanie tzw. blobów.

• Krzywe Béziera - reprezentacja powierzchni za pomoca kolejnych segmentów, bedacychtrójwymiarowymi krzywymi Béziera. W mniej zaawansowanych aplikacjach stosowanesa krzywe kubiczne (stopnia 3), natomiast jezeli chcemy uzyskac wyzsza klase gładkoscimodelowanej powierzchni nalezy uzyc krzywych wyzszych stopni [9].Bezposrednia obsługe tej techniki oferuje m.in. biblioteka OpenGL [27] udostepniajactzw. ewaluatory: pojedynczy segment krzywej dowolnego stopnia tworzy sie za pomocafunkcji glMap1*(), a kolejne punkty tego segmentu przekazywane sa do silnika renderu-jacego za pomoca funkcji glEvalCoord1f() [10].Modelowanie za pomoca krzywych Béziera jest szybkie i wygodne, niektóre aplikacjestosuja je jako główny sposób definiowania geometrii (np. Shade).

5

Page 8: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

6 ROZDZIAŁ 3. TECHNIKI MODELOWANIA OBIEKTÓW 3D

• NURBS (Nonuniform Rational B-Splines) - „krzywe sklejania typu B” lub „niejedno-rodne wymierne krzywe giete”. Technika ta jest pewnym matematycznym uogólnieniemmodelowania za pomoca krzywych Béziera - nie interpoluje punktów kontrolnych, jestzawarta w ich otoczce wypukłej [9]. Oprócz samych punktów kontrolnych krzywej, wy-maga przechowywania dodatkowych informacji o wadze tych punktów. Technika ta dajebardzo gładkie i precyzyjne odwzorowanie powierzchni przy równoczesnej prostocie mo-delowania i do niedawna uznawana była za najlepsza reprezentacje obiektów 3D.Biblioteka OpenGL (a dokładnie towarzyszaca jej biblioteka GLU) udostepnia specjalnyobiekt ewaluatora GLUnurbsObj i funkcje do rysowania krzywych NURBS: gluBeginCurve(),gluNurbsCurve() i gluEndCurve() [10].

• Powierzchnie rekurencyjnie podziałowe (Subdivision Mesh) to najnowsza i najbardziejefektowna ze wszystkich dotychczasowych technik. Wykorzystano ja do zbudowania po-staci Golluma i innych stworzen z filmu Władca Pierscieni. Matematycznie jest to algo-rytm przyblizania krzywych i powierzchni gietych poprzez łamane kontrolne ich kolej-nych podziałów [9]. Technika ta jest stosunkowo nowa, najbardziej rozwiniete narzedziado jej stosowania oferuje obecnie pakiet Maya [22]. Jak na razie nie ma dla niej bezpo-sredniego wsparcia w bibliotekach graficznych typu OpenGL.

Na koniec warto jeszcze wspomniec o technice modelowania niezaleznej od sposobu re-prezentacji bryły - modelowaniu szkieletowym. Ten sposób budowy obiektów opiera sie natworzeniu łancuchów kinematycznych z tzw. „kosci”, stanowiacych kolejne ogniwa struktury.Kosci nie egzystuja jako fizyczna czesc modelu, nie posiadaja geometrii - sa tylko wirtualnymszkieletem, który dopiero mozna „obudowywac” w bryły geometryczne. Technika ta znalazłaogromne zastosowanie w animacji postaci ze wzgledu na bardzo realistyczny efekt, łatwoscsterowania i rozbudowy takiego obiektu. Bardzo ciekawa jest mozliwosc przeniesienia goto-wego szkieletu, wraz z cała sekwencja animacji, do innego obiektu - mozna wtedy na przykładanimowac postac ludzka jak kota.

Page 9: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Rozdział 4

Przeglad znanych rozwiazan

Niniejszy rozdział zawiera przeglad najbardziej popularnych i zaawansowanych aplikacji domodelowania złozonych obiektów trójwymiarowych. Warto tutaj wspomniec, ze oprócz dro-gich wyspecjalizowanych stacji graficznych przeznaczonych do zastosowan High-End, najcze-sciej stosowana do niedawna platforma w grafice 3D były komputery Macintosh firmy Applez systemem Mac OS. Wraz z nadejsciem systemów Windows z rodziny NT, firma Microsoftprzejeła znaczna czesc producentów i uzytkowników zaawansowanego oprogramowania 3D.Dzisiaj nie ma własciwie wiekszej aplikacji, która nie byłaby dostepna na platforme tego pro-ducenta, a czesto niestety rozwijana jest tylko i wyłacznie na niej. Wielu specjalistów z tejdziedziny wiaze duze nadzieje z systemem Linux, czego wyrazem moga byc bardzo pochlebneopinie doswiadczonych grafików na temat pakietu Blender [5]. Obiecujacym jest fakt, ze wieluczołowych producentów sprzetu graficznego (takich jak NVidia[25] czy ATI[4]) wyraznie za-interesowało sie ta platforma i opracowuje dla niej sterowniki swoich urzadzen, co pozwoliłow pełni wykorzystac oferowane wsparcie sprzetowe dla oswietlenia, tekstur czy geometrii. Toznaczne przyspieszenie grafiki oraz rosnace zaawansowanie i łatwosc tworzenia aplikacji dlasrodowiska X Window (dzieki takim bibliotekom jak GTK czy Qt[31]) sprawiło, ze systemówmodelowania 3D dla Linuxa o duzych mozliwosciach pojawia sie coraz wiecej. Systemem Li-nusa Torvaldsa powoli zaczał interesowac sie równiez przemysł rozrywkowy (np. dostepna zadarmo kontynuacja słynnego Wolfensteina - „Enemy Territory”, firmy id Software[15]).

Bardziej efektowna komputerowa grafika trójwymiarowa wymaga duzych mocy oblicze-niowych oraz pamieci do przechowywania tekstur i buforów koloru, przezroczystosci, itp. Wzaleznosci od złozonosci sceny i zaawansowania srodowiska projektowego, wymagania aplika-cji rozciagaja sie od minimalnych, np. POV-Ray (Persistence of Vision)[26], który nie posiadainterfejsu graficznego i moze wygenerowac dowolnie złozona scene na komputerze klasy 386 z4MB pamieci RAM do bardzo wysokich np. dla pakietu 3ds max 7[2], w którym prace moznarozpoczac dopiero z procesorem Pentium III 500MHz, 512 MB pamieci RAM i 64MB kartagraficzna, przy czym jest to absolutnie odradzane minimum.

Mozna bez przesady stwierdzic, ze obecnie to własnie trójwymiarowa grafika komputerowa,a szczególnie coraz bardziej zaawansowane gry i przemysł filmowy sa głównym motorem roz-woju sprzetu komputerowego. W niewielu dziedzinach zwiazanych z komputerami tkwi takduzy niedosyt wydajnosci. Szacuje sie, ze za kilka lat grafika 3D bedzie stała na tak wysokimpoziomie, ze nie bedziemy w stanie odróznic wygenerowanego obrazu od zdjecia - juz dzisbywaja z tym problemy.

Przedstawione w tym rozdziale aplikacje stanowia tylko reprezentatywna czesc ogrom-nej ilosci dostepnych, czesto bardzo wyspecjalizowanych produktów oferujacych wyszukaneefekty i narzedzia modelowania.

7

Page 10: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

8 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

4.1 3ds max3ds max firmy Autodesk (Discreet)[2] jest jednym z najwiekszych i chyba najbardziej popular-nym pakietem do pracy z grafika trójwymiarowa. Był jednym z pierwszych programów tegotypu (nazywał sie wówczas 3D Studio), dostepnym dla systemu MS-DOS i praktycznie narzuciłobowiazujace dzis standardy w zakresie wygladu interfejsu i technik tworzenia modeli 3D. Dodzis format zapisu plików starszego 3D Studio dominuje przy wymianie informacji o geometriiobiektów.

3ds max zyskał ogromne zastosowanie nie tylko w przemysle rozrywkowym (bardzo sze-roko stosowany w produkcjach filmowych), ale cieszy sie ogromnym uznaniem wsród archi-tektów, inzynierów i projektantów za sprawa bardzo scisłej integracji z pozostałym oprogramo-waniem firmy Autodesk (AutoCAD, Architectural Desktop, Inventor, Revit). Charakterystycznacecha wszystkich aplikacji Autodesk jest mozliwosc sterowania programem za pomoca komendwpisywanych w dolnym pasku interfejsu - pozwala to zautomatyzowac wiele zmudnych czyn-nosci. Aplikacja dostepna jest wyłacznie na platforme Microsoft Windows.

Ostatnie wersje 3ds max posiadaja duzo znaczacych i wyrózniajacych cech, z których kilkawarto wymienic:

• rendering sieciowy umozliwia dystrybuowanie fragmentów sceny do zrenderowania po-miedzy maszyny znajdujace sie np. w sieci lokalnej danego studia projektowego (w iloscizaleznej od obciazenia danego komputera) i wykonanie na nich odpowiednich obliczen.Wyniki odsyłane sa do głównej jednostki, która składa je w jedna całosc. Takie rozwia-zanie nazywa sie „farma serwerów do renderingu”.

• interaktywny rendering panoramiczny pozwala pracowac ze wszystkimi obiektami scenyna płaskim obrazie bedacym wynikiem obrotu obserwatora wokół własnej osi o 360◦.

• połaczenie w czasie rzeczywistym (ang. live link) z innymi aplikacjami Autodesk - np.kazda modyfikacja modelu w programie AutoCAD automatycznie implikuje odswiezeniesceny w 3ds max.

• rewolucyjna technologia Normal Mapping stworzona do zastosowania w grach. Na obiektyzbudowane z mniejszej ilosci wielokatów nakładane sa mapy o wysokiej rozdzielczosci,dzieki czemu uzyskuje sie efekt duzej gładkosci nawet bardzo prostych kształtów.

• bardzo dopracowany renderer oparty na fizycznych własciwosciach materiałów i oswie-tlenia oraz ogromna ilosc dodatków i wtyczek znacznie rozszerzajacych mozliwosci pro-gramu.

Rysunek 4.2 przedstawia kadr z filmu „Katedra” autorstwa Tomasza Baginskiego (produkcjiPlatige Image[16]), nagrodzonego w 2002 roku główna nagroda na najwiekszych swiatowychtargach grafiki komputerowej Siggraph w kategorii Best Animated Short. Film uzyskał nomi-nacje Amerykanskiej Akademii Filmowej do tegorocznej edycji Oscar-ów w kategorii ShortFilms - Animation.

Page 11: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4.1. 3DS MAX 9

Rysunek 4.1: 3ds max - interfejs.

Rysunek 4.2: 3ds max - kadr z filmu „Katedra” Tomasza Baginskiego.

Rysunek 4.3: 3dsmax - to nie jest zdjecie.

Page 12: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

10 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

4.2 LightWaveLightWave firmy NewTek[21] jest odwiecznym konkurentem 3D Studio a potem 3ds max. Poja-wił sie mniej wiecej w tym samym czasie co produkt Autodesk, równiez dla systemu MS-DOS,ale wprowadził nieco odmienna filozofie pracy z interfejsem. Pod wzgledem mozliwosci sta-wiany jest na równi z 3ds max.

Charakterystyczny dla LightWave-a jest podział pakietu na moduły:

• Modeler słuzacy do modelowania obiektu, zadawania własciwosci materiału i tekstury;

• Layout, w którym odbywa sie budowa finalnej sceny ze stworzonych modeli, ustawianieparametrów oswietlenia i atmosfery, definiowanie ruchu przy tworzeniu animacji;

• Hub - rezydentny, nadrzedny nad pozostałymi, moduł realizujacy komunikacje miedzynimi, np. dynamicznie uaktualniajac w Layoucie obiekt aktualnie edytowany w Modele-rze.

Dzieki takiemu podziałowi aplikacja ma znacznie mniejsze wymagania sprzetowe i z powo-dzeniem pracuje na komputerze z 256MB RAM i karta grafiki z 32MB pamieci (wersja 7.5).Niestety taka budowa utrudnia równiez animacje parametrów obiektu, szczególnie gdy jest ichwiecej. Ale wady te nie przeszkadzaja pakietowi utrzymywac sie stale w czołówce najlepszychaplikacji do tworzenia realistycznych obrazów, a to głównie za sprawa bardzo wydajnych i in-tuicyjnych narzedzi do modelowania pozwalajacych bardzo szybko budowac złozone obiekty.

Kolejnym atutem Lightwave-a jest własny, bardzo efektowny i szybki moduł renderujacyoraz rozbudowany mechanizm tworzenia i animacji obiektów (szczególnie postaci) w oparciuo szkielety kinematyczne. Lightwave, podobnie jak 3ds max, równiez posiada mozliwosc ren-deringu sieciowego, stworzono tez dla niego cała game wtyczek i rozszerzen.

Interfejs Lightwave-a (rysunki: 4.4 i 4.6) maksymalizuje wielkosc obszaru roboczego dlamodelu i wyglada bardzo estetycznie - górne zakładki steruja zawartoscia lewego panelu znarzedziami. Jako jedyny program 3D nie zawiera zadnych ikon, do których niecheci nie kryjaautorzy programu. Dostepny jest zarówno dla Macintosh-y z systemem Mac OS X, jak i dlakomputerów z systemem MS Windows 98+ (wersja 8 tylko dla 2000/XP).

Page 13: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4.2. LIGHTWAVE 11

Rysunek 4.4: LightWave Modeler -interfejs.

Rysunek 4.5: LightWave - przykła-dowy rendering.

Rysunek 4.6: LightWave Layout -interfejs.

Rysunek 4.7: LightWave - przykła-dowy rendering.

Page 14: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

12 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

4.3 MayaSztandarowy produkt firmy Alias[22] to arcydzieło w dziedzinie animacji postaci. Uzyto go wtakich produkcjach jak: Gwiezdne Wojny, Era Lodowcowa, Matrix czy Władca Pierscieni, a sato tylko najwazniejsze. Powoli zdobywał sobie zwolenników i liczne nagrody (w tym Oscar-aw 2003 roku), a obecnie pozostawia w tyle nawet takich liderów jak 3ds max czy LightWave.

Maya jest pakietem, który od poczatku rozwijany był praktycznie w jednym kierunku - wmodelowaniu i animacji ludzi, zwierzat oraz wszelkich innych postaci i wszystkich elementówz nimi zwiazanych, takich jak: włosy, skóra, ubranie czy futro.

Najnowsza, szósta juz, wersja pakietu zawiera moduły:

• Maya Fluid Effects do tworzenia realistycznych efektów takich jak chmury, dym, róznerodzaje mgły, fal na powierzchni wody, ognia, eksplozji czy lawy wulkanicznej;

• Maya Fur do modelowania róznego rodzaju futer i krótkich włosów, zawiera innowacyjnyinterfejs Artisan pozwalajacy nakładac owłosienie na trójwymiarowy obiekt w taki samsposób jak maluje sie pedzlem po zwykłej płaskiej powierzchni;

• Maya Cloth pozwala zamodelowac dowolny rodzaj ubrania i idealnie nałozyc go na po-stac, ubiór dopasowywany jest do ruchu szkieletu i miesni postaci, Maya Cloth posiadabardzo duza biblioteke predefiniowanych elementów okrycia;

• Maya Live to specyficzny moduł pozwalajacy definiowac ruch i ogniskowa kamery; mo-zemy dzieki niemu uzyskac np. efekt krecenia „z reki” albo sledzic zadany obiekt oczymazaby;

• Maya Hair słuzy do modelowania włosów oraz ich zachowania w zaleznosci od warun-ków otoczenia, takich jak wiatr czy deszcz, pozwala oczywiscie tworzyc z nich dowolnefryzury;

Maya posiada bardzo przejrzysty i intuicyjny interfejs (rysunek 4.8). Projektanci skupiajasie ostatnio głównie na modyfikatorach opartych na zasadzie działania pedzla (ang. Brush-Based Technologies), czyli tak jak w przypadku nakładania włosów mozna dodawac efektyczy modelowac obiekt „malujac” po nim. Program jest bardzo dobrze zintegrowany ze znanaaplikacja do obróbki grafiki rastrowej Adobe Photoshop oraz umozliwia sprzetowe generowaniewysokiej jakosci podgladu (przez wykorzystanie OpenGL) co nie jest zbyt czesto spotykane.Maya do generowania finalnych scen uzywa, chyba najlepszego obecnie, renderera RenderManfirmy Pixar[33] i jako jedna z niewielu dostepna jest, oprócz systemów MS Windows i Mac OSX, równiez na platforme Linux i SGI Irix.

Warto podkreslic, ze twórcy zaawansowanych produkcji, takich jak np. Władca Pierscieni(firma Weta Digital[7]), korzystali wyłacznie z Linux-owej wersji aplikacji Maya. Graficy pra-cujacy nad trylogia Matrix (Manex Entertainment[11]) uzywali z kolei tylko wersji dla SGI Irix.Obie grupy projektantów potrzebowały stabilnego i wydajnego systemu, sprawnie zarzadzaja-cego dostepnymi zasobami. Cechy te nie sa charakterystyczne dla systemów firmy Microsoft.

Page 15: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4.3. MAYA 13

Rysunek 4.8: Maya - interfejs.

Rysunek 4.9: Maya - przykładowy rendering.

Page 16: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

14 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

4.4 Cinema 4DPakiet firmy Maxon[3] od dawna ustanowia standardy w dziedzinie animacji dla produkacji te-lewizyjnych. Posiada chyba najwieksza liczbe rozmaitych efektów i rozszerzen ze wszystkichtego typu aplikacji. Zyskał duza liczbe zwolenników dzieki bardzo elastycznemu, dowolniekonfigurowalnemu i łatwemu interfesowi oraz legendarnej juz stabilnosci działania (niewatpli-wie jest to ogromny atut dla uzytkowników systemu MS Windows).

Dziewiata juz wersja tego oprogramowania zawiera zintegrowane moduły (niektóre z nichmoga równiez pracowac niezaleznie z innymi znanymi pakietami do obróbki grafiki 3D takimijak 3ds max, LightWave czy Maya):

• Advanced Render dodatkowy moduł renderujacy, oferujacy bardzo zaawansowane reali-styczne efekty (kosztem czasu generowania);

• MOCCA stworzona specjalnie do animowania postaci i ubioru, zawiera duza bibliotekegotowych modeli ruchu, które mozna zastosowac we własnym projekcie,

• Thinking Particles to bardzo rozbudowany system do tworzenia efektów specjalnychoparty na technologii symulowania zachowania pojedynczych czasteczek, posiada me-chanizm wykrywania kolizji miedzy nimi i pozwala na przykład na symulowania kurzu,odbijajacych sie snopów swiatła czy rozpadu obiektu na drobny piasek, przekształcajacjego sciany w odpowiednio zachowujace sie drobniutkie elementy,

• PyroCluster - wolumetryczny system cieniowania, uzywajacy technologii czasteczek dosymulowania takich efektów jak dym, chmury czy ogien;

• Dynamics to wyjatkowy, wielokrotnie nagradzany moduł słuzacy do symulowania real-nych fizycznych zjawisk takich jak grawitacja, zderzenia, sprezystosc czy reakcja obiek-tów na wiatr;

• BodyPaint3D R2 to aplikacja, która zrewolucjonizowała sposób modelowania i barwieniaskóry postaci, umozliwia w trywialny wrecz sposób nałozenie dowolnego obrazu (np.tatuazu) w dowolnym miejscu obiektu (rysunek 4.12);

• NET Render - moduł do renderingu sieciowego;

• Sketch and Toon pozwala wygenerowac, zamiast fotorealistycznego obrazu, scene lubanimacje przypominajaca obrazek malowany kredkami, kreskówke czy ołówkowy szkic(rysunek 4.11).

Cinema 4D, jak i towarzyszace jej moduły, dostepne sa dla systemów: MS Windows i MacOS X. Program ten jest stosunkowo mało znany i popularny w Polsce.

Page 17: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4.4. CINEMA 4D 15

Rysunek 4.10: Cinema 4D - inter-fejs.

Rysunek 4.11: Sketch And Toon -rendering.

bodypaint-interface

Rysunek 4.12: BodyPaint3D R2 -interfejs.

Rysunek 4.13: BodyPaint3D R2 -przykładowy rendering.

Page 18: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

16 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

4.5 BlenderBlender[5] pojawił sie stosunkowo niedawno (najnowsza wersja 2.34) i od razu wzbudził zywezainteresowanie osób profesjonalnie zajmujacych sie grafika 3D. Jest w pełni darmowym (udo-stepnianym na zasadach open source) kompletnym pakietem do modelowania, animacji i rende-ringu trójwymiarowych obiektów, produkcji oraz tworzenia interaktywnych prezentacji i gier.Dostepny jest dla platform: MS Windows (95+), Mac OS X, Linux (i386 i PPC), SGI Irix, SunSolaris i FreeBSD.

Blender, mimo ze rozwijany jest przez grupe niezaleznych programistów i dostepny cał-kowicie za darmo, bardzo niewiele ustepuje (a czasami nawet przewyzsza) duze komercyjneaplikacje. Zawiera bardzo wygodny i rozbudowany interfejs dla skryptów w jezyku Python,umozliwiajacych nie tylko automatyzacje wielu czynnosci, ale tworzenie własnych narzedzi,efektów, czy wtyczek do obsługi niestandardowych formatów plików.

Moduł animacji wyposazono w bardzo wydajne i efektowne narzedzia do szkieletowegomodelowania postaci oparte na kinematyce oraz nakładania skóry. Po wyrenderowaniu anima-cji mozna od razu zsynchronizowac ja z muzyka, wyciac zbedne fragmenty czy dodac noweefekty - Blender posiada wbudowany edytor do nieliniowej edycji filmów wraz z mikseremdzwieku. Rozbudowane i wygodne narzedzia pozwalaja zdefiniowac interakcje obiektów zuzytkownikiem (bez wymaganej znajomosci programowania) i symulowac ich zachowanie wrzeczywistym fizycznym swiecie, uwzgledniajac masy, zderzenia czy plastycznosc materiału, zktórego sa wykonane.

W Blenderze mozna stworzyc interaktywna prezentacje czy gre własciwie od poczatku dokonca, a nastepnie skompilowac ja do pojedynczego wykonywalnego pliku binarnego odpo-wiedniego dla danej platformy lub umiescic na stronie WWW i uruchamiac po zainstalowaniuspecjalnej wtyczki dostepnej dla przegladarek Netscape i Internet Explorer.

Blender posiada własny bardzo wydajny raytracer, nie ustepujacy w niczym wielkim komer-cyjnym aplikacjom, a nawet czesto je przewyzszajacym (szczególnie pod wzgledem szybkosci).Twórcy programu zaimplementowali w jego wnetrzu obsługe sławnego raytracera Yafray (YetAnother Free RAYtracer), tworzacego obrazy nie odbiegajace znacznie od klasycznych fotogra-fii.Yafray akceptuje pliki wejsciowe z opisem sceny w postaci dokumentów XML.

Pakiet Blender posiada bardzo charakterystyczny i wyjatkowy interfejs: główny obszar ro-boczy mozemy dzielic na dowolna ilosc mniejszych okien, z których kazde moze wyswietlacwybrany przez nas moduł: np. animacje postaci, modeler, diagram sceny, wbudowany edytorskryptów w jezyku Python i wiele innych. Twórcy Blendera zapewniaja, ze wyglad i funkcjo-nalnosc srodowiska roboczego jest taka sama dla wszystkich platform.

Page 19: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4.5. BLENDER 17

Rysunek 4.14: Blender - modelo-wanie obiektu.

Rysunek 4.15: Blender - animacjapostaci.

Rysunek 4.16: Blender - tworzenieinteraktywnej gry.

Rysunek 4.17: Blender - przykła-dowy rendering.

Page 20: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

18 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

4.6 PoserPakiet Poser firmy Curious Labs[29] nie przypomina wygladem zadnego z wczesniej omó-wionych modelerów 3D - jest rozbudowanym i bardzo zaawansowanym narzedziem niemalwyłacznie do tworzenia i animacji postaci i zwierzat oraz wszelkich ich atrybutów, takich jakwłosy, ubranie, skóra, czy mimika twarzy. Wszelkie stworzenia buduje sie w bardzo prostysposób korzystajac z bogatej biblioteki czesci ciała, elementów garderoby i kompletnych po-staci. Po prawej stronie interfejsu sa tez dostepne rózne predefiniowane ruchy postaci dla celówanimacji takie jak na przykład: bieg, podskok czy kucniecie.

Innowacyjna, wyrózniajaca w dziedzinie grafiki 3D, cecha Posera sa bardzo zaawansowanealgorytmy próbujace zamodelowac trójwymiarowa twarz postaci na podstawie załadowanegozdjecia. Dla fotografii wykonanych przy prawidłowym oswietleniu efekty tej techniki sa na-prawde imponujace. Program dostarczany jest z trzema osobnymi modułami renderujacymi:

• ScanLine renderer - uzywany do generowania szybkiego (a przy tym naprawde ładnego)podgladu,

• Sketch Designer zamiast renderingu tworzy animacje w postaci kreskówek, szkiców,rzezb, obrazów olejnych i innych zaawansowanych technik artystycznych,

• FireFly to najwyzszej klasy renderer do finalnej produkcji realistycznych obrazów.

Pakiet obsługuje w obie strony własciwie wszystkie najpopularniejsze formaty plików, adzieki wbudowanej obsłudze skryptów w jezyku Python umozliwia nieograniczone rozszerza-nie swoich mozliwosci. Jako jeden z niewielu oferuje export wygenerowanych animacji do for-matu Macromedia Flash, co uczyniło go przedmiotem zainteresowania projektantów zaawan-sowanych stron internetowych.

Interfejs Posera jest wyjatkowy, poniewaz został stworzony dla artystów. Nie znajdziemytutaj obszaru roboczego podzielonego na cztery czesci, siatek pomocniczych czy ogromnej ilo-sci pasków narzedziowych z ikonami. Poser przypomina raczej stół chirurgiczny. Bardzo wy-soka estetyka wykonania interfejsu i wyjatkowa natura narzedzi sprawia, ze z aplikacja pracujesie bardzo przyjemnie. Wygladem i zachowaniem przypomina legendarna juz serie programówdo obróbki grafiki rastrowej Kai’s Power Tools i Kai’s Power Goo. Poser jest dostepny naplatforme MS Windows i Mac OS X.

Page 21: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4.6. POSER 19

Rysunek 4.18: Poser - modelowa-nie postaci.

Rysunek 4.19: Poser - przykładowyrendering.

Rysunek 4.20: Poser - animacja po-staci.

Rysunek 4.21: Poser - przykładowyrendering.

Page 22: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

20 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

4.7 ShadeShade to kolejny produkt Curious Labs[35]. Aplikacja ta, mimo ze jest bardzo dobrze zintegro-wana z Poserem, w niczym nie przypomina jego artystyczego interfejsu. Shade został stworzonygłównie dla ilustratorów, architektów i projektantów i dostepny jest w trzech wersjach: ShadeStandard, Shade Designer i Shade Professional. Pakiet, obecnie w wersji 7, jest dostepny od1986 roku, ale dopiero od niedawna mozna go nabyc w wersji innej niz japonska (w tym krajupraktycznie zdominował rynek). Mimo krótkiej obecnosci na arenie miedzynarodowej zdazyłjuz zwrócic na siebie uwage kilkoma wyrózniajacymi cechami:

• głównym mechanizmem modelowania sa krzywe i łaty Beziera - pozwala to w szybkiintuicyjny sposób tworzyc bardzo skomplikowane obiekty, te technike mozna nazwactrójwymiarowym rysowaniem wektorowym,

• posiada specjalistyczne narzedzia do modelowania naturalnych elementów organicznych,oparte na ich fizycznych własciwosciach,

• duza integracja z aplikacjami do tworzenia wektorowej grafiki 2D (m.in. Adobe Illustra-tor) oraz CAD (m.in. ArchiCAD),

• rozbudowany moduł RoomPlanner - „kreator” pozwalajacy szybko rozpoczac nowy pro-jekt architektoniczny,

• moduł do wyliczania kinematyki prostej i odwrotnej oraz symulacji dynamiki złozonychelementów mechanicznych,

• MagicalSketch w inteligentny sposób zamienia rysowane recznie dwywymiarowe linie natrójwymiarowe kształty,

• bardzo szybki i zaawansowany renderer (równiez sieciowy) korzystajacy ze sprzetowegowsparcia dla OpenGL, oferujacy wszystkie nowoczesne techniki i efekty dla grafiki 3D.

Shade dostepny jest dla systemów MS Windows i Mac OS X. Jak na produkt o tak imponu-jacych mozliwosciach zdecydowanie wyróznia sie relatywnie niska cena.

Page 23: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4.7. SHADE 21

Rysunek 4.22: Shade - interfejs. Rysunek 4.23: Shade - przykła-dowy rendering.

Rysunek 4.24: Shade - interfejs.

Rysunek 4.25: Shade - przykła-dowy rendering.

Page 24: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

22 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

4.8 POV-Ray - The Persistence of Vision RaytracerPOV-Ray[26] rozwijany jest od bardzo dawna, był jednym z pierwszych darmowych raytracer-ów o jakosci generowanych obrazów dorównujacej ówczesnym komercyjnym aplikacjom, ta-kim jak 3D Studio czy LightWave.

Pakiet Persistence of Vision reprezentuje grupe raytracerów (m.in.: Yafray[32], BMRT[37]),które nie posiadaja własnego srodowiska do modelowania obiektów, sterowania oswietleniemczy kamerami. Generuje obraz z plików tekstowych zawierajacych skryptowy opis sceny. Jezykjakim sie posługuje jest przejrzysty i łatwy w opanowaniu. W pakiecie znajduje sie ogromnailosc plików z definicjami kolorów, materiałów, tekstur, efektów czy przeróznych obiektów -mozna je wykorzystac uzywajac dyrektywy include we własnym pliku. Dzieki takiemu in-terfejsowi w bardzo łatwy sposób mozna uzyc tego raytracer-a jako systemu wizualizacji wewłasnych projektach, a uzyskane efekty z powodzeniem moga dorównywac najlepszym modu-łom renderujacym najwiekszych pakietów do obróbki 3D. Powstało kilka programów modelu-jacych, wykorzystujacych POV-Raya jako wyjscie - dwa z nich zostana pokrótce omówione wkolejnych podrozdziałach.

Ze wzgledu na to, ze POV-Ray dystrybuowany jest na zasadach open source, moze byc za-implementowany na dowolna platforme. Oficjalnie, najnowsza wersja (3.6) dostepna jest dlasystemów: MS Windows, Mac OS/Mac OS X i Linux (i86). Poniewaz nie posiada interfejsu gra-ficznego ani zadnych wymagan co do sprzetowego wsparcia jakichkolwiek operacji 3D, moznago uruchomic nawet na komputerze i386 z 4MB pamieci RAM i generowac dowolnie złozonesceny (w niekoniecznie rozsadnym czasie).

Ponizej znajduje sie kompletny opis najprostszej sceny, zawierajacej teksturowany obiekt(kule) i pojedyncze zródło swiatła (wynik przestawia rysunek 4.26):

#include "colors.inc" // wykorzystanie predefiniowanych kolorów#include "shapes.inc" // biblioteka brył elementarnych#include "stones.inc" // biblioteka tekstur kamieni

background { color Cyan } // kolor tła (predefiniowany koloru Cyan)

camera // dodanie kamery{

location <0, 2, -3> // pozycja kamerylook_at <0, 1, 2> // punkt, na który skierowana jest kamera

}sphere // dodanie obiektu z biblioteki - sfery{

<0, 1, 2>, 2 // srodek sfery w punkcie [0,1,2], promien = 2texture{T_Stone25 // tekstura z pliku stones.inc

}}

light_source { <2, 4, -3> color White} // punktowe zródło swiatła

Page 25: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4.8. POV-RAY - THE PERSISTENCE OF VISION RAYTRACER 23

4.8.1 MorayMoray[24] powstał jako darmowy graficzny interfejs dla raytracer-a POV-Ray. Pierwsze wersje,dostepne jeszcze dla systemu MS-DOS (działały równiez w MS Windows 3.1 i IBM OS/2), byłykompatybilne z POV-Rayem w wersji 3.0. Najnowsza wersja Moray-a (3.5) dla POV-Raya 3.5+pracuje juz wyłacznie w systemach MS Windows.

Moray jest aplikacja do mniej profesjonalnych zastosowan, pozwalajaca bardzo łatwo mo-delowac i animowac trójwymiarowe obiekty. Udostepnia graficzny interfejs dla wiekszosciefektów oferowanych przez POV-Raya. Cały projekt charakteryzuje sie bardzo zaawanso-wanym systemem wtyczek - niewiele narzedzi jest wbudowanych bezposrednio w aplikacje,ogromna wiekszosc z nich stanowia ładowane dynamicznie moduły. Równiez za pomocawtyczki (POV-Ray plugin) aplikacja steruje praca wspomnianego raytracera. Dzieki takiej ar-chitekturze mozna na biezaco uzupełniac interfejs programu o efekty z nowych wersji POV-Raya lub zaimplementowac obsługe innych modułów renderujacych.

W ostatnich wersjach aplikacji zerwano z uzaleznieniem od jakiegokolwiek zewnetrznegoraytracer-a i zaimplementowano własny moduł, oparty na bibliotece OpenGL. Jest on małoefektowny w porównaniu z POV-Rayem, ale za to znacznie szybszy. Mozliwosc uzywaniainnych rendererów jest oczywiscie ciagle dostepna.

Moray posiada bardzo przyjazny i rozbudowany edytor materiałów (tworzenie z kilku warstw)z duza biblioteka juz gotowych. Obiekty wraz ze wszystkimi własciwosciami przechowywanesa w strukturze drzewiastej co pozwala na szybki dostep i tworzenie z nich łancuchów kinema-tycznych. Program wyposazony jest w zaawansowane, nowoczesne narzedzia do modelowaniabrył, takie jak: edycja płaszczyzn, operacje boolowskie na obiektach, generowanie „blobów”czy dowolnych brył obrotowych.

4.8.2 KPovModellerKPovModeller[18] to aplikacja stworzona dla systemu Linux (X Window) z uzyciem biblio-teki Qt. Jest to graficzny interfejs tylko i wyłacznie dla raytracer-a POV-Ray, dołaczany dosrodowiska KDE.

W aplikacji zastosowano nowatorskie podejscie do tworzenia sceny dla POV-Raya: w celuobejscia róznic w wersjach raytracer-a, cała składnia skryptu „tłumaczona” jest na postac drzewahierarchicznie porzadkujacego wszystkie instrukcje. Oprócz standardowych akcji wstawianychkliknieciem myszy, KPovModeller pozwala wpisac do tego drzewa dowolna komende, dziekiczemu mozemy uzywac efektów, dla których nie opracowano interfejsu. W obecnej wersji pro-gramu nie mozna jeszcze uzywac takich elementów składni POV-Raya jak: petle, zmienne, ma-kra czy specyficzne operatory. Mozliwe jest natomiast umieszczenie w drzewie odpowiedniegofragmentu skryptu (KPovModeller posiada wbudowany edytor do tego celu) realizujacego np.petle. Aplikacja moze równiez bezposrednio wyeksportowac całe takie drzewo jako kompletnascene do pojedynczego pliku POV.

Interfejs programu prezentuje sie bardzo ładnie i wygodnie: wszystkie okna widokowe ko-rzystaja z akceleracji OpenGL, niezaleznie od trybu wyswietlania. Wiekszosc elementarnychbrył z biblioteki POV-Raya dostepna jest z menu. W ten sam sposób dostepne sa równiez naj-wazniejsze efekty, kamery i swiatła. Klikajac na dowolna akcje w drzewie, w dolnym okniepojawiaja sie wszystkie jej własciwosci, które mozemy edytowac. KPovModeller nie posiadatak zaawansowanych narzedzi do edycji geometrii obiektów jak Moray, niemniej oferowanyprzez niego zestaw modyfikatorów (m.in. operacje boolowskie na obiektach) pozwala „recz-nie” stworzyc w nim dosc złozone obiekty, a z wykorzystaniem własnych skryptów POV-Rayamozliwosci sa praktycznie nieograniczone.

Page 26: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

24 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

Rysunek 4.26: POV-Ray - przykład. Rysunek 4.27: POV-Ray - przykła-dowy rendering.

Rysunek 4.28: Moray - interfejs. Rysunek 4.29: KPovModeller - in-terfejs.

Page 27: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4.9. EQUINOX 25

4.9 EquinoxEquinox[12] jest stosunkowo nowa, darmowa aplikacja do modelowania i animacji obiektów3D dostepna wyłacznie dla systemów UNIX/Linux. Obecna wersja to 0.8.4.

Posiada własny interaktywny raytracer, który nie jest az tak zaawansowany jak np. POV-Rayczy Yafray, ale na pewno duzym jego atutem jest szybkosc działania. Pod katem tej ostatniejcechy oraz oszczednego zarzadzania pamiecia zoptymalizowany został równiez przejrzysty iintuicyjny interfejs (wymaga biblioteki OpenGL) oraz mechanizm ładowanych dynamiczniemodułów (dzieki temu mozna wykorzystac zewnetrzne raytracery). Sprawia to, ze Equinoxznakomicie nadaje sie do szybkiego tworzenia dosyc zaawansowanych modeli nawet na sto-sunkowo wolnym sprzecie. Autor aplikacji z zadowoleniem twierdzi, ze jego program jestgotowy do pracy w czasie niespełna jednej sekundy od uruchomienia, z załadowanymi juz 75wtyczkami. W porównaniu z innymi aplikacjami 3D jest to cecha naprawde niezwykła. Kolej-nym krokiem w zwiekszaniu wydajnosci działania jest mechanizm współdzielenia materiałów:współrzedne tekstury sa przechowywane razem z geometria obiektu, a nie tak jak w wiekszo-sci pakietów - z danymi samej tekstury. Dzieki temu kazde nastepne uzycie danej tekstury niewymusza ponownego ładowania pliku graficznego i alokowania pamieci dla nowego obrazu.

Duza szybkosc działania idzie w parze ze spora iloscia narzedzi do modyfikacji geometriimodeli 3D i efektów takich jak: multiteksturing (tekstura moze byc zbudowana z nawet osmiuobrazów), realistyczne odbicia od powierzchni lustrzanych, cylindryczne nakładanie tekstur,zaawansowane cieniowanie czy oswietlenie obliczane osobno dla kazdego piksela (uzywa dotego celu specjalnego jezyka programowania Cg[38] opracowanego przez firme NVidia dla kartgrafiki z rodziny FX). Obiekty wraz ze wszystkimi własciwosciami uporzadkowane sa w wy-godnych strukturach drzewiastych.

Rysunek 4.30: Equinox - interfejs. Rysunek 4.31: Equinox - przykładowyrendering.

Page 28: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

26 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

4.10 Innovation3DInnovation3D[17] to bardzo młody, ale intensywnie rozwijany projekt. Wykorzystuje bibliotekeQT, OpenGL i NURBS++. Obecna wersja (0.66) dostepna jest za darmo w postaci kompletnegokodu zródłowego i kompiluje sie wyłacznie w systemach UNIX/Linux.

Na te chwile mozliwosci renderingu aplikacji sa bardzo niewielkie - posiada minimalnemozliwosci teksturowania i praktycznie zadnych efektów. Brakuje nawet takich podstaw jakdefiniowanie kamer i zródeł swiatła. Mimo to da sie zauwazyc ogromny nacisk kładziony narozwój zaawansowanych narzedzi do modelowania.Innovation3D oprócz umieszczania standar-dowych brył, udostepnia wiekszosc z najnowszych technik tworzenia trójwymiarowych obiek-tów takich jak m.in.: modelowanie za pomoca krzywych i łat Beziera, punktowa edycja po-wierzchni, szkieletowa budowa obiektu, modelowanie z wykorzystaniem NURBS, edycja po-jedynczych krawedzi, scian i wierzchołków.

Interfejs Innovation3D nie odbiega wygladem od kanonów obowiazujacych w grafice 3D.Istnieje mozliwosc indywidulnego rozmieszczenia widoków na pulpicie (jak np. w graficznympakiecie Gimp) zamiast zamkniecia ich w zwartym obszarze robocznym. Aplikacja posiadaprosty edytor materiałów z mozliwoscia tworzenia własnych bibliotek. Równiez prostym, aleinteresujacym elementem jest UV Editor, pozwalajacy na interaktywna definicje współrzednychmapowania promieni UV dla obiektów teksturowanych.

Aplikacja, posiadajaca obecnie funkcjonalnosc zaawansowanego programu CAD, zapo-wiada sie bardzo obiecujaco. Istniejacy mechanizm wtyczek pozwala na uzycie na razie tylkojednego zewnetrznego raytracera BMRT (Blue Moon Rendering Tool[37]) i mimo duzych mozli-wosci, jest on uzywany wyłacznie do generowania podgladów. Jezeli autorzy połoza taki naciskna edycje efektów i realizm generowanych obrazów, jaki połozyli na zaprojektowanie narzedzimodelujacych, to mozemy spodziewac sie w przyszłosci bardzo dobrego edytora do grafiki 3D.

Rysunek 4.32: Innovation3D - interfejs. Rysunek 4.33: Innovation3D - UVEditor.

Page 29: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

4.11. ROBOWORKS 27

4.11 RoboWorksOstatnia, z przedstawionych aplikacji do modelowania obiektów 3D jest RoboWorks firmy New-tonium[34]. Nie jest to edytor do grafiki 3D, ale symulator sterowania systemami robotycznymiwykorzystujacy do ich modelowania trójwymiarowe bryły elementarne i biblioteke OpenGL dorenderingu. Dostepny jest odpłatnie i tylko dla systemu MS Windows, z wyjatkiem darmowejbiblioteki do obsługi interfejsu komunikacyjnego RoboTalk w postaci kodu zródłowego.

RoboWorks został zaprojektowany do łatwej budowy, symulacji i animacji dowolnie zło-zonych modeli robotycznych w trójwymiarowym srodowisku. Dzieki rozbudowanej obsłudzekomunikacji moze z powodzeniem słuzyc jako program wizualizacyjny dla zaawansowanychaplikacji symulacyjnych - posiada wbudowane interfejsy dla Matlaba, LabView i Visual Basic-a. Wbudowany mechanizm RoboTalk udostepnia protokół komunikacyjny oparty na TCP/IP,pozwalajacy na sterowanie modelem w srodowisku RoboWorks za pomoca zewnetrznej apli-kacji lub nawet ze zdalnego komputera (np. program sterujacy napisany dla systemu Linux).Zaprojektowanym robotem mozna równiez sterowac z klawiatury (klawisze dowolnie definio-wane) oraz przez podanie sekwencji zmiennych stanu z pliku tekstowego lub strumienia.

Aplikacja oferuje bardzo przyjazny i intuicyjny interfejs, nawet złozone gniazda robotyczneprojektuje sie naprawde szybko. Dostep do parametrów i sterowanie przegubami ułatwia bocznypanel porzadkujacy wszystkie elementy w strukturze drzewa. Aplikacja jest bardzo popularnawsród projektantów robotów, a pliki w formacie RoboWorks SCN mozna znalezc na stronachwielu instytucji i firm zajmujacych sie ich budowa i sterowaniem.

Pod wzgledem zastosowania, RoboWorks jest najblizszy celom stawianym w aplikacji Gwell.Jezeli uda sie w przyszłosci zrealizowac w programie Gwell tak dobry mechanizm sterowaniazamodelowanymi robotami, jaki mamy w RoboWorks - uzyskany efekt bedzie o wiele lepszyniz produkt firmy Newtonium. Gwell oferuje znacznie wieksze mozliwosci modelowania i wi-zualizacji.

Page 30: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

28 ROZDZIAŁ 4. PRZEGLAD ZNANYCH ROZWIAZAN

Rysunek 4.34: RoboWorks - mode-lowanie.

Rysunek 4.35: RoboWorks -gniazdo produkcyjne.

Rysunek 4.36: RoboWorks - recznesterowanie robotem Puma.

Rysunek 4.37: RoboWorks - stero-wanie z klawiatury.

Page 31: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Rozdział 5

Opis sposobu modelowania obiektów wbibliotece VIONA

5.1 Ogólna koncepcjaBiblioteka VIONA[8] przystosowana jest do przechowywania trójwymiarowych obiektów wpostaci otwartych łancuchów kinematycznych, których elementy sa wynikiem transformacjipredefiniowanych brył wzorcowych (np. szescian czy stozek). Mozliwe jest równiez zasto-sowanie dowolnych innych macierzy transformacji. Kazdy z obiektów nalezacych do łancu-cha kinematycznego tej struktury moze posiadac dowolna ilosc obiektów potomnych. Podsta-wowa jednostka modelowania kinematyki jest wezeł, natomiast geometrii - transformowanabryła wzorcowa. Opisy brył wzorcowych (wierzchołki, krawedzie i sciany) grupowane sa wbiblioteki i ładowane z plików tekstowych.Przykład pliku zawierajacego biblioteke brył wzorcowych:

FiguresLibrary: dwie_proste_bryly

Figure CUBOID;Nodes: (0, 0, 0) (0, 0, 1) (0, 1, 0)

(0, 1, 1) (1, 0, 0) (1, 0, 1)(1, 1, 0) (1, 1, 1);

Edges: (1, 2) (3, 4) (5, 6) (7, 8) (1, 3) (3, 7)(5, 7) (1, 5) (2, 4) (4, 8) (8, 6) (2, 6);

Faces: (5, 6, 2, 1) (1, 2, 4, 3) (1, 3, 7, 5)(3, 4, 8, 7) (2, 6, 8, 4) (5, 7, 8, 6);

EndFigure;

Figure SLANTCUBOID;Nodes: (0,0,0) (1,0,0) (0,1,0) (0,0,1) (0,1,1) (1,0,1);Edges: (1,2) (2,3) (3,1) (1,4) (2,6) (3,5) (4,6) (5,6) (4,5);Faces: (3, 2, 1) (6, 5, 4) (1, 4, 5, 3) (1, 2, 6, 4) (2, 3, 5, 6);EndFigure;

EndLibrary.

Kazdy obiekt struktury, posiadajacy reprezentacje geometryczna, jest sensu stricto bryławzorcowa poddana zadanym trasformacjom. W strukturze moga istniec obiekty złozone niepo-siadajace reprezentacji geometrycznej - ich przeznaczeniem jest tylko i wyłacznie rola ogniwanadrzednego nad swoimi elementami (wsród których moga byc takze inne obiekty złozone).

29

Page 32: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

30ROZDZIAŁ 5. OPIS SPOSOBU MODELOWANIA OBIEKTÓW W BIBLIOTECE VIONA

Tylko obiekty złozone moga byc korzeniami łancuchów kinematycznych. Obiekt sceny jestkontenerem zawierajacym wszystkie te korzenie.Ponizsze rysunki przedstawiaja dwa sposoby wyswietlania przykładowej struktury w aplikacjiGwell (kolumna Pattern Polyhedron zawiera typ bryły wzorcowej) :

Rysunek 5.1: Struktura wyswietlana w postaci drzewa

Rysunek 5.2: Struktura wyswietlana w postaci sciezek

5.2 Charakterystyka poszczególnych klasAby łatwiej i precyzyjniej przedstawic budowe struktury obiektów w bibliotece Viona uzywanesa (równiez w dokumentacji samej biblioteki) nastepujace pojecia:

• bryła wzorcowa - obiekt klasy ViPattePolyh nie istniejacy samodzielnie w strukturze,zawierajacy informacje o wierzchołkach, krawedziach i scianach bryły geometrycznej;

• wezeł drzewa - obiekt klasy ViPolyhHierList, tworzacy logiczny element struktury jestklasa bazowa, która musza dziedziczyc wszystkie obiekty tworzace drzewo; wezeł mozebyc zarówno potomkiem jak i posiadac dowolna ilosc innych wezłów potomnych;

• bryła elementarna - obiekt klasy ViElemePolyh dziedziczy klase ViPolyhHierList -jest wiec wezłem drzewa; posiada wskaznik do bryły wzorcowej, która modeluje, ma-cierz przekształcenia układu współrzednych tej bryły do własnego układu oraz macierzetranslacji, rotacji i skali transformujace te bryłe; bryła elementarna stanowi jedyny ele-ment w bibliotece posiadajacy graficzna reprezentacje;

Page 33: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

5.3. REPREZENTACJA KINEMATYKI OBIEKTÓW 31

• bryła złozona - obiekt klasy ViMultiPolyh równiez dziedziczacy ViPolyhHierList; obiektytej klasy nie posiadaja geometrii - słuza jako wezły-rodzice grupy swoich obiektów po-tomnych, wsród których, oprócz brył elementarnych znajdowac sie moga równiez innebryły złozone; tylko obiekty złozone moga byc korzeniami struktur;

• scena - obiekt klasy ViScene, jest kontenerem dla wszystkich korzeni (brył złozonych)struktur - tym samym stanowi główny korzen całego drzewa; umozliwia dodawanie, usu-wanie oraz dostep do posiadanych brył złozonych.

Dodatkowo bryły elementarne umozliwiaja trasformacje własnego lokalnego układu współ-rzednych. Podstawowym elementem kinematycznej struktury drzewiastej jest wezeł drzewa.Obiekty elementarne i obiekty złozone (oraz wszystkie ich klasy pochodne) sa wezłami drzewa,tworzacymi pełna stukture kinematyczna.

Ponizej przedstawione zostały zaleznosci miedzy klasami biblioteki. Klasy ViElemePolyh iViMultiPolyh dziedzicza klase ViPolyhHierList. Obiekty obu tych klas moga byc w dowolnysposób podrzedne lub nadrzedne wzgledem siebie, ale kazdy z nich moze posiadac maksymal-nie jednego rodzica. Wszystkie obiekty klasy ViElemePolyh powiazane sa z obiektami klasyViPattePolyh reprezentujacymi bryły wzorcowe. Obiekt klasy ViScene zawiera liste korzeniposzczególnych drzew. Korzeniami moga byc tylko obiekty klasy ViMultiPolyh.

Rysunek 5.3: Diagram klas (UML) wykorzystywanych do modelowania brył.

5.3 Reprezentacja kinematyki obiektówWszystkie obiekty wchodzace w skład drzewa dziedzicza klase ViPolyhHierList reprezentu-jaca pojedynczy wezeł. Kazdy wezeł posiada swój własny układ współrzednych (inwariantny wprzestrzeni ciała), który w układzie globalnym drzewa jest wynikiem trasformacji układów ko-lejnych rodziców tego wezła. Transformacja, składajaca sie z przekształcenia rotacji i translacjiukładu współrzednych wezła rodzica do układu aktualnego wezła, przechowywana jest w ak-tualnym wezle w polu prywatnym pod nazwa _Transf2ParentCoord. Dostep do tej macierzy

Page 34: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

32ROZDZIAŁ 5. OPIS SPOSOBU MODELOWANIA OBIEKTÓW W BIBLIOTECE VIONA

umozliwia metoda Mtx2ParentCoord(). Utworzona w ten sposób struktura stanowi otwartyłancuch kinematyczny.

Oprócz macierzy transformacji do wezła rodzica, bryły elementarne (obiekty klasy ViE-lemePolyh) posiadaja macierz transformacji, przeprowadzajaca układ współrzednych bryływzorcowej do własnego układu współrzednych. Macierz ta przechowywana jest w polu pry-watnym _Mtx_Patte2Eleme, a dostep do niej umozliwia metoda Mtx2ElemeCoord(). Tylko temacierz stosuje sie do modyfikowania skali pojedynczej bryły elementarnej. Jezeli zastosujemyskale do Mtx2ParentCoord() - przeskalowane zostana równiez wszystkie układy współrzed-nych potomków tego elementu.Bryły elementarne oferuja dodatkowo mozliwosc wewnetrznej transformacji własnego układuwspółrzednych. Macierz tej transformacji przechowywana jest w prywatnym polu _Mtx_Eleme2Indiv,a dostep do niej uzyskujemy za pomoca metody Mtx2IndivCoord().

Uklad wspolrzednychbryly elementarnej (ViElemePolyh)

A.Mtx2IndivCoord()

Uklad wspolrzednych globalnych

sceny (ViScene)

bryly zlozonej (ViMultiPolyh)Uklad wspolrzednych

A.Mtx2ElemeCoord()

A.Mtx2ParentCoord()

B.Mtx2IndivCoord()

Uklad wspolrzednychbryly elementarnej (ViElemePolyh)

B.Mtx2ParentCoord()

C.Mtx2ParentCoord()

Uklad wspolrzednychbryly wzorcowej (ViPattePolyh)

B.Mtx2ElemeCoord()

C : ViMultiPolyh

B : ViElemePolyh

X : ViPattePolyh

A : ViElemePolyh

_IndivName = "A"

_Name = "X"

_IndivName = "C"

_IndivName = "B"

Scena : ViScene

AX

B

Rysunek 5.4: Ciag transformacji w przykładowym łancuchu kinematycznym.

W przedstawionym powyzej przykładzie ciag kinematyczny dla obiektu C ma postac:

A→ B→ C.

Bryła wzorcowa reprezentowana przez X nie nalezy do łancucha kinematycznego - definiujejedynie geometrie dla poszczególnych obiektów. Ponizej wyznaczymy globalne współrzednebryły A (na scenie):

• ciag transformacji wyznaczania globalnych współrzednych bryły A ma postac:

X→A→ B→ C→ Scena;

• układ współrzednych bryły wzorcowej X przekształcany jest do własnego układu bryłyelementarnej A przez macierz A.Mtx2ElemeCoord(), czyli:

X→ A,

co obliczamy nastepujaco:

A.Mtx2IndivCoord()∗A.Mtx2ElemeCoord();

Page 35: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

5.3. REPREZENTACJA KINEMATYKI OBIEKTÓW 33

• własny układ współrzednych bryły A moze byc wewnetrznie przesuniety, co opisuje ma-cierz A.Mtx2IndivCoord();

• bryła elementarna B jest rodzicem bryły A i równiez wykorzystuje bryłe wzorcowa X,wiec ciag jej przekształcen wyglada tak:

X→ A→ B,

transformacje te obliczamy nastepujaco:

B.Mtx2IndivCoord()∗A.Mtx2ParentCoord()∗A.Mtx2IndivCoord()∗A.Mtx2ElemeCoord();

• przejscie z układu bryły B do lokalnego układu współrzednych bryły C ma ogólna postac:

X→ A→ B→ C,

wiec mamy:

B.Mtx2ParentCoord()∗B.Mtx2IndivCoord()∗A.Mtx2ParentCoord()∗∗A.Mtx2IndivCoord()∗A.Mtx2ElemeCoord();

• ostateczne przejscie do układu globalnych współrzednych sceny:

X→ A→ B→C→ Scena

wyznaczamy poprzez:

C.Mtx2ParentCoord()∗B.Mtx2ParentCoord()∗B.Mtx2IndivCoord()∗∗A.Mtx2ParentCoord()∗A.Mtx2IndivCoord()∗A.Mtx2ElemeCoord().

Jak widac z powyzszego przykładu, transformacje do kolejnych układów obiektów nadrzed-nych wykonywane sa jedynie przez lewostronne pomnozenie aktualnej macierzy transformacjiukładu współrzednych obiektu potomnego przez macierz przejscia do układu rodzica Mtx2ParentCoord().Wyjatek stanowia tylko poczatkowe transformacje: z układu współrzednych bryły wzorcowejdo bryły elementarnej i wewnetrzne przekształcenie układu bryły elementarnej. Sa to operacjesłuzace przyporzadkowaniu geometrii danemu obiektowi.

Page 36: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

34ROZDZIAŁ 5. OPIS SPOSOBU MODELOWANIA OBIEKTÓW W BIBLIOTECE VIONA

Page 37: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Rozdział 6

Opis zrealizowanego systemumodelowania

System modelowania zrealizowany w bibliotece VIONA udostepnia czysty mechanizm mody-fikacji geometrii. Obiekty, zbudowane z brył wzorcowych, nie posiadaja zadnych informacjiwizualnych takich jak kolor, tekstura czy przezroczystosc.W aplikacji Gwell, aby odpowiednio przedstawic zamodelowana strukture, stworzono klaseViElemePolyhExt, dziedziczaca klase brył elementarnych ViElemePolyh, zawierajaca dodat-kowe własnosci do celów wizualizacji. Klase ViElemePolyh wraz z innymi wykorzystywanymiklasami przedstawia ponizszy diagram w jezyku UML:

TextureParams-_glTexID: GLuint-_magFilter: GLenum-_minFilter: GLenum-_wrapS: GLenum-_wrapT: GLenum-_envMode: GLenum-_blendingEnabled: bool-_srcFactor: GLenum-_destFactor: GLenum-_reflectingEnabled: bool-_minW: GLfloat-_minH: GLfloat-_maxW: GLfloat-_maxH: GLfloat

+set*(value:type): void+get*(): type

ViElemePolyhExt-_material: Material*-_materialEnabled: bool-_applyTo: GLenum-_textureEnabled: bool-_textureParams: TextureParams*-_DefMaterial: static Material-_DefTextureParams: static TextureParams

+material(): Material*+applyTo(): GLenum+materialEnabled(): bool+textureParams*(): TextureParams+textureEnabled(): bool+defaultMaterial(): static const Material&+setDefaultMaterial(material:Material&): void+defaultTextureParams(): static const TextureParams&+setDefaultTextureParams(defTP:TextureParams&): void

Material-_materialName: QString-_shininess: GLint-_qAmbientColor: QColor-_qDiffuseColor: QColor-_qSpecularColor: QColor-_qEmissionColor: QColor-_iAmbientAlpha: int-_iDiffuseAlpha: int-_iSpecularAlpha: int-_iEmissionAlpha: int

+setName(name:QString&): void+setShininess(shininess:GLint): void+set*Color(color:QColor&): void+set*Alpha(alpha:int): void

ViElemePolyh-_pPattePolyh: ViPattePolyh-_Mtx_Patte2Eleme: Matrix3f-_Mtx_Eleme2Indiv: Matrix3f

+PattePolyh(): const ViPattePolyh&+Mtx2ElemeCoord(): const Matrix3f&+Mtx2IndivCoord()(): const Matrix3f&

Texture-_fileName: QString-_scaleMode: QImage::ScaleMode-_mipmapEnabled: bool-_howManyUsers: int-_GLTextureID: GLuint-_isValid: bool-_preview: QPixmap*

+set*(value:type): void+get*(): type+incHowManyUsers(): void+decHowManyUsers(): void+isValid(): bool+howManyUsers(): int

Texture-_fileName: QString-_scaleMode: QImage::ScaleMode-_mipmapEnabled: bool-_howManyUsers: int-_GLTextureID: GLuint-_isValid: bool-_preview: QPixmap*

+set*(value:type): void+get*(): type+incHowManyUsers(): void+decHowManyUsers(): void+isValid(): bool+howManyUsers(): int

Texture-_fileName: QString-_scaleMode: QImage::ScaleMode-_mipmapEnabled: bool-_howManyUsers: int-_GLTextureID: GLuint-_isValid: bool-_preview: QPixmap*

+set*(value:type): void+get*(): type+incHowManyUsers(): void+decHowManyUsers(): void+isValid(): bool+howManyUsers(): int

TextureManager

1 1

1

1

0..* 1

Rysunek 6.1: Klasa ViElemePolyhExt wraz z klasami towarzyszacymi.

35

Page 38: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

36 ROZDZIAŁ 6. OPIS ZREALIZOWANEGO SYSTEMU MODELOWANIA

typ nazwa opisMaterial* _material opisuje wszystkie własciwosci materiału elementu

bool _materialEnabled okresla czy element ma byc wyswietlany z materiałemGLenum _applyTo okresla dla jakich scian ma byc stosowany materiał

TextureParams* _textureParams opisuje teksture obiektu wraz z jej własciwosciamibool _textureEnabled okresla czy obiekt ma byc teksturowany

static Material _DefMaterial domyslny materiał stosowany do nowych obiektówstatic TextureParams _DefTextureParams domyslna tekstura z parametrami

Tablica 6.1: Dodatkowe pola klasy ViElemePolyhExt.

Klasa Material zawiera wszystkie informacje o kolorze obiektu i jego reakcjach na róznerodzaje oswietlenia. Została dokładnie scharakteryzowana w rozdziale 6.1.Istnieje mozliwosc wyłaczenia materiału elementu poprzez zmienna boolowska _materialEnabled- element rysowany jest wtedy w domyslnym kolorze zdefiniowanym w systemie rysowaniaobiektów (nie ma to nic wspólnego z polem _DefMaterial). W implementacji Gwell takiobiekt domyslnie rysowany jest kolorem białym (odpowiada w ten sposób na kazdy koloroswietlenia).

Pole _applyTo jest typu wyliczeniowego zdefiniowanego w bibliotece OpenGL i okresla,które ze scian obiektu maja byc rysowane z wykorzystaniem materiału. Zmienna ta moze przyj-mowac 3 wartosci:

• GL_FRONT - przednie powierzchnie scian (wierzchołki scian zostały zadane w kierunkuprzeciwnym do ruchu wskazówek zegara),

• GL_BACK - tylne powierzchnie scian,

• GL_FRONT_AND_BACK - wszystkie powierzchnie obiektu rysowane sa z wykorzystaniemmateriału.

Klasa TextureParams zawiera (posrednio) obraz tekstury oraz wszystkie jej parametry,takie jak: filtry, przezroczystosc czy sposób nakładania na obiekt. Klasa ta została dokładnieopisana w rozdziale 6.2.2.Podobnie jak w przypadku materiału, istnieje mozliwosc wyłaczenia teksturowania obiektu.Odpowiada za to pole _textureEnabled. Sposób potraktowania tego pola (podobnie jak wprzypadku materiału) zalezy od funkcji rysujacej element.

Statyczne pola klasy: _DefMaterial i _DefTextureParams słuza jako ustawienia do-myslne (poczatkowe) dla nowo tworzonych obiektów klasy ViElemePolyhExt. Mozna je do-wolnie modyfikowac. Parametry domyslne przydaja sie, gdy tworzymy kolejno wieksza iloscobiektów o tych samych własnosciach. Nie ma wtedy potrzeby ciagłego zadawania tych sa-mych własciwosci.

Page 39: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

6.1. MATERIAŁ 37

6.1 Materiał

Kolorystyczna reakcja powierzchni elementu w zaleznosci od rodzaju oswietlenia opisana jestprzez klase Material.

typ pole opisQString _materialName nazwa własna materiałuQColor _qAmbientColor składowa Ambient

int _iAmbientAlphaQColor _qDiffuseColor składowa Diffuse

int _iDiffuseAlphaQColor _qSpecularColor składowa Specular

int _iSpecularAlphaQColor _qEmissionColor składowa Emission

int _iEmissionAlphaGLint _shininess parametr Shininess

GLfloat _ambientColor[4] reprezentacja dla OpenGLGLfloat _diffuseColor[4]GLfloat _specularColor[4]GLfloat _emissionColor[4]

Tablica 6.2: Pola klasy Material.

Wartosci koloru zadawane materiałowi odpowiadaja w rzeczywistosci proporcjom stopniaodbicia składowych koloru danego swiatła.Na przykład: ustawiajac wartosc koloru Diffuse dla materiału na RGB = (255, 128, 0) okre-slamy, ze materiał, oswietlony swiatłem typu Diffuse odbija cała składowa czerwona swiatła,połowe składowej zielonej i całkowicie absorbuje składowa niebieska.

Swiatła typu: Ambient, Diffuse oraz Specular:

• swiatło typu Ambient nie posiada kierunku, dociera do obserwatora ze wszystkich stron(w wyniku odbicia od bardzo wielu powierzchni),

• swiatło typu Diffuse pochodzi z okreslonego kierunku i daje jasniejszy efekt, gdy pada napowierzchnie prostopadle niz pod innym katem, poniewaz w wyniku odbicia rozpraszanejest tak samo w kazdym kierunku,

• swiatło typu Specular równiez posiada okreslony kierunek, ale od powierzchni odbija siew okreslona strone - ma postac wiazki; duza wartosc składowej Specular posiadaja takiemateriały jak np. błyszczacy metal i plastik.

Kolor Emission ma inne znaczenie niz wymienione wyzej - jest barwa „swiecenia” obiektu.Mimo to element nie funkcjonuje jako zródło swiatła - jego kolor po prostu nie ulega zmianomw zaleznosci od zewnetrznego oswietlenia. Efekt prawdziwie swiecacego obiektu uzyskamy,umieszczajac wewnatrz niego zródło swiatła (i oczywiscie odpowiednio ustawiajac kolor Emis-sion).

Ostatnim elementem, wpływajacym na charakterystyke materiału jest parametr Shininess.Jest to pojedyncza wartosc okreslajaca wielkosc „odblasku” na obiekcie, powstałego w wynikupadajacego swiatła. Im jest wieksza tym bardziej skupiony i jasniejszy jest obszar odbicia.

Page 40: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

38 ROZDZIAŁ 6. OPIS ZREALIZOWANEGO SYSTEMU MODELOWANIA

Klasa Material przechowuje parametry kolorów w dwóch formatach równoczesnie, po-zwala to zredukowac kazdorazowe przeliczenia. Obiekty klasy QColor (pola _q* i _i*) sa uzy-wane w interfejscie do interakcji z uzytkownikiem, natomiast format OpenGL (4-elementowetablice) do szybkiego rysowania elementów.

6.2 Zarzadzanie teksturami w aplikacji GwellMechanizm przechowywania i zadawania elementom tekstury wraz z parametrami został waplikacji Gwell mocno zoptymalizowany pod katem szybkosci i oszczednosci pamieci. Zreali-zowane to zostało nawet szerzej niz w pakiecie Equinox (patrz rozdział 4.9).

• obraz, który ma zostac uzyty jako tekstura, musi miec rozmiary bedace potega liczby2 (maksymalny rozmiar tekstury zalezy od implementacji OpenGL dla danej karty gra-ficznej i wynosi przewaznie 2048x2048); rzadko który obraz spełnia te wymaganie, wiecGwell oferuje trzy rodzaje skalowania obrazu (dostepne w Qt) do najblizszych wymiarówbedacych potegami liczby 2 (zawsze wiekszych lub równych niz pierwotne):

– ScaleFree - proste skalowanie bez zachowania pierwotnego stosunku wysokosc/szerokosc,

– ScaleMin - skalowanie z zachowaniem proporcji, przeskalowany obraz w całoscimiesci sie w nowych wymiarach, jest maksymalnie rozciagniety wzdłuz wiekszegoboku (wolny obszar wypełniany jest kolorem czarnym),

– ScaleMax - zachowuje proporcje, ale przeskalowany obraz zajmuje w całosci nowyobszar, jego dłuzszy bok jest wiec obcinany.

Skalowanie w zaden sposób nie zmienia oryginalnego pliku z obrazem.

• przeskalowany obraz ładowany jest do pamieci w postaci pojedynczej tekstury lub mip-map (kilku fragmentów o mniejszej skali, przyspieszajacych wyswietlanie dzieki wy-eliminowaniu kazdorazowego skalowania pojedynczej tekstury) - informacja ta jest nie-zbedna ze wzgledu na odmienny sposób ładowania przez OpenGL; umieszczajac takiobraz w pamieci dostajemy informacje o adresie pod którym sie teraz znajduje;

• adresy załadowanych tekstur, wraz z nazwa pliku, typem skalowania i informacja o dzie-leniu na mipmapy, przechowywane sa w strukturach tworzacych odpowiednio zarzadzanaliste; do tekstury dołaczana jest równiez informacja o liczbie obiektów z niej korzystaja-cych - pozwala to dynamicznie usuwac z pamieci obrazy nieuzywane;

• kazda bryła posiada liste parametrów tekstury takich jak: filtry, przezroczystosc, współ-rzedne; wsród tych parametrów znajduje sie równiez fizyczny adres tekstury w pamiecikarty graficzej;

Takie rozwiazanie pozwala na pełne współdzielenie pojedynczej tekstury (Texture) przez wieleobiektów. Kazdy obiekt posiada własne parametry modyfikujace wyglad tekstury (TexturePa-rams) i sposób jej nakładania na siebie. Zarzadca kolejki tekstur (TextureManager), podczasładowania obrazu przez uzytkownika sprawdza, czy obraz o takich parametrach nie znajduje siejuz w pamieci - wtedy automatycznie uzywa go w danym obiekcie. Udostepnia tez uzytkowni-kowi liste załadowanych tekstur gotowych do ponownego wykorzystania.

Page 41: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

6.2. ZARZADZANIE TEKSTURAMI W APLIKACJI GWELL 39

6.2.1 Klasa TextureObiekt klasy Texture reprezentuje pojedyncza teksture znajdujaca sie w pamieci.

typ pole opisQString _fileName nazwa pliku, z którego załadowany został obraz

QImage::ScaleMode _scaleMode sposób skalowania obrazubool _mipmapEnabled czy obraz ładowany w postaci mipmap

GLuint _GLTextureID fizyczny adres tekstury w pamieciint _howManyUsers ile elementów aktualnie z niej korzysta

bool _isValid czy obraz został poprawnie odczytany z plikuQPixmap* _preview mini-podglad obrazu

Tablica 6.3: Pola klasy Texture.

Do efektywnego zarzadzania obiektami tej klasy oraz kojarzenia ich z elementami słuzyspecjalna klasa TextureManager (patrz rozdział 6.2.3).

6.2.2 Klasa TextureParamsKazda bryła posiada własny zestaw parametrów uzywanej tekstury. Parametry te zawarte sa wobiekcie klasy TextureParams, dołaczonym do obiektu klasy ViElemePolyhExt.

typ pole opisGLuint _glTexID fizyczny adres tekstury w pamieci

GLenum _magFilter typ filtra MagnificationGLenum _minFilter typ filtra MinificationGLenum _wrapS multiplikacja tekstury w poziomieGLenum _wrapT multiplikacja tekstury w pionieGLenum _envMode interakcja tekstury z materiałem

bool _blendingEnabled obiekt jest półprzezroczystyGLenum _srcFactor współczynnik zródłaGLenum _destFactor współczynnik celu

bool _reflectingEnabled obiekt posiada własnosci lustrzaneGLfloat _minW współrzedne teksturyGLfloat _minHGLfloat _maxWGLfloat _maxH

Tablica 6.4: Pola klasy TextureParams.

Pole _glTexID przechowuje fizyczny adres tekstury w pamieci, jest to ten sam adres, któryjest przechowywany w obiektach klasy Texture. Obiekt klasy ViElemePolyhExt nie posiadatego adresu, korzysta z tej tekstury posrednio łacznie z jej parametrami.

Filtry Minification i Magnification okreslaja w jaki sposób teksele (punkty tekstury) majabyc mapowane w sytuacji, gdy pojedynczy piksel obrazu pokrywa sie jedynie z fragmentemteksela (Magnification) lub cała ich grupa (Minification). Zeby uzyskac poprawny efekt nalezywtedy, albo interpolowac (tekstura sie rozszerza) albo usredniac teksele (tekstura sie zmniejsza).

Page 42: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

40 ROZDZIAŁ 6. OPIS ZREALIZOWANEGO SYSTEMU MODELOWANIA

Dostepne sa nastepujace algorytmy:

• filtry dla Magnification:

– GL_NEAREST - algorytm zwraca wartosc najblizszego sasiada (według normy Man-hattan) danego teksela; otrzymujemy efekt ostrego i wyraznego obrazu; znaczacawada tego algorytmu jest fakt, ze zblizajac sie do teksturowanego obiektu widzimycoraz wieksze kwadraty bedace efektem skalowania teksela; jest to najprostszy inajszybszy algorytm;

– GL_LINEAR - algorytm zwraca wartosc bedaca srednia wazona czterech najblizszychtekseli; otrzymujemy ładny efekt gładkiej (nieco rozmytej) tekstury nawet dla bar-dzo małych odległosci od obiektu; algorytm posiada wieksza złozonosc oblicze-niowa;

• filtry dla Minification:

– GL_NEAREST - jak dla Magnification;

– GL_LINEAR - jak dla Magnification;

– GL_NEAREST_MIPMAP_NEAREST - algorytm wybiera mipmape, której rozmiar jestnajblizszy rozmiarowi teksturowanego piksela i stosuje z nia algorytm „najblizszegosasiada” (GL_NEAREST);

– GL_NEAREST_MIPMAP_LINEAR - algorytm wybiera dwie mipmapy najbardziej zbli-zone rozmiarem do teksturowanego piksela i stosujac algorytm „najblizszego sa-siada” znajduje wartosci tekstury dla kazdej mipmapy; wynikowa tekstura dla pik-sela jest srednia wazona tych dwóch wartosci;

– GL_LINEAR_MIPMAP_NEAREST - algorytm wybiera mipmape najbardziej odpowia-dajaca rozmiarem teksturowanemu pikselowi i stosuja z nia algorytm GL_LINEAR;

– GL_LINEAR_MIPMAP_LINEAR - algorytm wybiera dwie mipmapy najbardziej zbli-zone rozmiarem do teksturowanego piksela i stosujac algorytm usredniania linio-wego (GL_LINEAR) znajduje wartosci tekstury dla kazdej mipmapy; wynikowa tek-stura dla piksela jest srednia wazona tych dwóch wartosci

Filtry dla Minification ze słowem „_MIPMAP_”, daja pozadany efekt tylko wtedy, gdy aktualnatekstura obiektu zbudowana jest z mipmap, w przeciwym wypadku obiekt bedzie wyswietlanybez tekstury.

Parametry _wrapS i _wrapT okreslaja w jaki sposób tekstura ma byc nakładana w poziomiei pionie na obiekt, jezeli jej współrzedne nie pokrywaja sie idealnie z wierzchołkami scianelementu. Oba parametry moga przyjmowac dwie wartosci:

• GL_CLAMP - pojedyncza tekstura nakładana jest na sciane obiektu, a pozostały obszarwypełniany jest liniami o kolorach skrajnych pikseli tekstury,

• GL_REPEAT - tekstura nakładana jest na powierzchnie w postaci „kafelek”.

Page 43: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

6.2. ZARZADZANIE TEKSTURAMI W APLIKACJI GWELL 41

Zmienna _envMode okresla w jaki sposób wartosci punktów tekstury „reaguja” z materia-łem obiektu:

• GL_DECAL - kolory tekstury zastepuja kolor materiału,

• GL_MODULATE i GL_BLEND - kombinacja koloru tekstury i koloru materiału w zaleznosciod ilosci składowych koloru tekstury.

Aby tekstura obiektu reagowała na zmienne warunki oswietlenia, parametr ten nie moze bycustawiony na GL_DECAL.

Właczenie lub wyłaczenie przezroczystosci („mieszania” obiektu z innymi) realizowane jestpoprzez pole _blendingEnabled. Blending posiada dwa parametry: współczynniki okresla-jace w jaki sposób materiał i tekstura danego obiektu (zródło - _srcFactor) mieszaja sie zwartosciami przechowywanymi aktualnie w buforze (cel - _destFactor), zawierajacym nary-sowane juz fragmenty innych elementów (framebuffer). Wynikowa wartoscia piksela otrzyma-nego na ekranie bedzie suma tych współczynników.

Współczynniki zródła i celu moga przyjmowac wartosci:

• GL_ZERO - wartosc piksela wogle nie jest brana pod uwage;

• GL_ONE - pełna wartosc piksela;

• GL_DST_COLOR - wartosc koloru piksela, znajdujacego sie w buforze (framebuffer),

• GL_SRC_COLOR - wartosc koloru piksela obiektu,

• GL_ONE_MINUS_DST_COLOR - wartosc bedaca róznica liczby 1 i koloru piksela w buforze,

• GL_ONE_MINUS_SRC_COLOR - wartosc bedaca róznica liczby 1 i koloru piksela obiektu,

• GL_SRC_ALPHA - wartosc przezroczystosci piksela obiektu,

• GL_ONE_MINUS_SRC_ALPHA - róznica miedzy liczba 1 i wartoscia przezroczystosci pik-sela obiektu,

• GL_DST_ALPHA - wartosc przezroczystosci piksela w buforze,

• GL_ONE_MINUS_DST_ALPHA - róznica miedzy liczba 1 i wartoscia przezroczystosci pik-sela w buforze,

• GL_SRC_ALPHA_SATURATE - ?

Ustawienie: _srcFactor = GL_ONE i _destFactor = GL_ZERO jest równoznaczne z wyła-czeniem przezroczystosci.

Obiekt moze posiadac quasi-lustrzana powierzchnie odbijajaca elementy znajdujace sie wo-kół. Własnosc te okresla pole _reflectingEnabled.

Teksturowanie w aplikacji Gwell realizowane jest osobno dla kazdej pary trójkatnych scian.Współrzedne tekstury odpowiadaja współrzednym wierzchołków, utworzonej w ten sposóbczworobocznej sciany. Modyfikacja tych współrzednych przydaje sie na przykład w sytuacjach,gdy oryginalny obraz otoczony jest jakas ramka innego koloru - mozna ja wtedy łatwo wyeli-minowac.

Page 44: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

42 ROZDZIAŁ 6. OPIS ZREALIZOWANEGO SYSTEMU MODELOWANIA

6.2.3 Klasa TextureManagerKlasa TextureManager stworzona została do efektywnego zarzadzania teksturami elementów.Przechowuje liste struktur jednoznacznie okreslajacych obraz i w dynamiczny sposób ładuje lubusuwa je z pamieci karty graficznej. W aplikacji Gwell zadawanie tekstur obiektom odbywa sietylko i wyłacznie za posrednictwem klasy TextureManager. Klasa ta udostepnia uzytkowni-kowi liste załadowanych tekstur, umozliwiajac ponowne ich wykorzystanie (mozliwosc usta-wienia wskaznika do obiektu klasy QComboBox). Wszystkie metody klasy TextureManagersa statyczne, dzieki czemu mozna ich uzywac w dowolnym miejscu z ta sama lista tekstur.Aby klasa pracowała poprawnie nalezy na samym poczatku ustawic jej bazowe okno (kontekst)OpenGL, w którego przestrzeni przechowywane beda współdzielone testury. Kontekst bazowyw aplikacji Gwell jest wspólny dla wszystkich edycyjnych widoków OpenGL.

typ metoda opisstatic void setHostFrame(*) ustawienie bazowego kontekstustatic void setComboBox(*) QComboBox zawierac bedzie teksturystatic void addTextureToObject(*) zadaje teksture obiektowistatic void addTextureToObject(*)static void addTextureToObjects(*) zadaje teksture grupie obiektówstatic void addTextureToObjectsFromCombo(*) wybór tekstury z QComboBoxstatic void deleteTextureFromObject(*) usuwa teksture elementowistatic void deleteTexturesFromObjects(*) usuwa tekstury obiektom

const Texture& getTexture(*) zwraca teksture o podanym adresiestatic int howManyTexturesLoaded() zwraca liczbe załadowanych obrazów

static void removeUnusedTextures() usuwa nieuzywane tekstury z pamiecistatic void setAutoRemoveUnusedTextures(*) automatycznie usuwa nieuzywane

Tablica 6.5: Najwazniejsze metody klasy TextureManager (parametry oznaczone sagwiazdka).

Metoda setHostFrame( CellFrame* contextFrame ) ustawia widok z głównym kon-tekstem OpenGL, w którym ładowane beda tekstury. W Gwell wszystkie widoki dziela ten samkontekst, wiec nie ma znaczenia, które okno podamy jako parametr.Metoda ta musi zostac wywołana zanim TextureManager zostanie uzyty, jezeli nie - teksturybeda ładowane do nieokreslonego obszaru pamieci, a tym samym nie beda mogły byc wyko-rzystane. Jezeli taka sytuacja wystapi, wyswietlony zostanie stosowny komunikat.

Metoda setComboBox( QComboBox* comboBox ) pozwala ustawic wskaznik na rozwi-jalna liste, w której TextureManager bedzie umieszczał załadowane obrazy i za pomoca me-tody addTextureToObjectsFromCombo() umozliwiał aplikowanie elementowi wybranej tek-stury. Lista ta zawiera opis pojedynczej tekstury w postaci:

{ (miniaturka_obrazu) sciezka_do_pliku, typ_skalowania, wł/wył_mipmaping }.

Miniaturka obrazu jest przechowywana w polu _preview klasy Texture.Ustawienie wskaznika do takiej listy nie jest obowiazkowe i nie ma wpływu na prace klasy

TextureManager.

Page 45: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

6.2. ZARZADZANIE TEKSTURAMI W APLIKACJI GWELL 43

Metody: addTextureToObject() i addTextureToObjects() słuza do nadawania tek-stury pojedynczemu elementowi lub ich grupie i wystepuja z róznymi typami parametrów. Po-nizej opisane sa przeciazenia tych metod.

addTextureToObject( ViElemePolyhExt *elem,QString fileName,QImage::ScaleMode scaleMode,bool mipmapEnabled,const QImage *image)

zadaje elementowi elem teksture utworzona z obrazu w pliku fileName, przeskalowanymmetoda scaleMode w postaci serii mipmap lub pojedynczej tekstury (mipmapEnabled).

Zanim TextureManager utworzy nowa teksture, sprawdza czy obraz o takich parametrachnie znajduje sie juz w pamieci. Jezeli tak to przypisuje obiektowi jej adres fizyczny i domyslneparametry (TextureParams). Parametr image jest wczesniej utworzonym obiektem klasy QI-mage zawierajacym obraz. Obiekt tego typu przewaznie tworzony jest wczesniej przy gene-rowaniu podgladu podczas otwierania pliku. Poniewaz operacja ładowania obrazu z pliku dopamieci jest czasochłonna (szczególnie dla duzych obrazów), tutaj nie trzeba wykonywac jejwewnatrz ponownie.

addTextureToObject( ViElemePolyhExt *elem,TextureParams *textureParams)

zadaje elementowi elem parametry tekstury textureParams (wraz z adresem). Metoda tajest najczesciej stosowana, jezeli chcemy teksturowac dany obiekt w dokładnie taki sam sposóbjak inny.

addTextureToObjects( QPtrList<ViPolyhHierList> *objectsList,QString fileName,QImage::ScaleMode scaleMode,bool mipmapEnabled,const QImage *image)

działa dokładnie w taki sam sposób jak metoda addTextureToObject(), ale nadaje tek-sture grupie obiektów z listy objectsList.

Metody usuwajace teksture pojedynczemu elementowi lub grupie:

deleteTextureFromObject ( ViElemePolyhExt *elem ),deleteTexturesFromObjects ( QPtrList<ViPolyhHierList> *selectedList )

Parametry TextureParams pozostaja niezmienione oprócz pola zawierajacego adres tekstury -po usunieciu zawiera 0.

Dostep do obiektu, reprezentujacego teksture o konkretnym adresie mozemy uzyskac zapomoca metody const Texture& getTexture( GLuint ID, bool *ok=0 ). Parametr IDjest fizycznym adresem tekstury w pamieci. Jezeli zaden obraz nie znajduje sie pod danymadresem, zwracany jest obiekt zawierajacy „pusta” teksture - bez nazwy pliku. Rezultat wyszu-kiwania zawiera zmienna wskazywana przez *ok.

Page 46: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

44 ROZDZIAŁ 6. OPIS ZREALIZOWANEGO SYSTEMU MODELOWANIA

Metoda setAutoRemoveUnusedTextures( bool yes ) okresla, czy za kazdym razemprzy zadawaniu tekstury obiektowi maja byc wyszukiwane i usuwane nieuzywane tekstury (wy-wołanie removeUnusedTextures()). Jezeli nie to niewykorzystane obrazy beda cały czas wpamieci i usuwac trzeba je samodzielnie (removeUnusedTextures()). Domyslnie automa-tyczne usuwanie jest właczone.

Page 47: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Rozdział 7

Interfejs aplikacji Gwell

Aplikacja Gwell jest interaktywnym systemem modelowania grafiki 3D wykorzystujacym bi-blioteke VIONA[8]. VIONA (VIrtual rObot eNvironment librAry) jest obiektowo zorientowanabiblioteka przeznaczona do modelowania brył geometrycznych wraz z uwzglednieniem powia-zan kinematycznych w postaci otwartych łancuchów o strukturze drzewiastej. Biblioteka ta niezawiera w sobie zadnych elementów wiazacych ja z jakimkolwiek systemem graficznym.

Interfejs aplikacji Gwell został w całosci zrealizowany przy uzyciu biblioteki Qt firmy Trol-lTech[31] (w wersji 3.2). Do trójwymiarowej wizualizacji obiektów uzyto interfejsu OpenGLfirmy Silicon Graphics[27]. Biblioteka Qt oferuje specjalne okno widoku dla OpenGL w po-staci klasy QGLWidget. Dla zwiekszenia mozliwosci i oszczedzenia dodatkowej pracy wyko-rzystano w aplikacji biblioteke libQGLViewer (wersja 1.7.3) autorstwa Gilles-a Debunne[19],bedaca znacznym rozszerzeniem klasy QGLWidget pod wzgledem interaktywnosci i funkcjo-nalnosci. Programy pakietu Gwell były dotychczas kompilowane i testowane na platformie Li-nux i86. Uzytkownik moze pracowac z aplikacja w dowolnym jezyku (standardowo dołaczonesa: polski i angielski).

Aplikacja została podzielona na dwa osobne moduły: Modeler i Layout. Podział ten, podwzgledem funkcjonalnosci, wzorowany jest na programie LightWave:

• Gwell Modeler słuzy do budowy obiektu złozonego z kinematycznie powiazanych ele-mentów, nadawania mu materiału i tekstury (udostepnia równiez manipulowanie swia-tłami w celu obejrzenia reakcji materiału na zmienne warunki oswietlenia),

• Gwell Layout to edytor finalnej sceny budowanej z obiektów złozonych, oferuje dodat-kowo efekty mgły i cieni oraz rózne typy oswietlenia.

Interfejs obu modułów (równiez wzorowany na aplikacji LightWave) wyglada podobnie:górne zakładki steruja panelem narzedziowym znajdujacym sie po lewej stronie głównego oknaprogramu. Obszar roboczy, poczatkowo składajacy sie z czterech okien edycyjnych, znajdujesie po prawej stronie panelu narzedziowego. Kazde okno edycyjne posiada własne, ukrywalnemenu pozwalajace sterowac parametrami wyswietlania za pomoca myszy. Ponizej mamy sze-roki pasek statusu, w którym aplikacja na biezaco wyswietla informacje o swoim funkcjonowa-niu. Interfejs aplikacji Gwell jest bardzo elastyczny: kazde okno mozemy dowolnie skalowaclub ukrywac. Równiez obszar roboczy moze zawierac dowolna konfiguracje okien edycyjnych.Zdefiniowane skróty klawiaturowe pozwalaja znacznie przyspieszyc prace z programem.

45

Page 48: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

46 ROZDZIAŁ 7. INTERFEJS APLIKACJI GWELL

7.1 Interfejs Modeler-a

Rysunek 7.1: Gwell Modeler - interfejs.

Górne zakładki steruja zawartoscia lewego panelu. Zakładki te mozemy przełaczac równiezza pomoca klawiszy 1-7. Po prawej stronie zakładek znajduje sie globalne menu ustawiajacewłasciwosci wyswietlania wszystkim widokom edycyjnym.

Rysunek 7.2: Modeler - globalne menu własciwosci widoków.

Poszczególne kontrolki tego menu umozliwiaja: przejscie w tryb poruszania kamera (kla-wisz C), dopasowanie widoku do rozmiarów sceny (F), wyswietlanie siatki (G, H - siatka3D), wyswietlania osi układów współrzednych (Alt+A), pokazanie kształtów swiateł (Alt+L),zmiane domyslnego kierunku rzutowania (dowolny, z góry, z boku, z przodu), wybór trybuwyswietlania (w postaci siatki (Alt+W), prosty rendering (Alt+S), z teksturowaniem (Alt+T))oraz typu rzutowania (ortogonalne (O) lub perspektywiczne (P)).Kazde okno edycyjne posiada dodatkowo dwie opcje w menu: zrzut obrazu widoku do plikugraficznego (Ctrl+S) (obsługiwane formaty: JPEG, PNG, EPS, PS, XFig 3.2, RGB Bitmap(PPM), Windows BMP) oraz maksymalizacja aktualnego widoku (Ctrl+M) na cały obszar ro-boczy.

Page 49: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

7.1. INTERFEJS MODELER-A 47

7.1.1 Okno operacji na plikach (File)Okno umozliwia otwarcie/zapis (Open/Save) bryły

Rysunek 7.3: Modeler - okno ope-racji na plikach.

złozonej z/do pliku. Obiekty złozone przechowywanesa w plikach tekstowych z rozszerzeniem .mph. Pole-cenie New za zgoda uzytkownika usuwa aktualnie edy-towany obiekt z pamieci i czysci wszystkie widoki edy-cyjne. Przycisk Exit powoduje wyjscie z programu.

7.1.2 Okno dodawania obiektów (Draw)

Rysunek 7.4: Modeler - dodawaniebrył wzorcowych.

Rysunek 7.5: Modeler - dodawaniebrył złozonych.

Okno za pomoca jednego klikniecia dodaje obiekt złozony lub tworzy obiekt elementarny zbryły wzorcowej i dodaje go do edytowanego obiektu złozonego. Jezeli w momencie kliknieciawybrany był jakis obiekt - nowy element automatycznie staje sie jego potomkiem (klikniecie napusty obszar zaznacza główny edytowany obiekt złozony). Najechanie mysza na bryłe właczaanimacje jej obrotu, dzieki czemu mozna ja lepiej obejrzec.Poszczególne zakładki zawieraja biblioteki brył wzorcowych ładowane przy starcie aplikacji zkatalogu zdefiniowanego przez uzytkownika. Format zapisu pojedynczej biblioteki zamiesz-czony jest w rozdziale 5.1. Podobnie jak bryły wzorcowe, obiekty złozone ładowane sa wmomencie uruchamiania programu.

Page 50: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

48 ROZDZIAŁ 7. INTERFEJS APLIKACJI GWELL

7.1.3 Okno modyfikacji parametrów obiektu (Modify)W górnej czescia okna mamy zestaw przyci-

Rysunek 7.6: Modeler - okno modyfikacjiparametrów.

sków narzedzi. Kolejno od lewej strony sa to: na-rzedzie selekcji (klawisz A), translacji (T), rotacji(R), skali (S), zmiany hierarchii kinematycznej po-przez „podpinanie” jednego obiektu pod drugi (L).Ostatnie dwa przyciski wybieraja narzedzia trans-lacji i rotacji własnych układów współrzednych ele-mentu. Ruch kamera w oknie edycyjnym jest za-wsze nadrzedny nad działaniem modyfikatora. Zebyuzywac modyfikatora w danym oknie, najpierw trzebawyłaczyc w nim ruch kamery. Wyjatek stanowiwybór modyfikatora za pomoca klawisza - ruch ka-mery jest wtedy automatycznie wyłaczany w da-nym oknie.

Sposób działanie wszystkich modyfikatorów jesttaki sam - operuja na wczesniej zaznaczonych obiek-tach, gdy przytrzymany jest lewy klawisz myszy.Wyjatek stanowi jedynie modyfikator „podłaczania”(Link). Wybieramy element (lub grupe), który chcemydołaczyc do innego za pomoca narzedzia selekcji.Nastepnie wybieramy modyfikator podłaczenia i kli-kamy lewym klawiszem na obiekcie, który ma bycrodzicem zaznaczonych elementów. W tym mo-mencie zaznaczony zostanie obiekt docelowy. Je-zeli klikniemy na pusty obszar okna - rodzicem ele-mentów bedzie główny obiekt złozony. Programposiada zabezpieczenie przed próba podłaczenia ele-mentu do obiektu bedacego aktualnie jego potom-kiem - wyswietli wtedy stosowny komunikat. Za-lecane jest, aby do tej operacji właczyc w oknieedycyjnym tryb rysowania „rendering prosty”. Wtrybie rysowania za pomoca siatki trudno czasamizaznaczyc obiekt ze wzgledu na wyglad kursora,a w trybie teksturowanym nie jest pokazywane za-znaczenie elementów.

Sekcja Transformation umozliwia reczne wpi-sanie współczynników transformacji przesuniecia,obrotu (w stopniach lub radianach) i skali. KlawiszENTER zatwierdza wprowadzone zmiany dla da-nej transformacji.

Grupa Dimensions pozwala zadac obiektowi okre-slone wymiary finalne. Skala jest automatyczniedopasowywana do wymiarów pierwotnych bryły wzor-cowej. Klawisz ENTER zatwierdza wprowadzonewymiary.

Coords transformation zawiera pola do wprowadzania przesuniecia i obrotu własnego układuwspółrzednych bryły. Zmiany równiez zatwierdzane sa klawiszem ENTER.

Page 51: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

7.1. INTERFEJS MODELER-A 49

W sekcji Object’s name mozemy wpisac własna nazwe obiektu. Nizej, w polach Parent iPath, wyswietlane sa odpowiednio: nazwa obiektu bedacego rodzicem elementu i pełna sciezkado tego elementu w strukturze drzewiastej. Przy wpisywaniu nazwy obiektu dozwolone sa tylkoznaki: [A-Z][0-9][_]. Kazdorazowo przy wpisywaniu ciagu znaków sprawdzane jest, czy obiekto takiej nazwie juz istnieje. Jezeli tak - zmiana nazwy nie jest dopuszczana. Aby zmienic nazwegłównej bryły złozonej nalezy kliknac narzedziem selekcji na pusty obszar okna edycyjnego.

W polu Primitive type wyswietlana jest nazwa bryły wzorcowej modelujacej element. Typbryły mozemy dowolnie zmieniac wybierajac go z rozwijanej listy wszystkich załadowanychwzorców.

7.1.4 Okno hierarchii obiektów (Objects)

Rysunek 7.7: Modeler - okno hierarchii obiek-tów.

Rysunek 7.8: Modeler - model z za-znaczonymi elementami.

Okno Objects pokazuje wszystkie obiekty potomne głównej bryły złozonej w postaci drzewabadz sciezek (obrazuje to równiez przykład z rozdziału 5.1). Tryb wyswietlania wybieramy zapomoca górnych przycisków. Wewnetrzne okno podzielone jest na dwie kolumny: pierwsza(Object) zawiera nazwe obiektu i za pomoca ikony reprezentuje jego typ (bryła elementarna czyzłozona), druga (Pattern Polyhedron) pokazuje nazwe bryły wzorcowej dla obiektów elemen-tarnych. Ponizej tego okna znajduje sie pasek wyswietlajacy pełna sciezke do zaznaczonegoobiektu.

W oknie Objects mozemy dowolnie zaznaczac obiekty mysza. Ułatwiaja to klawisze: Shifti Ctrl. Wazna informacja jest, ze w obszarze tego okna nie działaja zadne inne klawisze (jak np.DELETE). Klikajac na nagłówek kolumny mozemy posortowac nazwy obiektów i wzorców (zciagłym zachowaniem hierarchii).

Rysunek 7.7 pokazuje przykładowa hierarchie elementów w modelu robota IRB6. Na ry-sunku 7.8 pokazany jest model z zaznaczonymi elementami.

Page 52: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

50 ROZDZIAŁ 7. INTERFEJS APLIKACJI GWELL

7.1.5 Okno edycji oswietlenia (Lights)Aby uzyskac jakikolwiek efekt w postaci renderowa-

Rysunek 7.9: Modeler - okno edy-cji oswietlenia.

nego obrazu trzeba zdefiniowac conajmniej jedno zró-dło swiatła. Wszystkie operacje zwiazane z oswietle-niem wykonuje sie w oknie edycji oswietlenia. W mo-dule Modeler aplikacji Gwell parametry zródeł swiatłanie sa zachowywane razem z bryła. Okno to słuzy tylkojako pomoc w odpowiednim ustawieniu własciwosci ma-teriałów (reakcji na rózne warunki oswietlenia).

Mozemy właczyc lub wyłaczyc globalne oswietlenieza pomoca checkBox-a znajdujacego sie po lewej stro-nie etykiety okna. Dodawanie i usuwanie zródeł swiatłarealizuje sie za pomoca przycisków add Light i delete Li-ght. Wiekszosc implementacji OpenGL udostepnia mak-symalnie 8 zródeł oswietlenia.

W wewnetrznym oknie pokazywane sa wszystkie swia-tła (mozna im nadawac własne nazwy) z mozliwoscia ichwłaczania i wyłaczania oraz zmiany typu emisji: Bulb(„zarówka”) - zródło emitujace swiatło we wszystkichkierunkach, Spotlight - reflektor emitujacy swiatło w po-staci tzw. „stozka swietlnego”. Ten rodzaj zródła posiadadodatkowe parametry.

Przyciski move Light i change Direction pozwalajaza pomoca myszy zmieniac odpowiednio: pozycje swia-tła (o ile jest pozycyjne) i kierunek emisji (o ile jest typu„reflektor”). Dla widoku edycyjnego, w którym modyfi-kujemy którys z tych parametrów automatycznie właczysie rysowanie zródeł swiatła.

Parametr Light is okresla czy swiatło jest pozycyjne(Positional), czyli jest umiejscowione w danym punk-cie przestrzeni (np. lampa), czy jest kierunkowe (Di-rectional) - znajduje sie w nieskonczonosci (np. słonce).Nastepnie mozemy recznie ustawic wartosci pozycji Po-sition i kierunku Direction, zatwierdzajac zmiany kla-wiszem ENTER. Dla swiatła kierunkowego nie moznaustawic pozycji. Natomiast kierunku emisji nie moze po-siadac zródło typu „zarówka”.

Parametr Attenuation opisuje współczynnik rozpro-szenia swiatła (F). Jego poszczególne składniki: linear,constant i quadratic wpływaja na swiatło według poniz-szego wzoru:

F =1

constant + linear ∗d + quadratic∗d2 ,

gdzie d jest odległoscia miedzy zródłem swiatła a oswie-tlanym wierzchołkiem obiektu.

Kolejne dwa parametry: Exponent i CutOff moga byc ustawiane tylko dla swiatła pozycyj-nego skierowanego. Exponent okresla stopnien koncentracji snopa swiatła wokół głównej osiemisji, im wieksza wartosc tego parametru tym wieksze skupienie. Domyslnie wynosi on 0,

Page 53: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

7.1. INTERFEJS MODELER-A 51

tzn. ze swiatło jest równomiernie emitowane w całym stozku. CutOff jest miara w stopniachokreslajaca kat rozwarcia stozka, mierzony miedzy tworzaca stozka a jego wysokoscia.

Mozemy tez okreslic czy dane zródło swiatła ma sie poruszac razem z kamera (w przeciwymprzypadku bedzie stacjonarne wzgledem sceny). Decyduje o tym pole Light moves with camera.W rzeczywistosci odpowiada to lampie zainstalowanej nad obiektywem kamery, skierowanejrównolegle z ogniskowa obiektywu.

Na samym dole mamy trzy zakładki z oknami do edycji odpowiedniego koloru swiatła:ambient, diffuse i specular. Wyjasnienie tych cech ooswietlenia i ich interakcji z obiektamizostało przedstawione w rozdziale 6.1.

Page 54: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

52 ROZDZIAŁ 7. INTERFEJS APLIKACJI GWELL

7.1.6 Okno edycji ustawien (Options)Ustawienia sa wspólne dla całej aplikacji Gwell. Je-

Rysunek 7.10: Modeler - okno edy-cji ustawien.

dyna róznice stanowi ustawienie jezyka komunikacji zuzytkownikiem, poniewaz musi byc osobny plik z tłuma-czeniem dla Modeler-a i osobny dla Layout-a.

W sekcji Directories ustawiamy wszystkie sciezki do-stepu, z których program bedzie korzystał podczas łado-wania danych przy starcie oraz w czasie pracy.

Katalog Libs zawiera biblioteki brył elementarnych(.lib). Z katalogu Objects wczytywane beda bryły zło-zone (.mph) do okna dodawania obiektów. Dodatkowo,jezeli obiekt złozony bedacy czescia innego nie zosta-nie odnaleziony w podanej sciezce, przeszukana zostaniekartoteka Objects. Katalog ten bedzie równiez propono-wany przy zapisywaniu nowych obiektów.

Sciezka Scenes nie jest uzywana przez Modeler-a,wykorzystuje ja Layout do przechowywania gotowychscen.

Z kartoteki Materials wczytywane beda wszystkiegotowe materiały do wykorzystania w edytorze materiałui tekstury (patrz rozdziały: 7.1.9 i 7.1.10).

Katalog Images bedzie przeszukiwany w przypadkunieznalezienia obrazu w sciezce zapisanej w parametrachteksturowanego elementu. Kartoteka ta jest równiez uzy-wana jako poczatkowa przy wybieraniu pliku graficznegodo teksturowania.

Sciezka Languages jest przegladana przy starcie pro-gramu w poszukiwaniu plików Qt Translator-a. Sa toskompilowane pliki z tłumaczeniami z rozszerzeniem .qm.Modeler wyszukuje pliki zawierajace w nazwie słowo„model”, Layout - „layout”. Znalezione tłumaczenia saumieszczane w rozwijalnej liscie wyboru Language wsekcji Other. Domyslnym jezykiem jest angielski.

Sekcja Colors zawiera ustawienia kolorów, w jakichbeda wyswietlane elementy w oknach edycyjnych: tło,obiekt rysowany za pomoca linii, obiekt renderowany bezmateriału i tekstury, siatka płaska i trójwymiarowa, kształtyswiateł, ramka aktywnego widoku oraz tekst informujacyo działaniu modyfikatorów pojawiajacy sie lewym dol-nym rogu widoku.

Ustawien jakosci renderingu dokonujemy w sekcji Render Options. GL_SHADE_MODEL okre-sla czy powierzchnie maja byc cieniowane czy nie. GL_CORRECION_HINT pozwala ustawic trybwygładzania perspektywy (najszybszy, najładniejszy, bez znaczenia).

W sekcji Other mozemy okreslic dokładnosc wyswietlania liczb w całej aplikacji za pomocapola Decimal Digits. Nizej wybieramy jezyk dla Modeler-a. Zeby zmiana jezyka odniosłaefekt, nalezy zapisac ustawienia z nowo wybranym jezykiem (sekcja Settings, przycisk Savesettings) i ponownie uruchomic program.

Zapisywanie, przywracanie wczesniej zapisanych lub „fabrycznych” ustawien dokonuje siew sekcji Settings.

Page 55: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

7.1. INTERFEJS MODELER-A 53

7.1.7 Okno pomocy (Help)Okno pomocy zawiera krótkie informacje na te-

Rysunek 7.11: Modeler - okno pomocy.

mat wszystkich skrótów klawiaturowych obowia-zujacych w module Modeler-a.

Dwa dolne przyciski pokazuja informacje o pro-gramie i zastosowanych bibliotekach (VIONA, li-bQGLViewer oraz Qt).

Page 56: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

54 ROZDZIAŁ 7. INTERFEJS APLIKACJI GWELL

7.1.8 Tryby wyswietlaniaWszystkie okna widokowe pracuja w srodowisku OpenGL. Dzieki temu uzyskujemy pełna ak-celeracje sprzetowa dla wyswietlania. Okno edycyjne moze wyswietlac modelowany obiekt wtrzech trybach rysowania: jako siatka („druciak”), w trybie prostego renderingu oraz w pełnymtrybie z materiałami, teksturami i efektami. Kazde z okien moze równiez wyswietlac elementypomocnicze: pozioma siatke (podłoge), siatke 3D, osie układów współrzednych elementóworaz kształty swiateł. W module Layout (patrz rozdział 7.2) jest dodatkowo mozliwosc wy-swietlania obrysów prostopadłosciennych. Kazde z okien edycyjnych posiada własne menu dozmiany parametrów wyswietlania. Menu zostało omówiono w rozdziale 7.1.Tryby wyswietlania razem z dodatkowymi elementami:

Rysunek 7.12: Modeler - renderingprosty, rzut perspektywiczny, widok zprzodu, siatka pomocnicza 3D, naryso-wane zródło swiatła.

Rysunek 7.13: Modeler - obiekt ryso-wany jako „druciak”, rzut prostopadły,widok dowolny, narysowane osie ukła-dów współrzednych elementów.

Rysunek 7.14: Modeler - obiekt teksturo-wany, rzut prostopadły, widok z góry.

Rysunek 7.15: Modeler - obiekt tekstu-rowany, rzut perspektywiczny, widok do-wolny, pozioma siatka pomocnicza.

Page 57: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

7.1. INTERFEJS MODELER-A 55

7.1.9 Edytor własciwosci materiałuEdytor materiału znajduje sie w jednym oknie dialogowym razem z edytorem własciwosci tek-stury (patrz rozdział 7.1.10) pod zakładka Material. Aby edytowac własnosci materiału nalezywybrac element lub ich grupe i z podrecznego menu (wywoływanego prawym przyciskiemmyszy) wybrac Material Editor.

Rysunek 7.16: Modeler - edytor własciwosci materiału.

Sposób, w jaki poszczególne parametry oddziałuja na ostateczny wyglad materiału, szcze-gółowo opisuje rozdział 6.1.

Pole Material Enabled włacza lub wyłacza stosowanie materiału dla obiektów lub ich grupy.Wybór typu scian elementu, którym aplikowany jest materiał wybiera sie za pomoca przełacz-nika Apply material to. Opcja Dynamic preview włacza lub wyłacza odswiezanie widokówedycyjnych za kazdym razem, gdy zmieniony zostanie którys z parametrów materiału. Nie za-wsze chcemy miec właczony podglad - jezeli na scenie znajduje sie duzo obiektów, odswiezaniemoze działac dosyc wolno.

Nizej znajduja sie okna do zmiany poszczególnych kolorów materiału oraz poziomu poły-skliwosci obiektu. Ponizej tego ostatniego znajduja sie dwa przyciski:

• Make default - ustawia aktualny materiał jako domyslny; wszystkie nowo utworzone ele-menty beda posiadały takie własciwosci;

• Reset to defaults - ustawia domyslny materiał aktualnie edytowanym elementom.

Material Editor oferuje przydatna mozliwosc wygenerowania pełnego kodu opisujacegomateriał według składni biblioteki OpenGL. Gotowa sekwencja polecen moze byc od razuumieszczona w kodzie zródłowym własnego programu korzystajacego z tej biblioteki. Składniemateriału generuje sie naciskajac przycisk generate OpenGL syntax.

Page 58: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

56 ROZDZIAŁ 7. INTERFEJS APLIKACJI GWELL

W momencie otwierania dialogu, wczytywane sa z dysku wszystkie zapisane wczesniejmateriały. Ich nazwy umieszczane sa w rozwijalnej liscie znajdujacej sie ponizej przyciskugenerowania składni OpenGL. Wybierajac materiał z listy ładujemy go do edytora. Zapis mate-riału udostepnia przycisk Save material as..., który otwiera okno dialogowe z prosba o wpisanienazwy własnej dla materiału i zapisuje go na dysk w pliku o tej własnie nazwie z rozszerze-niem .mat. Jezeli taki plik juz istnieje - dołacza do nazwy kolejne cyfry. Pliki z materiałamizapisywane sa w katalogu specjalnie zdefiniowanym przez uzytkownika (patrz rozdział 7.1.6).Materiały zapisywane sa w formacie XML. Ponizej znajduje sie przykładowa zawartosc poje-dynczego pliku:

<Material materialName="błyszczaca stal"><ambientColor alpha="1" blue="0.2" red="0.2" green="0.2" /><diffuseColor alpha="1" blue="0.317647" red="0.317647" green="0.317647" /><specularColor alpha="1" blue="0.156863" red="0.568627" green="0.368627" /><emissionColor alpha="1" blue="0.164706" red="0.164706" green="0.164706" /><shininess shininess="16" />

</Material>

Klikniecie przycisku OK spowoduje ostateczne zadanie materiału zaznaczonym elementom.Nacisniecie Cancel przywróci im wszystkie poprzednie własciwosci.

7.1.10 Edytor własciwosci tekstury

Edytor tekstury, podobnie jak materiału, uruchamia sie z podrecznego menu wywoływanegokliknieciem prawym przyciskiem myszy na zaznaczonych elementach.

Rysunek 7.17: Modeler - edytor własciwosci tekstury.

Page 59: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

7.1. INTERFEJS MODELER-A 57

Znaczenie parametrów ustawianych za pomoca okna dialogowego tekstury dokładnie opi-suje rozdział 6.2.1.

Pole Texture Enabled okresla czy obiekt ma byc wyswietlany jako teksturowany czy tez nie.Opcja Dynamic preview ma dokładnie takie same znaczenie jak w edytorze materiału (patrzrozdział 7.1.9). Ustawienie opcji Mipmaping decyduje o tym w jaki sposób tekstura bedzieładowana do pamieci: w postaci pojedynczego obrazu czy mipmap. Drugie rozwiazanie dajewieksza szybkosc działania i lepsza jakosc obrazu kosztem wiekszego zuzycia pamieci. Dla dzi-siejszych kart graficznych nie jest to jednak znaczace obciazenie i ładowanie tekstur w postacimipmap jest właczone domyslnie oraz zaleca sie jego stosowanie. Okno Texture Parameterszawiera parametry filtrowania, nakładania i reakcji tekstury na oswietlenie. Ponizej znajdujasie ustawienia dotyczace przezroczystosci (Blending). Okno Texture Coords pozwala zmienicwspółrzedne tekstury wzgledem docelowej sciany obiektu. Poniewaz w aplikacji Gwell pro-stokatna tekstura nakładana jest na czworoboczne sciany (złozone z dwóch trójkatów), mamycztery punkty jednoznacznie definiujace nałozenie obrazu na sciane.

W oknie Image Parameters mamy mozliwosc załadowania obrazu z pliku dyskowego, kli-kajac na przycisku load Image. Rozwijana lista pozwala wybrac tryb skalowania obrazu, jezelijego wymiary nie sa potegami liczby 2. W zaleznosci od wyboru trybu skalowania, automa-tycznie zmieni sie podglad utworzonego obrazu. Mozemy tez oczywiscie usunac obraz teksturydanemu obiektowi klikajac przycisk remove image. Pod oknem podgladu obrazu znajduja sieinformacje: pełna sciezka do pliku z obrazem, jego oryginalne wymiary (przed ewentualnymskalowaniem) oraz rozmiar z jakim został załadowany do pamieci. Jezeli skalowanie nie byłopotrzebne - w obu polach pojawia sie takie same wartosci. Edytor parametrów tekstury wzaden sposób nie modyfikuje oryginalnego pliku dyskowego z obrazem.

Jednym z najwazniejszych elementów całego okna jest rozwijalna lista z teksturami juzznajdujacymi sie w pamieci. Korzystajac z nich, mozna znacznie zwiekszyc szybkosc wyswie-tlania sceny.

Działanie przycisków OK i Cancel jest takie samo jak w edytorze materiału.

7.1.11 Edytor ograniczen kinematycznych

Rysunek 7.18: Modeler - edytor ograniczen kinematycznych.

Page 60: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

58 ROZDZIAŁ 7. INTERFEJS APLIKACJI GWELL

Edytor ograniczen kinematycznych obecnie nie ma zastosowanie ze wzgledu na brak imple-mentacji mechanizmów symulacyjnych w bibliotece VIONA. W przyszłosci bedzie pozwalał nazdefiniowanie zakresów ruchu dla konkretnych przegubów robotów (elementów multidrzewa).Podobnie jak edytory materiału i tekstury, równiez uruchamiamy go z podrecznego menu. Woknie dialogowym podajemy os ruchu oraz zakres. Na rysunku 7.18 mamy zdefniowana moz-liwosc translacji wzdłuz osi OX w zakresie 0-20 jednostek oraz rotacji wokół osi OZ o kat90◦. Mozna zdefiniowac kilka mozliwosci ruchu dla kazdej transformacji. Definiowane w tensposób przemieszczenia stosowane sa do macierzy przekształcenia do układu współrzednychrodzica obiektu.

7.2 Interfejs Layout-aInterfejs Layout-a jest niemal taki sam jak interfejs Modeler-a (patrz rozdział 7.1). DodatkowoLayout oferuje symulacje kinematyki oraz kilka dodatkowych efektów. Do grupy wyswietla-nych elementów pomocniczych dodano rysowanie obrysów prostopadłosciennych brył złozo-nych (klawisz B lub klikniecie na przycisk w menu). W rozdziale tym omówione zostana tylkoróznice w stosunku do interfejsu Modeler-a.

7.2.1 Okno operacji na plikach (File)Layout otwiera i zapisuje pliki zawierajace kompletny opis sceny (rozszerzenie .scn). W plikuzapisana jest nazwa sceny, parametry wszystkich swiateł i mgły oraz sciezki i nazwy wszystkichwykorzystanych brył złozonych. Jezeli podczas otwierania pliku którys z obiektów nie zosta-nie odnaleziony w podanej sciezce, przeszukany zostanie katalog objects zdefiniowany przezuzytkownika w oknie ustawien (patrz rozdział 7.1.6).

7.2.2 Okno dodawania obiektów (Draw)W tym oknie mamy mozliwosc dodawania tylko gotowych brył złozonych. Layout operujetylko na takich obiektach, traktujac je jak pojedyncze bryły.

7.2.3 Okno modyfikacji parametrów obiektu (Modify)W stosunku do Modeler-a, okno to zostało znacznie zubozone. Ze wzgledu sposób traktowaniaprzez Layout-a obiektów złozonych, dostepne sa tylko trzy modyfikatory: translacji, rotacji iskali oraz oczywiscie narzedzie selekcji.

7.2.4 Okno hierarchii obiektów (Objects)W oknie Objects wyswietlana jest lista wszystkich obiektów sceny. Nie wystepuja tutaj zadnehierarchiczne zaleznosci - wszystkie bryły złozone sa równorzedne wzgledem siebie (sa potom-kami obiektu reprezentujacego scene).

7.2.5 Okno edycji oswietlenia (Lights)Okno to wyglada w taki sam sposób jak w interfejsie Modeler-a. Róznica polega na tym, zeparametry wszystkich swiateł zapisywane sa w pliku sceny (w Modelerze te parametry nigdzienie sa zapisywane, słuza jedynie jako pomoc przy definiowaniu parametrów materiału).

Page 61: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

7.2. INTERFEJS LAYOUT-A 59

7.2.6 Okno edycji parametrów mgły (Fog)Efekt mgły mozna dodawac tylko w module Layout.

Rysunek 7.19: Layout - okno edycjiparametrów mgły.

Parametry te sa zapisywane w pliku z opisem sceny. Mgła,jezeli jest właczona, wyswietlana jest tylko w trybie ry-sowania z teksturowaniem i generowana jest dla global-nego układu współrzednych sceny (nie jest zwiazana zpołozeniem i orientacja kamery). Algorytm generowaniatego efektu oparty jest na „mieszaniu” koloru obiektu zkolorem mgły w zaleznosci od wartosci współczynnikamieszania (z przedziału [0,1]). Sposób obliczania tegowspółczynnika (vide róznego typu mgły) wybieramy z li-sty Fog mode. Gestosc mgły definiujemy w polu Fog den-sity. Gestosc moze byc rozumiana jako ilosc czasteczekpary wodnej tworzacych mgłe. Wartosci Fog start i Fogend okreslaja „rozpietosc” mgły wzdłuz osi Z globalnegoukładu współrzednych sceny - jej poczatek i koniec. Wtym obszarze rozmieszczona bedzie „ilosc czasteczek”zdefiniowana wczesniej w polu Fog density. Zmniejsza-jac rozpietosc tego obszaru, zwiekszamy poziom kon-densacji mgły. Nizej mamy okno definiujace kolor mgły(Fog color). Najbardziej realistyczny efekt uzyskamy, je-zeli kolor mgły bedzie taki sam jak kolor tła sceny - re-alizuje to przycisk Get background color. Jest to kolorzdefiniowany wczesniej w ustawieniach przez uzytkow-nika (patrz rozdział 7.1.6).

Ponizej przedstawione sa typy mgły oraz sposoby ob-liczania współczynnika „mieszania” f w bibliotece OpenGL.We wzorach stosowane sa podstawienia: density = Fogdensity, z = odległosc miedzy obserwatorem a srodkiem

zamglonego obiektu, start/end = Fog start/Fog end:

• GL_EXP, wzór na współczynnik mieszania: f = e−(density∗z); mgła typu eksponencjalnego- obiekty szybciej „znikaja” we mgle wraz z oddalaniem sie obserwatora (rysunek 8.6);

• GL_EXP2, f = e−(density∗z)2; równiez mgła typu eksponencjalnego, ale w porównaniu z

wczesniejsza o wiele gestsza - obiekty znikaja znacznie szybciej (rysunek 8.7);

• GL_LINEAR, f = end−zend−start ; mgła typu liniowego, obiekty gina we wgle proporcjonalnie

w miare oddalania sie obserwatora; ten typ mgły wyglada zdecydowanie najładniej i naj-bardziej odpowiada rzeczywistosci (rysunek 8.8).

7.2.7 Okno edycji ustawien (Options)W porównaniu z modułem Modeler, Layout wykorzystuje sciezke scenes. Jej podanie nie jestwymagane, nie ma tez wpływu na funkcjonowanie aplikacji. Podana kartoteka jest uzywanajako poczatkowa w oknie wyboru pliku sceny do otwarcia. Analogicznie, równiez przy zapi-sywaniu sceny, proponowany jest ten katalog. Mimo ze, Layout operuje tylko na obiektachzłozonych, wymagane jest prawidłowe podanie sciezki do kartoteki z bibliotekami uzywanychbrył wzorcowych. Tylko wtedy mozliwe bedzie załadowanie z plików brył złozonych tworza-cych dana scene.

Page 62: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

60 ROZDZIAŁ 7. INTERFEJS APLIKACJI GWELL

Page 63: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Rozdział 8

Model Laboratorium 010

W tym rozdziale przedstawione zostana wyniki przeprowadzonej próby zamodelowania labo-ratorium 010, znajdujacego sie w piwnicy budynku C-3 Politechniki Wrocławskiej. Wszystkiewymiary modelu odpowiadaja rzeczywistym.

Rysunek 8.1: Model Laboratorium 010 - widok z góry, rzut prostopadły, wyswietlanie w postacisiatki.

61

Page 64: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

62 ROZDZIAŁ 8. MODEL LABORATORIUM 010

Rysunek 8.2: Model Laboratorium 010 - widok dowolny, rzut perspektywiczny, wyswietlaniew postaci siatki.

Rysunek 8.3: Model Laboratorium 010 - widok dowolny, rzut perspektywiczny, rendering pro-sty.

Page 65: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

63

Rysunek 8.4: Model Laboratorium 010 - widok dowolny, rzut perspektywiczny, wyswietlaniez teksturowaniem.

Rysunek 8.5: Model Laboratorium 010 - przykładowy widok.

Page 66: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

64 ROZDZIAŁ 8. MODEL LABORATORIUM 010

Rysunek 8.6: Model Laboratorium 010 - mgła typu eksponencjonalnego GL_EXP.

Rysunek 8.7: Model Laboratorium 010 - mgła typu eksponencjonalnego GL_EXP2.

Page 67: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

65

Rysunek 8.8: Model Laboratorium 010 - mgła typu liniowego GL_LINEAR.

Rysunek 8.9: Model Laboratorium 010 - przykładowy widok.

Page 68: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

66 ROZDZIAŁ 8. MODEL LABORATORIUM 010

Rysunek 8.10: Model Laboratorium 010 - swiatło kierunkowe o kacie rozwarcia stozka 45◦.

Rysunek 8.11: Model Laboratorium 010 - kierunkowe swiatło o rozwarciu 20◦ z cechami Am-bient, Diffuse i Specular posiadajacymi tylko składowa czerwona.

Page 69: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

67

Rysunek 8.12: Model Laboratorium 010 - zalety płynace z mipmapingu i filtrowania metodaGL_LINEAR_MIPMAP_LINEAR (patrz rozdział 6.2.1).

Rysunek 8.13: Model Laboratorium 010 - mipmaping, bez problemu widac nawet najmniejszeszczegóły tekstury.

Page 70: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

68 ROZDZIAŁ 8. MODEL LABORATORIUM 010

Rysunek 8.14: Model Laboratorium 010 - rysowanie obrysów prostopadłosciennych brył zło-zonych.

Rysunek 8.15: Model Laboratorium 010 - rysowanie za pomoca siatki i prosty rendering mogabyc realizowane w dowolnych kolorach.

Page 71: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

69

Rysunek 8.16: Model Laboratorium 010 - przykładowy widok.

Rysunek 8.17: Model Laboratorium 010 - przykładowy widok.

Page 72: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

70 ROZDZIAŁ 8. MODEL LABORATORIUM 010

Page 73: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Rozdział 9

Podsumowanie

Wymagania postawione w załozeniach pracy zostały zrealizowane. Aplikacja Gwell stanowiprzyjazny, szybki i stosunkowo efektowny system jak na zastosowana technike modelowania.Wszystkie okna widokowe korzystaja ze sprzetowej akceleracji wyswietlania dla OpenGL (oile dana karta graficzna oferuje takie mozliwosci). Dzieki temu nawet złozone sceny, jak np.zamodelowane Laboratorium 010, wyswietlane sa płynnie nawet podczas animacji (wszyst-kie elementy maja ustawione najwyzsza jakosc teksturowania). Dodatkowo istotny jest fakt, zeaplikacja korzysta w tym samym czasie z czterech okien wyswietlania OpenGL. Dzieki duzemuzoptymalizowaniu pod katem wydajnosci, bezproblemowo pracuje nawet na komputerze z pro-cesorem AMD Duron 700MHz i karta graficzna NVidia Riva TNT2 z 32MB pamieci. Uwazamto za znaczace osiagniecie. Rendering czasu rzeczywistego z taka predkoscia i jakoscia do-brze rokuje przyszłym zastosowaniom symulacyjnym aplikacji. Obecnie jednak ze wzgledu nabrak implementacji mechanizmów symulacyjnych w bibliotece VIONA, Gwell udostepnia tylkoprosty dialog do definiowania zakresów ruchu dla elementów w strukturze kinematycznej.

Interfejs obu modułów jest intuicyjny i dowolnie konfigurowalny. Do celów prezentacyj-nych mozliwe jest rozszerzenie pojedynczego widoku na całe okno aplikacji. Wystarczy zwi-nac górne zakładki, boczny panel i dolne pole informacyjne. Skróty klawiaturowe dla niemalwszystkich akcji pozwalaja znacznie przyspieszyc prace z programem.

Rozszerzeniem (poza symulacja), które znacznie podniosłoby uzytecznosc aplikacji, byłbyna pewno edytor brył wzorcowych z mozliwoscia dodawania/usuwania wierzchołków, dziele-nia krawedzi i tworzenia nowych scian. Obecny sposób „recznego” definiowania opisu bryływ pliku biblioteki jest niewygodny i złozony ze wzgledu na wymagana odpowiednia kolejnoscwystepowania wierzchołków i krawedzi.Ciekawym rozszerzeniem byłoby równiez dodanie nowych transformacji (jak np. pochylenie)i utworzenie odpowiednich narzedzi do ich modyfikacji. Klasa reprezentujaca pojedynczy mo-dyfikator w aplikacji Gwell została specjalnie stworzona jako abstrakcyjna. Dodanie nowegonarzedzia nie przedstawia wiekszego problemu.

71

Page 74: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

72 ROZDZIAŁ 9. PODSUMOWANIE

Page 75: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Dodatek A

Format pliku zawierajacego opis sceny

Modele sceny przechowywane sa w plikach z rozszerzeniem .scn w formacie XML. Pliki teobsługiwane sa tylko w module Layout (patrz rozdział 7.2). Zapisywane sa parametry: zródełswiatła, mgły oraz obiektów złozonych tworzacych scene. Plik podzielony jest na sekcje, wktórych umieszczone sa poszczególne elementy:

<Scene name="nazwa_sceny"><!-- sekcja zawierajaca parametry wszystkich swiateł -->

<Lighting isEnabled="true"><Light name="zarówka" isEnabled="true" type="bulb" lightIs="positional"

exponent="0.0" cutOff="180.0" movesWithCamera="true"><position x="10.0" y="10.0" z="0.0" /><direction x="-1.0" y="-1.0" z="0.0" /><attenuation linear="1.0" constant="0.0" quadratic="0.0" /><ambientColor red="0.7" green="0.2" blue="0.7" alpha="1.0" /><diffuseColor red="0.2" green="0.4" blue="0.2" alpha="0.8" /><specularColor red="0.4" green="0.9" blue="0.2" alpha="1.0" />

</Light><!-- tutaj kolejne zdefiniowane zródła swiatła ... -->

</Lighting>

<!-- sekcja zawierajace parametry mgły --><Fog isEnabled="true" mode="GL_LINEAR" density="0.35"><distance start="0.0" end="50.0" /><color red="0.0" green="0.0" blue="0.0" alpha="1.0" />

</Fog>

<!-- sekcja zawierajace wszystkie bryły złozone wraz z ich transformacjami;bryły ładowane sa z podanych sciezek, jezeli nie zostana tam znalezione -program próbuje je załadowac ze zdefiniowanego katalogu "Objects" -->

<Elements><Object fileName="mph/hand.mph" name="reka">

<translation x="5.0" y="1.0" z="-1.0" /><rotation x="0.0" y="45.0" z="0.0" /><scale x="1.0" y="1.0" z="1.0" />

</Object><!-- tutaj kolejne bryły złozone ... --></Elements>

</Scene>

73

Page 76: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

74 DODATEK A. FORMAT PLIKU ZAWIERAJACEGO OPIS SCENY

Page 77: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Bibliografia

[1] Lighthouse 3D. http://www.lighthouse3d.com/opengl.

[2] Autodesk 3ds max. http://www.autodesk.com.

[3] Maxon Cinema 4D. http://maxon.net/jumps/cinema4d_portal_e.html.

[4] ATI. http://ati.com.

[5] Blender. http://blender3d.org, http://blender3d.pl.

[6] devMaster.net. http://www.devmaster.net.

[7] Weta Digital. http://www.wetadigital.com.

[8] dr inz. B.Kreczmer. VIONA (VIrtual rObot eNvironment librAry). Politechnika Wrocław-ska, ICT, 1995-2004.

[9] dr Przemysław Koprowski. Okruchy geometrii komputerowej. Uniwersytet Slaski, InstytutMatematyki, 2003-2004. http://unix.math2.us.edu.pl/perry/gk.

[10] J.Neider D.Shreiner T.Davis M.Woo. The OpenGL Programming Guide - The Redbook.Addison-Wesley, 2003-2004. http://opengl.org/documentation/red_book_1.0.

[11] Manex Entertainment. www.mvfx.com.

[12] Equinox. http://www.equinox3d.com.

[13] FlipCode. http://www.flipcode.com.

[14] GameDev.net. http://www.gamedev.net.

[15] id Software. http://www.idsoftware.com.

[16] Platige Image. http://www.platige.com.

[17] Innovation3D. http://innovation3d.sourceforge.net.

[18] KPovModeller. http://www.kpovmodeler.org.

[19] libQGLViewer. http://artis.imag.fr/membres/gilles.debunne/qglviewer.

[20] Mesa 3D Graphic Library. http://www.mesa3d.org.

[21] NewTek Lightwave. http://www.newtek.com.

[22] Alias Maya. http://www.alias.com/eng/products-services/maya.

75

Page 78: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

76 BIBLIOGRAFIA

[23] mgr K. Kaziura. Symulator aktywnego systemu wizyjnego. Politechnika Wrocławska, ICT,2003. promotor: dr inz. B.Kreczmer.

[24] Moray. http://www.stmuc.com/moray.

[25] NVidia. http://www.nvidia.com.

[26] POV-Ray The Persistence of Vision Raytracer. http://www.povray.org.

[27] Silicon Graphics OpenGL. http://www.opengl.org.

[28] Elysiun Blender Users Page. http://www.elysiun.com.

[29] Curious Labs Poser. http://www.curiouslabs.com.

[30] Neon Helium (NeHe) Productions. http://nehe.gamedev.net.

[31] Trolltech Qt. http://www.trolltech.com.

[32] YafRay: Yet Another Free RAYtracer. http://www.yafray.org.

[33] Pixar RenderMan. https://renderman.pixar.com.

[34] Newtonium RoboWorks. http://www.newtonium.com.

[35] Curious Labs Shade. http://www.curiouslabs.com.

[36] A. van Dam S.K.Feiner J.F.Hughes R.L.Phillips J.D.Foley. Wprowadzenie do grafiki kom-puterowej. Wydawnictwo Naukowo-Techniczne, Warszawa, 1995.

[37] Blue Moon Rendering Tool. http://www.bmrt.org.

[38] NVidia Cg Toolkit. http://www.nvidia.com/object/cg_toolkit.html.

Page 79: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Spis tresci

1 Wstep 1

2 Cel pracy i załozenia 3

3 Techniki modelowania obiektów 3D 5

4 Przeglad znanych rozwiazan 74.1 3ds max . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84.2 LightWave . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104.3 Maya . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.4 Cinema 4D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144.5 Blender . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164.6 Poser . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 184.7 Shade . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204.8 POV-Ray - The Persistence of Vision Raytracer . . . . . . . . . . . . . . . . . 22

4.8.1 Moray . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 234.8.2 KPovModeller . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.9 Equinox . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.10 Innovation3D . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.11 RoboWorks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27

5 Opis sposobu modelowania obiektów w bibliotece VIONA 295.1 Ogólna koncepcja . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 295.2 Charakterystyka poszczególnych klas . . . . . . . . . . . . . . . . . . . . . . 305.3 Reprezentacja kinematyki obiektów . . . . . . . . . . . . . . . . . . . . . . . 31

6 Opis zrealizowanego systemu modelowania 356.1 Materiał . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376.2 Zarzadzanie teksturami w aplikacji Gwell . . . . . . . . . . . . . . . . . . . . 38

6.2.1 Klasa Texture . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.2.2 Klasa TextureParams . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.2.3 Klasa TextureManager . . . . . . . . . . . . . . . . . . . . . . . . . . 42

7 Interfejs aplikacji Gwell 457.1 Interfejs Modeler-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46

7.1.1 Okno operacji na plikach (File) . . . . . . . . . . . . . . . . . . . . . 477.1.2 Okno dodawania obiektów (Draw) . . . . . . . . . . . . . . . . . . . . 477.1.3 Okno modyfikacji parametrów obiektu (Modify) . . . . . . . . . . . . 487.1.4 Okno hierarchii obiektów (Objects) . . . . . . . . . . . . . . . . . . . 497.1.5 Okno edycji oswietlenia (Lights) . . . . . . . . . . . . . . . . . . . . . 507.1.6 Okno edycji ustawien (Options) . . . . . . . . . . . . . . . . . . . . . 52

i

Page 80: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

ii SPIS TRESCI

7.1.7 Okno pomocy (Help) . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.1.8 Tryby wyswietlania . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.1.9 Edytor własciwosci materiału . . . . . . . . . . . . . . . . . . . . . . 557.1.10 Edytor własciwosci tekstury . . . . . . . . . . . . . . . . . . . . . . . 567.1.11 Edytor ograniczen kinematycznych . . . . . . . . . . . . . . . . . . . 57

7.2 Interfejs Layout-a . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587.2.1 Okno operacji na plikach (File) . . . . . . . . . . . . . . . . . . . . . 587.2.2 Okno dodawania obiektów (Draw) . . . . . . . . . . . . . . . . . . . . 587.2.3 Okno modyfikacji parametrów obiektu (Modify) . . . . . . . . . . . . 587.2.4 Okno hierarchii obiektów (Objects) . . . . . . . . . . . . . . . . . . . 587.2.5 Okno edycji oswietlenia (Lights) . . . . . . . . . . . . . . . . . . . . . 587.2.6 Okno edycji parametrów mgły (Fog) . . . . . . . . . . . . . . . . . . . 597.2.7 Okno edycji ustawien (Options) . . . . . . . . . . . . . . . . . . . . . 59

8 Model Laboratorium 010 61

9 Podsumowanie 71

A Format pliku zawierajacego opis sceny 73

Page 81: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Spis rysunków

4.1 3ds max - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.2 3ds max - kadr z filmu „Katedra” Tomasza Baginskiego. . . . . . . . . . . . . 94.3 3dsmax - to nie jest zdjecie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.4 LightWave Modeler - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . 114.5 LightWave - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . . . . 114.6 LightWave Layout - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . 114.7 LightWave - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . . . . 114.8 Maya - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134.9 Maya - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . . . . . . . 134.10 Cinema 4D - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.11 Sketch And Toon - rendering. . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.12 BodyPaint3D R2 - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.13 BodyPaint3D R2 - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . 154.14 Blender - modelowanie obiektu. . . . . . . . . . . . . . . . . . . . . . . . . . 174.15 Blender - animacja postaci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174.16 Blender - tworzenie interaktywnej gry. . . . . . . . . . . . . . . . . . . . . . . 174.17 Blender - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . . . . . 174.18 Poser - modelowanie postaci. . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.19 Poser - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . . . . . . . 194.20 Poser - animacja postaci. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 194.21 Poser - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . . . . . . . 194.22 Shade - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.23 Shade - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . . . . . . 214.24 Shade - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 214.25 Shade - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . . . . . . 214.26 POV-Ray - przykład. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.27 POV-Ray - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . . . . . 244.28 Moray - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.29 KPovModeller - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 244.30 Equinox - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 254.31 Equinox - przykładowy rendering. . . . . . . . . . . . . . . . . . . . . . . . . 254.32 Innovation3D - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.33 Innovation3D - UVEditor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264.34 RoboWorks - modelowanie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 284.35 RoboWorks - gniazdo produkcyjne. . . . . . . . . . . . . . . . . . . . . . . . . 284.36 RoboWorks - reczne sterowanie robotem Puma. . . . . . . . . . . . . . . . . . 284.37 RoboWorks - sterowanie z klawiatury. . . . . . . . . . . . . . . . . . . . . . . 28

5.1 Struktura wyswietlana w postaci drzewa . . . . . . . . . . . . . . . . . . . . . 305.2 Struktura wyswietlana w postaci sciezek . . . . . . . . . . . . . . . . . . . . . 30

iii

Page 82: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

iv SPIS RYSUNKÓW

5.3 Diagram klas (UML) wykorzystywanych do modelowania brył. . . . . . . . . 315.4 Ciag transformacji w przykładowym łancuchu kinematycznym. . . . . . . . . . 32

6.1 Klasa ViElemePolyhExt wraz z klasami towarzyszacymi. . . . . . . . . . . . . 35

7.1 Gwell Modeler - interfejs. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 467.2 Modeler - globalne menu własciwosci widoków. . . . . . . . . . . . . . . . . . 467.3 Modeler - okno operacji na plikach. . . . . . . . . . . . . . . . . . . . . . . . 477.4 Modeler - dodawanie brył wzorcowych. . . . . . . . . . . . . . . . . . . . . . 477.5 Modeler - dodawanie brył złozonych. . . . . . . . . . . . . . . . . . . . . . . 477.6 Modeler - okno modyfikacji parametrów. . . . . . . . . . . . . . . . . . . . . 487.7 Modeler - okno hierarchii obiektów. . . . . . . . . . . . . . . . . . . . . . . . 497.8 Modeler - model z zaznaczonymi elementami. . . . . . . . . . . . . . . . . . . 497.9 Modeler - okno edycji oswietlenia. . . . . . . . . . . . . . . . . . . . . . . . . 507.10 Modeler - okno edycji ustawien. . . . . . . . . . . . . . . . . . . . . . . . . . 527.11 Modeler - okno pomocy. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 537.12 Modeler - rendering prosty, rzut perspektywiczny, widok z przodu, siatka po-

mocnicza 3D, narysowane zródło swiatła. . . . . . . . . . . . . . . . . . . . . 547.13 Modeler - obiekt rysowany jako „druciak”, rzut prostopadły, widok dowolny,

narysowane osie układów współrzednych elementów. . . . . . . . . . . . . . . 547.14 Modeler - obiekt teksturowany, rzut prostopadły, widok z góry. . . . . . . . . . 547.15 Modeler - obiekt teksturowany, rzut perspektywiczny, widok dowolny, pozioma

siatka pomocnicza. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 547.16 Modeler - edytor własciwosci materiału. . . . . . . . . . . . . . . . . . . . . . 557.17 Modeler - edytor własciwosci tekstury. . . . . . . . . . . . . . . . . . . . . . . 567.18 Modeler - edytor ograniczen kinematycznych. . . . . . . . . . . . . . . . . . . 577.19 Layout - okno edycji parametrów mgły. . . . . . . . . . . . . . . . . . . . . . 59

8.1 Model Laboratorium 010 - widok z góry, rzut prostopadły, wyswietlanie w po-staci siatki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

8.2 Model Laboratorium 010 - widok dowolny, rzut perspektywiczny, wyswietlaniew postaci siatki. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

8.3 Model Laboratorium 010 - widok dowolny, rzut perspektywiczny, renderingprosty. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

8.4 Model Laboratorium 010 - widok dowolny, rzut perspektywiczny, wyswietlaniez teksturowaniem. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63

8.5 Model Laboratorium 010 - przykładowy widok. . . . . . . . . . . . . . . . . . 638.6 Model Laboratorium 010 - mgła typu eksponencjonalnego GL_EXP. . . . . . . 648.7 Model Laboratorium 010 - mgła typu eksponencjonalnego GL_EXP2. . . . . . . 648.8 Model Laboratorium 010 - mgła typu liniowego GL_LINEAR. . . . . . . . . . . 658.9 Model Laboratorium 010 - przykładowy widok. . . . . . . . . . . . . . . . . . 658.10 Model Laboratorium 010 - swiatło kierunkowe o kacie rozwarcia stozka 45◦. . 668.11 Model Laboratorium 010 - kierunkowe swiatło o rozwarciu 20◦ z cechami Am-

bient, Diffuse i Specular posiadajacymi tylko składowa czerwona. . . . . . . . 668.12 Model Laboratorium 010 - zalety płynace z mipmapingu i filtrowania metoda

GL_LINEAR_MIPMAP_LINEAR (patrz rozdział 6.2.1). . . . . . . . . . . . . . . 678.13 Model Laboratorium 010 - mipmaping, bez problemu widac nawet najmniejsze

szczegóły tekstury. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 678.14 Model Laboratorium 010 - rysowanie obrysów prostopadłosciennych brył zło-

zonych. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68

Page 83: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

SPIS RYSUNKÓW v

8.15 Model Laboratorium 010 - rysowanie za pomoca siatki i prosty rendering mogabyc realizowane w dowolnych kolorach. . . . . . . . . . . . . . . . . . . . . . 68

8.16 Model Laboratorium 010 - przykładowy widok. . . . . . . . . . . . . . . . . . 698.17 Model Laboratorium 010 - przykładowy widok. . . . . . . . . . . . . . . . . . 69

Page 84: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

vi SPIS RYSUNKÓW

Page 85: PRACA DYPLOMOWA MAGISTERSKA - rab.ict.pwr.wroc.plrab.ict.pwr.wroc.pl/~kreczmer/dyplomy/prace/2004/praca_dyplomowa... · Politechnika Wroca wska Wydzia Elektroniki Instytut Cybernetyki

Spis tablic

6.1 Dodatkowe pola klasy ViElemePolyhExt. . . . . . . . . . . . . . . . . . . . . 366.2 Pola klasy Material. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 376.3 Pola klasy Texture. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.4 Pola klasy TextureParams. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 396.5 Najwazniejsze metody klasy TextureManager (parametry oznaczone sa gwiazdka). 42

vii


Top Related