M a s a r y k o v a u n i v e r z i t a
Fakulta informatiky
ELEKTRONICKÁ SBÍRKA ÚLOH Z PROSTOROVÉHO MODELOVÁNÍ
V PROGRAMU CINEMA4D
Bakalářská práce
Martin Hájek
Brno, jaro 2007
ii
Prohlášení
Prohlašuji, že tato práce je mým původním autorským dílem, které jsem vypracoval samostatně.
Všechny zdroje, prameny a literaturu, které jsem při vypracování používal a nebo z nich čerpal,
v práci řádně cituji s uvedením úplného odkazu na příslušný zdroj.
Poděkování
Na tomto místě bych rád poděkoval Mgr. Tomášovi Staudkovi, Ph.D. za cenné připomínky
a odborné rady, kterými přispěl k vypracování této bakalářské práce.
Vedoucí práce: Mgr. Tomáš Staudek, Ph.D.
iii
Shrnutí
Vytvořená sbírka výukových lekcí slouží k rozšíření teoretických znalostí práce s modelovacím
a animačním programem Cinema4D o praktickou složku a to naučení se základům modelování
od jednoduchých objektů až po složitější scény a základy tvorby animací.
iv
Klíčová slova
Cinema4D, modelování, animace, parametrické modelování, polygonální modelování, tutoriál,
výukové lekce, aplikace, program
v
Obsah
Kapitola 1
Úvod................................................................................................................................................... 1
Kapitola 2
Popis vytvořených výukových lekcí..................................................................................................... 2 2.1 Základy práce a modelování jednoduchých objektů ................................................................. 2
2.1.1 Lekce 1 – Primitiva ............................................................................................................ 2 2.1.2 Lekce 2 – Práce s křivkami................................................................................................. 3
2.2 NURBS generátory .................................................................................................................. 4 2.2.1 Lekce 3 – Hyper NURBS................................................................................................... 4 2.2.2 Lekce 4 – Vytažení NURBS............................................................................................... 5 2.2.3 Lekce 5 – Rotace NUBRS ................................................................................................. 5 2.2.4 Lekce 6 – Potažení NURBS............................................................................................... 6 2.2.5 Lekce 7 – Protažení NURBS ............................................................................................. 7
2.3 Základy polygonálního modelování.......................................................................................... 7 2.3.1 Lekce 8 – Základy polygonálního modelování – tvorba hrnku .......................................... 8 2.3.2 Lekce 9 – Polygonální modelování – tvorba hrnku trochu jinak ........................................ 9 2.3.3 Lekce 10 – Polygonální modelování – tvorba čajové konvičky......................................... 10 2.3.4 Lekce 11 – Deformace ..................................................................................................... 10
2.4 Materiály, textury, osvětlení ................................................................................................... 11 2.4.1 Lekce 12 – Tvorba materiálů a textur a práce s nimi 1 ..................................................... 11 2.4.2 Lekce 13 – Tvorba materiálů a textur a práce s nimi 2 ..................................................... 12 2.4.3 Lekce 14 – Osvětlení scény .............................................................................................. 13 2.4.4 Lekce 15 – Venkovní osvětlení......................................................................................... 13
2.5 Základy animace scény a částicový systém ............................................................................. 14 2.5.1 Lekce 16 – Jednoduché animace ..................................................................................... 14 2.5.2 Lekce 17 – Pokročilá tvorba animace – časová osa, F-křivky........................................... 14 2.5.3 Lekce 18 – Morphing....................................................................................................... 15 2.5.4 Lekce 19 – Částicový systém............................................................................................ 16
vi
Kapitola 3
Aplikace Tutorial – Cinema4D [2.0], změny oproti předchozí verzi ................................................. 17 3.1 Popis úprav v aplikaci Tutorial – Cinema4D [2.0] .................................................................. 17 3.2 Popis prostředí aplikace.......................................................................................................... 18
3.2.1 Popis oken programu ...................................................................................................... 19 3.2.2 Ovládání aplikace ............................................................................................................ 19
Kapitola 4
Struktura a popis internetové prezentace věnované výukovým lekcím ............................................. 20 4.1 Popis internetové prezentace.................................................................................................. 20 4.2. Struktura internetové prezentace .......................................................................................... 21
Kapitola 5
Závěr ................................................................................................................................................ 24
Příloha
Obsah přiloženého CD ..................................................................................................................... 25 Literatura ......................................................................................................................................... 26
Kapitola 1
Úvod
Bakalářskou práci Elektronická sbírka úloh z prostorového modelování v programu Cinema4D
jsem si vybral, protože mne velmi zaujal předmět PB009 – Základy počítačové grafiky, vyučovaný
na Fakultě informatiky MU, který se v jeho praktické části věnoval práci s programem Cinema4D
sloužícím pro tvorbu 3D modelů a animací. I po úspěšném složení zkoušky jsem se o modelování
v programu Cinema4D více zajímal.
Na internetu existuje mnoho různých návodů a tutoriálů pro práci s tímto programem.
Bohužel však jsou informace po síti velmi roztroušené a nepokrývají celou problematiku.
Většina z těchto návodů se pak také věnuje pokročilejším formám modelování a předpokládá,
že uživatel již nějaké zkušenosti s prací v programu Cinema4D má.
Rozhodl jsem se proto navázat na práci Pavla Schneidera, který vytvořil aplikaci sloužící
jako interaktivní tutoriál – nápověda k programu Cinema4D.
Mým cílem bude doplnit tuto aplikaci vysvětlující funkci jednotlivých nástrojů, generátorů
a funkcí programu Cinema4D o praktické výukové lekce, čímž vznikne komplexní e-learningová
aplikace určená k výuce modelování a tvorby animací v programu Cinema4D. Tato aplikace by měla
posloužit především studentům Fakulty informatiky, kteří si zapíší předmět PB009 – Základy
počítačové grafiky.
Cílem výukových lekcí bude vytvoření velké scény skládající se z několika modelů
vytvořených v průběhu jednotlivých lekcí. Tato scéna bude následně kompletně otexturována
a nasvícena. V posledních lekcích pak bude názorně předvedena tvorba jednoduché animace
rozpohybováním několika objektů ve scéně. Důraz bude kladen na provázání lekcí v jeden kompletní
na sebe navazující celek.
Další částí bakalářské práce bude vytvoření internetové prezentace s výukovými lekcemi.
Internetová prezentace bude mimo jiné obsahovat odkazy na další stránky použitelné pro hlubší
studium dané problematiky.
1
Kapitola 2
Popis vytvořených výukových lekcí
V této kapitole se budu věnovat jednotlivým výukovým lekcím, které jsem měl za úkol vypracovat
a implementovat do aplikace Tutorial - Cinema4D [2.0].
V rámci mé práce jsem vytvořil 19 lekcí sloužících k praktické výuce modelování krok
po kroku. Jejich rozsah by měl kompletně pokrývat praktická cvičení k předmětu PV009 – Základy
počítačové grafiky, proto jsem je rozdělil do 5 menších celků, každý s jiným zaměřením.
Důraz je pak kladen na postupnou tvorbu modelů vložených do jedné scény,
která je následně otexturována, nasvícena a zanimována. Všechny možnosti programu Cinema4D
jsou tak postupně vysvětleny na jedné kompletně provázané scéně.
2.1 Základy práce a modelování jednoduchých objektů
V prvním cvičení by se měli studenti seznámit se vzhledem, ovládáním a možnostmi, které program
Cinema4D nabízí. Této části jsem však nevěnoval pozornost, protože k tomu byla určena už původní
verze aplikace Tutorial – Cinema4D [2.0] sloužící k vysvětlení jednotlivých částí a funkce programu
Cinema4D.
Kromě teoretických znalostí by se měli studenti v prvním cvičení seznámit se základy
parametrického modelování a jednoduchými trojrozměrnými objekty – tzv. primitivy. Práce s nimi
je vysvětlena v první výukové lekci. Druhá lekce pak seznamuje s využitím křivek a křivkových
primitiv, které jsou v programu Cinema4D velmi důležité a slouží především pro tvorbu
trojrozměrných objektů generátory NURBS.
2.1.1 Lekce 1 – Primitiva
V první výukové lekci se studenti seznámí se základy práce s programem, s přidáváním nových
objektů do scény, jejich hierarchií ve správci objektů a s prací s oknem se scénou a přepínáním
různých pohledů na scénu.
Pomocí jednoduchých trojrozměrných objektů se v několika krocích vytvoří jednoduchý
hrad z kostek pro děti. Lekce slouží především k zažití práce s programem, ale současně
se zde použijí některé speciální modelovací nástroje jako Booleanovské operace, Pole a nástroj
Instance. Znalost těchto nástrojů není pro modelování v programu Cinema4D nezbytně nutná,
je možné nahradit je jinými postupy. Přesto jsou užitečné tím, že usnadňují a ulehčují práci
při modelování.
2
Obrázek 2.1: 1 – Okno se scénou při modelování hradu z kostek Obrázek 2.1: 2 – Scéna vytvořená v první lekci
2.1.2 Lekce 2 – Práce s křivkami
Druhá lekce naváže na první především tím, že pracuje s nejjednoduššími objekty parametrického
modelování, a to s křivkami.
Na začátku lekce je nejprve názorně ukázána tvorba a vysvětleny vlastnosti různých druhů
křivek, se kterými Cinema4D dovoluje pracovat.
Ve druhé části je krok za krokem vysvětlena tvorba složitější křivky příčného řezu talířkem
pod hrnek, který se vytvoří po aplikaci funkce Rotace NURBS. Studenti se v této lekci seznámí
s některými nástroji a postupy pro práci s body, které využijí a rozšíří v pozdějších lekcích.
Obrázek 2.1: 3 – Ukázka tečny Bézierovy křivky Obrázek 2.1: 4 – Scéna vytvořená ve druhé lekci
3
2.2 NURBS generátory
Ve druhém cvičení se studenti podrobně seznámí s generátory NURBS, které vytváří prostorovou
geometrii objektu.
Jednotlivé lekce pokryjí všechny generátory NURBS, které program Cinema4D obsahuje.
Jmenovitě jsou to Vytažení NURBS, Rotace NURBS, Potažení NURBS a Protažení NURBS.
Tyto generátory používají klasické 2D objekty, jako například křivky, pro generování 3D objektů.
Dále se v první lekci ukáže práce s generátorem Hyper NURBS, který na rozdíl od předchozích
generátorů používá k práci 3D objekty a polygonální objekty.
U všech lekcí se pak krok po kroku vytvoří model, který práci s daným NURBS generátorem
přesně vystihuje.
2.2.1 Lekce 3 – Hyper NURBS
V první lekci druhé kapitoly se studenti podrobně seznámí s modelováním pomocí generátoru
Hyper NURBS. Ten na rozdíl od ostatních generátorů nepoužívá pro modelování 2D objekty,
ale pracuje s 3D objekty a polygonálními objekty, u kterých se nastavuje tzv. váha Hyper NURBS,
přitahující požadované body, hrany či samotné polygony k mřížce okolo zvoleného objektu.
V této lekci se krok po kroku vytvoří model flash disku. Jelikož generátor Hyper NURBS
pracuje s polygonálními objekty, bude v této lekci ukázáno použití tří nástrojů pro práci s polygony.
Jmenovitě to budou nástroje Vytažení, Vytažení uvnitř a Přemostění. Jedná se o jedny
z nejpoužívanějších nástrojů pro práci s polygony, proto budou znovu použity v dalších lekcích
na složitějších příkladech.
Obrázek 2.2: 1 – Nastavení váhy Hyper NURBS u vybraného bodu Obrázek 2.2: 2 – Scéna vytvořená ve třetí lekci
4
2.2.2 Lekce 4 – Vytažení NURBS
Čtvrtá výuková lekce pokrývá modelování prostorových objektů generátorem Vytažení NURBS.
Tento generátor, jak už sám název napovídá, vytáhne objekt daný křivkou do prostoru.
Vytažení NURBS vytvoří 3D objekt pouze z uzavřené křivky. V případě, že je křivka neuzavřená,
vytvoří generátor polygonový plát ve tvaru vložené křivky.
Prakticky je tato lekce velmi krátká. Generátor Vytažení NURBS má použití především
pro objekty, které jsou součástí většího modelu. Na příkladu je krok po kroku ukázáno vytvoření
jednoduchého prostorového nápisu se zakulacenými hranami.
Obrázek 2.2: 3 – Křivka s textem po vložení křivkového primitiva Text Obrázek 2.2: 4 – Model nápisu vytvořený ve čtvrté lekci
2.2.3 Lekce 5 – Rotace NUBRS
Pátá výuková lekce je na rozdíl od té předchozí více obsáhlá. Pomocí generátoru Rotace NURBS,
který vytváří 3D objekt rotací křivky kolem osy Y, je vytvořena scéna obsahující 2 skleničky a láhev
na víno. V lekci věnující se práci s materiály a aplikaci textur bude tato scéna opět využita při názorné
ukázce tvorby reálně vypadajících materiálů skla a aplikaci etikety na láhev.
V této lekci si studenti kromě zažití práce s generátorem Rotace NURBS dále prohloubí
znalost práce s křivkami a jejich úpravou. Při tvorbě skleniček se pracuje s Lomenou, B-spline
a Bézierovou křivkou, přičemž je názorně vysvětlen rozdíl mezi nimi.
Nemalá část je věnována názorné ukázce použití generátoru Hyper NURBS. Ten zde slouží
především k „vyhlazení“ povrchu skleniček. Dále je na tomto místě také vysvětlena funkce
segmentace objektu při tvorbě hladkého povrchu skleničky bez použití generátoru NURBS.
5
Obrázek 2.2: 5 – Vyhlazení okraje sklenky nástrojem Nůž Obrázek 2.2: 6 – Scéna vytvořená v páté lekci
2.2.4 Lekce 6 – Potažení NURBS
Šestá výuková lekce je podobně jako lekce předchozí více obsáhlá a věnuje se generátoru
Potažení NURBS. Tento generátor vytvoří 3D objekt potažením povrchu na dvě a více křivek.
Studenti si v této lekci osvojí práci s generátorem Potažení NURBS na tvorbě čajové lžičky.
Ten je zde použit pro vytvoření placatého povrchu lžičky potažením plochy mezi dvěma křivkami,
který je následně několika nástroji upravován do požadovaného tvaru lžíce.
Dále jsou zde opět prohlubovány znalosti práce s křivkami a vysvětlen princip nástrojů
Symetrie a Magnet.
Obrázek 2.2: 7 – Vyklenutí nálevky lžičky nástrojem Magnet Obrázek 2.2: 8 – Scéna vytvořená v šesté lekci
6
2.2.5 Lekce 7 – Protažení NURBS
V poslední lekci týkající se generátorů NURBS je názorně vysvětlen princip generátoru
Protažení NURBS. Ten má jako parametr 2 křivky. První z nich je kontura, která definuje profil
vytvořeného 3D objektu. Druhou křivkou je cesta, která jak už název napovídá vytváří cestu
protažení. Po aplikaci generátoru Protažení NURBS vznikne 3D objekt vytvořený z těchto
dvou křivek.
Podobně jako generátor Vytažení NURBS se i Protažení NURBS používá pro modelování
objektů použitých zpravidla v celku většího modelu. Studenti se proto dozví, jak vytvořit realistický
model stolní lampy za použití dvou generátorů NURBS: Rotace a Protažení. Tvorbě částí lampy
vytvořených generátorem Rotace NURBS však není věnován prostor, protože je princip totožný
s pátou lekcí. Naopak je ukázáno využití generátoru Protažení NURBS při tvorbě menších celků
modelu.
Obrázek 2.2: 9 – Využití generátoru Protažení NURBS při tvorbě stolní lampy Obrázek 2.2: 10 – Scéna vytvořená v sedmé lekci
2.3 Základy polygonálního modelování
Ve třetím cvičení k předmětu Základy počítačové grafiky by se měli studenti seznámit se základy
polygonálního modelování a jeho nástroji. Stejně je to také u výukových lekcí, které jsou součástí
aplikace Tutorial – Cinema4D [2.0].
Parametrické modelování, kterému byly věnovány předchozí lekce, pracuje s objekty,
které mají určité vlastnosti. Vlastnosti těchto objektů vložených ve scéně lze změnit a tím vytvořit jiný
objekt (např. krychli o rozměru 1×1×1 m zvětšíme třetí rozměr na 1×1×2 m a tím dostaneme úplně
jiný objekt).
Naproti tomu polygonální modelování pracuje s objekty složenými z nejzákladnějších
stavebních částí – z bodů, hran a polygonů. Tyto části lze do daného objektu přidávat, mazat
nebo měnit jejich polohu, čímž se změní struktura povrchu objektu jako celku.
7
Následující tři lekce se proto věnují základům polygonálního modelování. Jejich úkolem
je poukázat na rozdílný přístup oproti modelování parametrickému.
Modely v jednotlivých lekcích jsou tvořeny pomocí několika základních nástrojů pro práci
s polygony, hranami a body. Důležité je především pochopit jejich princip a zažít si odlišný způsob
modelování, ne zahltit studenty mnoha informacemi o nástrojích, jejichž princip se mohou dozvědět
v jiné části programu Tutorial – Cinema4D [2.0]. Vysvětlení práce s několika dalšími nástroji
pro polygonální modelování se však vyskytuje i v dalších lekcích.
Poslední lekce této kapitoly se pak vrací zpět k modelování parametrickému a seznamuje
s deformačními nástroji a jejich využití při modelování.
Obrázek 2.3: 1 – Ukázka k vysvětlení rozdílů mezi parametrickým a polygonálním modelováním Krychle vlevo modelovaná parametricky má rozměry 1×1×1 m. Ve správci atributů můžeme
její rozměry změnit na 1×1×2 m a dostaneme druhou krychli zleva.
Třetí krychle zleva se skládá z polygonů, hran a bodů. Celkem se skládá z 6 polygonů.
Pokud chceme změnit její tvar na tvar druhé krychle, musíme nástrojem Vytažení vytáhnout
do prostoru polygon na přední straně krychle tak, jak je znázorněno na obrázku.
2.3.1 Lekce 8 – Základy polygonálního modelování – tvorba hrnku
V první lekci zabývající se polygonálním modelováním je krok po kroku vysvětlena tvorba
jednoduchého keramického hrnku. Hrnek je vymodelován z jednoho kusu válce převedeného
do polygonálního tvaru. Jeho povrch je dále upravován několika nástroji až k finální podobě.
8
Tento příklad je velmi snadný na pochopení a zažití práce s polygony, ale v porovnání
se složitějším postupem ukázaným v následující lekci, je především v místě spoje ucha s tělem model
hrnku málo podrobný a realistický.
Obrázek 2.3: 2 – Modelování ucha hrnku nástrojem Parametrické vytažení Obrázek 2.3: 3 – Scéna vytvořená v osmé lekci
2.3.2 Lekce 9 – Polygonální modelování – tvorba hrnku trochu jinak
Tvorbě hrnku se bude věnovat i lekce devátá. Princip jeho tvorby je však zcela odlišný.
Nejprve je hrubý obrys těla a ucha hrnku vymodelován nástrojem Rotace NURBS. Tyto dvě části jsou
k sobě připojeny a poté je jeho tvar upravován pomocí nástrojů pro práci s polygony, body a hranami.
Tím se dosáhne větších detailů a realističtějšího vzhledu hrnku především v oblasti spojení těla
hrnku s uchem. Při porovnání s předchozím příkladem je pak rozdíl zcela zřejmý.
Obrázek 2.3: 4 – Spojování ucha hrnku s tělem Obrázek 2.3: 5 – Scéna vytvořená v deváté lekci
9
2.3.3 Lekce 10 – Polygonální modelování – tvorba čajové konvičky
V poslední lekci k polygonálnímu modelování je ukázána tvorba čajové konvičky. Ta je modelována
opět odlišným způsobem oproti předchozím lekcím. Nejprve je generátorem Rotace NURBS
vytvořen vnější plášť konvice, kterému je posléze vytažením vytvořeno hrdlo. Vnější plášť
je nástrojem Přemostění spojen s pláštěm vnitřním. Ucho konvičky je pak vytvořeno a připojeno
k plášti podobně jako v předchozí lekci. Na konci lekce je pro zopakování vytvořena poklička
na konvičku pomocí křivky a generátoru Rotace NURBS.
Obrázek 2.3: 6 – Vytažení hrdla konvičky nástrojem Magnet Obrázek 2.3: 7 – Scéna vytvořená v desáté lekci
2.3.4 Lekce 11 – Deformace
Jedenáctá lekce, přestože je zahrnuta ve třetím cvičení, se vrací zpět k parametrickému modelování.
Je zaměřena na funkce deformace, jimiž Cinema4D také oplývá.
Deformátory jsou funkce deformující geometrii jiného objektu. Aplikací na určitý objekt
lze jednoduše zdeformovat jeho tvar a velmi rychle vytvořit složitější objekt, jehož samotné
modelování by jinak zabralo mnoho času a bylo by velmi pracné.
Funkce deformace lze aplikovat na primitiva, křivky, NURBS objekty a polygonální objekty.
Na rozdíl od generátorů NURBS se však ve správci objektů vkládají pod nadřazený objekt.
Mnoho z nich je použitelných pro modelování i animaci (např. Zkroucení, Zúžení, Ohnutí).
Jiné jsou však použitelné pouze při animaci (např. Exploze, Roztavení).
S pomocí několika deformátorů a jednoduchých 3D objektů je v této lekci krok po kroku
vysvětlen postup při tvorbě svícnu. Během několika minut se tak z obyčejné krychle, jehlanu a válce
vytvoří na pohled složitý model.
V devatenácté lekci se tento model opět použije při tvorbě reálně vypadajícího plamene
svíčky s použitím částicového systému.
10
Obrázek 2.3: 8 – Modelování střední části svícnu deformátorem Zkroucení Obrázek 2.3: 9 – Scéna vytvořená v jedenácté lekci
2.4 Materiály, textury, osvětlení
V předchozích lekcích byly vysvětleny základní nástroje a funkce určené pro modelování.
Bylo v nich vytvořeno několik netriviálních modelů, jako například čajový servis, lžička, lampa
a svícen. Jedná se však pouze o modely, které nejsou nijak povrchově upravené a tudíž zatím
nevypadají příliš realisticky.
Toto cvičení se proto bude zabývat tvorbou reálně vypadajících materiálů, aplikací textur
a nasvícením scény. Pro tuto práci pak budou použity scény složené z modelů vytvořených
v předchozích lekcích. V dalším cvičení se s těmito již otexturovanými a nasvícenými scénami
bude dále pracovat při tvorbě animací.
2.4.1 Lekce 12 – Tvorba materiálů a textur a práce s nimi 1
Jelikož je problematika tvorby materiálů a jejich aplikací na modely velmi obsáhlá, jsou tyto výukové
lekce rozloženy do dvou částí.
První lekce slouží k zažití práce se správcem materiálů a vysvětluje postupně krok po kroku
tvorbu reálně vypadajícího materiálu dvou druhů skla. Tyto materiály jsou aplikovány na skleničky
a láhev vína vytvořené v lekci věnující se generátoru Rotace NURBS.
Při tvorbě materiálu skla jsou postupně vysvětleny všechny jeho parametry a vliv na výsledný
vzhled. Na konci lekce je pak vysvětlena tvorba textury etikety a princip její aplikace na láhev vína
pomocí nástrojů pro aplikaci textur na objekty.
11
Obrázek 2.4: 1 – Původní neotexturovaná scéna Obrázek 2.4: 2 – Scéna vytvořená ve dvanácté lekci
2.4.2 Lekce 13 – Tvorba materiálů a textur a práce s nimi 2
Následující lekce zabývající se materiály a texturami se věnuje tvorbě materiálů více do hloubky.
Je zde využita scéna složená z objektů vytvořených v předchozích lekcích. Na praktických příkladech
je pak názorně vysvětlen princip tvorby složitějších materiálů, jako je dřevo a kov. Podobně jako
v předchozí lekci je pak důraz kladen na vysvětlení vztahu jednotlivých parametrů materiálů
s výsledným vzhledem. Dále je více do hloubky zpracováno téma aplikace reálně vypadajících textur
na objekty. Okrajově je také v lekci vysvětlena funkce nástroje, který náhodně pomačká vybrané
polygony. Této vlastnosti je využito při tvorbě pomačkaného ubrusu na stole.
Obrázek 2.4: 3 – Aplikace textury na přebal knihy Obrázek 2.4: 4 – Scéna vytvořená ve třinácté lekci
12
2.4.3 Lekce 14 – Osvětlení scény
Ve čtrnácté lekci je vysvětlena tvorba reálně vypadajícího osvětlení a tím je model scény se stolkem
vytvářený postupně v předchozích výukových lekcích dokončen.
Krok po kroku je zde vysvětlen princip tříbodového osvětlení a vytvoření viditelné záře světla
lampy. Modelování plamene svíčky a jeho světla je pak vysvětleno v lekci k částicovému systému.
Obrázek 2.4: 5 – Tvorba viditelného osvětlení žárovky lampy Obrázek 2.4: 6 – Scéna vytvořená ve čtrnácté lekci
2.4.4 Lekce 15 – Venkovní osvětlení
Poslední lekce tohoto cvičení je věnována venkovnímu osvětlení, které se využívá především
při tvorbě architektury, kde je nutné mít osvětlení odpovídající přesně skutečnému místu na zemi.
Studenti jsou krok po kroku provedeni tvorbou jednoduché scény s oblohou a sluncem,
kterému je věnována většina této lekce. Názorně je zde předvedeno jeho nastavení na přesnou
zeměpisnou souřadnici, určitý čas a vytvoření efektu slunce na obloze pomocí čočkových odrazů.
Obrázek 2.4: 7 – Přesné nastavení polohy slunce na obloze Obrázek 2.4: 8 – Scéna vytvořená v patnácté lekci
13
2.5 Základy animace scény a částicový systém
V posledním cvičení předmětu Základy počítačové grafiky jsou studenti seznámeni s tvorbou
animací v programu Cinema4D a částicovým systémem. Nejinak je tomu u výukových lekcí aplikace
Tutorial – Cinema4D [2.0], jejíž poslední čtyři lekce se věnují především animaci.
Téměř všechny parametry objektů lze v programu Cinema4D animovat. Základy animace
jsou pak založeny na ukládání stavů objektů v čase. Tyto záznamy se nazývají Klíčové snímky.
Předpokládejme, že chceme vytvořit animaci nějakého objektu pohybujícího se po dráze
tvaru trojúhelníku. Na počátku animace uložíme Klíčový snímek pozice objektu na vrcholku
pomyslného trojúhelníku. Poté uložíme další dva Klíčové snímky se záznamem polohy objektu
na dalších vrcholcích trojúhelníku. Po spuštění animace se bude objekt pohybovat přesně
po trojúhelníkové dráze, přestože stačilo použít pouze tři záznamy Klíčových snímků. Poloha objektu
mezi nimi je totiž dopočítávána interpolací.
V poslední lekci tohoto cvičení se studenti také seznámí s částicovým systémem programu
Cinema4D sloužícím ke generování skupiny objektů generátorem v čase.
2.5.1 Lekce 16 – Jednoduché animace
V šestnácté lekci je krok za krokem vysvětlen postup při tvorbě jednoduché animace vytvořené
pomocí Klíčových snímků a časové osy pod oknem se scénou.
V již známé scéně s dřevěným stolem je rozpohybováno několik objektů. Plamen hořící
svíčky je sfoukáván větrem. Hrnek položený na kraji stolu spadne na zem a roztříští se na kousky
a mezi tím vším prolétá kamera sledující aktuální dění.
Animace je vytvářena přímo v okně scény s ručním ukládáním klíčových snímků a posunem
po jednoduché časové ose nacházející se pod modelačním oknem. Tato animace je vytvořena
záměrně špatně. Je v ní mnoho zbytečných Klíčových snímků a hodnoty skoků objektů v čase jsou
zadávány náhodně. Průlet kamery scénou tak obsahuje několik trhavých pohybů a naopak hrnek
padá ze stolu konstantní rychlostí, jakoby neexistovalo gravitační zrychlení. Tyto neduhy však budou
napraveny v další lekci, která se věnuje časové ose a F-křivkám.
V této lekci je také ukázáno použití další deformační funkce. Pro efekt rozbití hrnku o zem
je využita funkce Exploze. Její použití je možné pouze při tvorbě animací.
2.5.2 Lekce 17 – Pokročilá tvorba animace – časová osa, F-křivky
Ve druhé lekci věnující se rozpohybování známé scény je dokončeno animování jednotlivých objektů
upravením jejich animačních stop. V předchozí lekci byla animace vytvořena úmyslně tak,
aby obsahovala chyby v podobě trhavých pohybů a mnoha Klíčových snímků. Tyto neduhy
jsou odstraněny s využitím časové osy a F-křivek.
14
Na názorných příkladech je vysvětlen princip F-křivek a práce s nimi. Nejprve je ukázáno
jak upravit pohyb kamery scénou tak, aby byl více plynulý a neobsahoval moc Klíčových snímků.
Na druhém příkladu je pak podrobně vysvětlena tvorba gravitačního zrychlení při pádu hrnku.
Obrázek 2.5: 1 – Animování pádu hrnku ze stolu Obrázek 2.5: 2 – Úprava pádu hrnku pomocí F-křivek
2.5.3 Lekce 18 – Morphing
V osmnácté lekci je vysvětlen princip morphingu. Jedná se o přeměnu tvaru a materiálu určitého
objektu v čase na jiný objekt. To lze realizovat díky tomu, že program Cinema4D dovoluje animovat
téměř všechny parametry objektů včetně změny materiálu.
V lekci je názorně ukázána tvorba animace rozpuštění červené krychle v louži tekutého skla.
Animace je založena na postupné změně parametrů materiálu a ukládání Klíčových snímků.
Efekt rozpuštění krychle je pak vytvořen deformátorem Roztavení.
Obrázek 2.5: 3 – Animování tavení krychle Obrázek 2.5: 4 – Snímek vytvořené animace přeměny krychle na tekuté sklo
15
2.5.4 Lekce 19 – Částicový systém
Poslední lekce této sbírky se zabývá částicovým systémem programu Cinema4D. Ten slouží
k modelování skupiny určitých objektů, které se mohou pohybovat v čase. To je vhodné například
pro vytváření hejna ryb, kouře nebo ohně.
Základním prvkem částicového systému je Generátor, což je emitor, ze kterého vyletuje
proud částic. Tyto částice mohou být ovlivněny dalšími funkcemi (např. Tření, Vítr, Gravitace)
nebo mohou být postupně zrušeny Destruktorem. Cinema4D umožňuje použít jako emitovaný objekt
prakticky cokoliv – od primitivních objektů po složitý model ryby s vlastní strukturou.
V této lekci je krok po kroku vysvětlen postup tvorby reálně vypadajícího plamene svíčky.
Ve druhé části je pak vytvořena jednoduchá animace hořícího plamene, který je sfoukáván větrem.
Pro scénu byl použit svícen z lekce zabývající se deformačními funkcemi. Efekt plamene
je vytvořený generováním částic všesměrového světla.
Obrázek 2.5: 5 – Vytváření efektu větru Obrázek 2.5: 6 – Scéna vytvořená v devatenácté lekci
16
Kapitola 3
Aplikace Tutorial – Cinema4D [2.0], změny oproti předchozí verzi
3.1 Popis úprav v aplikaci Tutorial – Cinema4D [2.0]
Jak jsem již naznačil v úvodu práce, mým úkolem bylo především vytvořit výukové lekce
a implementovat je do původní aplikace Tutorial - Cinema4D. Pro větší přehlednost v jednotlivých
verzích jsem program Tutorial – Cinema4D s vloženými výukovými lekcemi přejmenoval na jeho
druhou verzi, neboli Tutorial – Cinema4D [2.0].
Přístup k jednotlivým lekcím jsem zvolil přes nabídku pěti cvičení, které sdružují podobně
zaměřené lekce. Ty jsou samostatně popsány ve druhé kapitole této práce.
Nabídka s lekcemi se nachází v hlavním menu na pravé straně vedle položek Nápověda
a Rejstřík, které jsem pro větší přehlednost odsadil od ostatních nabídek, vyvolávajících nápovědu
k jednotlivým funkcím programu Cinema4D. Struktura menu Výukové lekce je následující:
Výukové lekce ------ Cvičení 1 --- Primitiva | --- Křivky --- Cvičení 2 --- Hyper NURBS | --- Vytažení NURBS | --- Rotace NURBS | --- Potažení NURBS | --- Protažení NURBS --- Cvičení 3 --- Práce s polygony 1 | --- Práce s polygony 2 | --- Práce s polygony 3 | --- Deformace --- Cvičení 4 --- Materiály a textury 1 | --- Materiály a textury 2 | --- Osvětlení scény | --- Venkovní osvětlení --- Cvičení 5 --- Animace 1 --- Animace 2 --- Morphing --- Částice
Nabídka menu byla vytvořena v Delphi nástrojem Menu Designer. Jednotlivé položky
pak reagují na událost OnClick vyvoláním požadovaného okna s nápovědou, případně i okna úpravy
materiálů a načtením obrázků do jednotlivých oken programu.
17
Zde je ukázka kódu, který otevře okno s první stránkou nápovědy ke třetí lekci, do jednotlivých oken
programu načte aktuální obrázky a ve správci atributů zakroužkuje pro zvýraznění volbu segmentace
krychle :
pole[stranka].text:=('lekce/text/hyper_lekce_1.txt'); pole[stranka].sprAtributu:=('lekce/pictures/hyper_atributy_lekce_1.bmp'); pole[stranka].sprObjekt:=('lekce/pictures/hyper_objekt_lekce_1.jpg'); pole[stranka].sprMatNast:=('lekce/pictures/hyper_material_lekce_1.jpg'); pole[stranka].scena1:=('lekce/pictures/hyper_scena_lekce_1.jpg'); pole[stranka].panel2:=true; pole[stranka].krouzek2.x1:=(210); pole[stranka].krouzek2.y1:=(105); pole[stranka].krouzek2.x2:=(295); pole[stranka].krouzek2.y2:=(170);
3.2 Popis prostředí aplikace
V této podkapitole stručně popíši prostředí programu Tutorial – Cinema4D [2.0], jeho ovládání
a význam samostatně zobrazovaných oken.
Obrázek 3.2: 1 – Okno aplikace se zobrazenou výukovou lekcí ke tvorbě materiálů
18
3.2.1 Popis oken programu
Rozhraní aplikace Tutorial – Cinema4D [2.0] vypadá stejně jako Cinema4D v defaultním nastavení
vzhledu. Význam jednotlivých oken je pak identický. V aplikaci se dále mohou samostatně zobrazit
další okna, mající tento význam:
Okno nápovědy – zobrazuje textovou nápovědu ke zvolenému nástroji, nebo zobrazuje text
k jednotlivým krokům výukové lekce. Nachází se v levém dolním rohu obrazovky.
Okno rejstříku – zobrazí se přes položku Rejstřík v hlavní nabídce. Slouží pro rychlé
vyhledání požadovaného nástroje dle názvu.
Okno materiálu – v případě potřeby se zobrazí v novém okně a slouží jako doplňková
nápověda pro vysvětlení tvorby a úpravy materiálů. Toto okno je použito ve výukových
lekcích zabývajících se tvorbou materiálů a prací s texturami.
3.2.2 Ovládání aplikace
Po spuštění aplikace Tutorial – Cinema4D [2.0] se otevře okno mající stejný vzhled jako program
Cinema4D. Jeho ovládání je pak velmi intuitivní. Po kliknutí na příslušnou ikonu, nástroj, atribut
nástroje či zmáčknutí klávesové zkratky se do jednotlivých oken virtuální Cinemy4D načtou aktuální
obrázky a v novém okně se otevře textová nápověda vysvětlující jeho funkci. Nápověda může být dále
doprovázena jednoduchou animací spustitelnou v okně se scénou a pro zvýraznění atributů nástrojů
se pak ve správci atributů používá červené zakroužkování. U některých příkladů lze také spustit
vysvětlující videosekvenci přes tlačítko Přehrát ukázku.
Práce s výukovými lekcemi je pak podobná zobrazování nápovědy k jednotlivým nástrojům.
Přes hlavní nabídku si lze vybrat danou lekci a kliknutím na její název se načte startovní konfigurace
obrázků virtuální Cinemy4D. Dále se v okně nápovědy zobrazí text, který studenty krok po kroku
vede při modelování scény. Pohyb mezi jednotlivými obrazovkami se pak realizuje tlačítky >> a <<.
V případě nejasností se tak lze jednoduše vrátit zpět k nepochopenému postupu.
19
Kapitola 4
Struktura a popis internetové prezentace věnované výukovým lekcím
4.1 Popis internetové prezentace
Nedílnou součástí mé bakalářské práce bylo vytvoření internetové prezentace zabývající
se výukovými lekcemi implementovanými do programu Tutorial – Cinema4D. Prezentace je veřejně
přístupná na adrese http://www.fi.muni.cz/~xhajek6/cinema4d/.
Tato internetová prezentace slouží jako doplněk k výše uvedené aplikaci. Kromě jednotlivých
lekcí v textové formě s vysvětlujícími obrázky se dále na stránkách nachází odkazy na jiné internetové
stránky věnující se modelování a tvorbě animací v programu Cinema4D. Tyto odkazy mají posloužit
pro případné zájemce o tuto tematiku k rozšíření a prohloubení získaných znalostí.
Obrázek 4.1: 1 – Startovní stránka internetové prezentace Internetová prezentace je vytvořena jednoduchou a přehlednou formou. Stránky jsou
optimalizovány pro rozlišení monitoru 1024×768. Toto rozlišení jsem zvolil proto, že mnoho
notebooků a starších počítačů nedovoluje zvolit vyšší rozlišení. Díky použití XHTML kódu a CSS
stylů je její načítání velmi rychlé i na pomalejším připojení.
20
Vzhled stránky je pak rozdělen na dva celky. Na levé straně se nachází nabídka položek.
Po zvolení dané položky se do hlavního okna na pravé straně načtou požadované informace.
Obrázek 4.1: 2 – Výuková lekce k Hyper NURBS načtená v hlavním okně
4.2. Struktura internetové prezentace
Internetová prezentace je napsána za použití XHTML kódu. Dále je využito CSS stylů
pro nadefinování vzhledu stránky. Na dvou místech prezentace jsem také použil PHP kód.
Celá prezentace je psána s ohledem na rychlost a přehlednost a všechny stránky prezentace jsou
XHTML 1.0 Transitional validní.
Nejdůležitější částí této internetové prezentace je soubor styl.css, který v sobě obsahuje
nadefinované styly pro vzhled celé prezentace. Tento soubor se styly je také úspěšně zvalidován
a společně s XHTML validními stránkami je internetová prezentace zobrazovaná správně na všech
počítačích nezávisle na zvoleném prohlížeči.
Na ukázce níže je část souboru styl.css definující vzhled hlavního okna prezentace:
#menu {position: absolute; /* nabídka položek */ width: 220px; height: 640px; top: 10px; left: 5px; color: white; background-color: rgb(70,130,180); border: 3px solid; border-color: white; padding: 5px;}
21
Dále jsou v souboru styl.css nadefinovány všechny styly nadpisů, základního bloku textu, odrážek
v nabídce položek a také vzhled obrázků a jejich rámů. Na další ukázce je obsah souboru styl.css
definující nadpis první úrovně a základní blok textu společně s jeho variantou zarovnanou do bloku:
h1 {color: white; background-color: rgb(70,130,180); text-align: center; font-weight: bold; font-family: Verdana, Sans-serif; font-size: 18pt;} p {color: white; background-color: rgb(70,130,180); font-family: Verdana, Sans-serif;} .textblok {color: white; background-color: rgb(70,130,180); font-family: Verdana, Sans-serif; text-align: justify;}
Za použití CSS stylů lze také nadefinovat vzhled odkazů v HTML stránce. Toho jsem využil
pro efekt inverzního zobrazení při volbě odkazu. To je nadefinované v souboru styl.css následovně:
a {text-decoration: none;} /* odkazy - nepodtržený */ a:link {color: white; /* odkaz */ background-color: rgb(70,130,180);} a:visited {color: white; /* odkaz - navštívený */ background-color: rgb(70,130,180);} a:active {color: white; /* odkaz - aktivní TAB/myš */ background-color: rgb(70,130,180);} a:hover {color: rgb(70,130,180); /* odkaz nad kterým je kurzor */ background-color: white;} Po nadefinování stylů v souboru styl.css lze psát vlastní HTML kód stránky. Na ukázce je kód
startovní stránky prezentace (pro zkrácení však bez zobrazených textů):
<?php include "hlavicka.php";?> <body>
<div id="obsah"> <h1> [VÝUKOVÉ LEKCE - CINEMA4D] </h1>
<div style="margin-left: 170px"> <img src="cinema_obrazek.jpg" alt="cinema4D" width="400px" height="333px" /> </div> <div style="text-align: center"> /* tady je přivítání */ </div>
<div style="text-align: justify"> /* tady je text stránky */ </div>
</div> <div id="menu">
<?php include "menu.php";?> </div>
</body> </html>
22
V předchozí ukázce je na dvou místech vidět použití PHP kódu. Ten jsem použil kvůli menší velikosti
souborů s prezentací a také pro větší přehlednost a strukturovatelnost kódu. Nevýhodou je však
nutnost použití pro internetovou prezentaci serveru podporující PHP stránky.
Do samostatného souboru hlavicka.php jsem uložil část HTML kódu obsahujícího hlavičku
stránky. Tato hlavička se pak na stránku vloží příkazem <?php include "hlavicka.php";?>.
Obsah souboru hlavicka.php je pak následující:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" >
<head> <title> Tutoriály -- Cinema4D </title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-2" /> <meta name="keywords" content="cinema4D, tutoriály, lekce, animace, modelování" /> <meta name="description" content="Výukové lekce k programu Cinema4D" /> <meta name="author" content="Martin Hájek" /> <link rel="stylesheet" href="styl.css" type="text/css" media="all" />
</head> Podobně je na každé stránce pomocí PHP příkazu <?php include "menu.php";?>
vložená nabídka obsahující odkazy na výukové lekce, odkazy na jiné stránky věnující se programu
Cinema4D a také na stránku s možností stažení programu Tutorial – Cinema4D [2.0] a souborů
s modely k jednotlivým lekcím. Obsah souboru menu.php je následující (seznam lekcí je zkrácený):
<ul> <li><a href="lekce1.html">PRIMITIVA</a></li> <li><a href="lekce2.html">KŘIVKY</a></li> </ul><ul> /* odkazy na další lekce */ </ul><ul> /* odkazy na další lekce */ </ul><ul>
/* odkazy na další lekce */ </ul><ul> /* odkazy na další lekce */ </ul><ul> <li><a href="odkazy.html">ODKAZY</a></li> <li><a href="download.html">DOWNLOAD</a></li> <li><a href="kontakt.html">KONTAKT</a></li> </ul> <div style="position: relative; top: 1px"> <p class="smallc"> Stránka je optimalizována pro rozlišení 1024×768 a všechny běžně používané prohlížeče.<br /> Kódování je ISO 8859-2. </p> </div>
23
Kapitola 5
Závěr
V rámci mé bakalářské práce jsem vytvořil 19 výukových lekcí, které studenty krok po kroku
provedou základy modelování a tvorbou animací v programu Cinema4D.
Konceptuelně by práce měla pokrývat látku probíranou v praktických cvičeních k předmětu
PB009 – Základy počítačové grafiky, vyučovaného na Fakultě informatiky MU.
Výukové lekce jsem implementoval do aplikace Tutorial – Cinema4D [2.0], jejíž původní
verzi vytvořil jako bakalářskou práci Pavel Schneider. Tím vznikla komplexní e-learningová aplikace
sloužící nejen k vysvětlení jednotlivých nástrojů a funkcí, kterými Cinema4D oplývá, ale současně
pomáhá s jejich vysvětlením na praktických příkladech.
Tyto výukové lekce nemají za úkol naučit studenty všem nástrojům a modelovacím
technikám, které program Cinema4D nabízí. Jednotlivé lekce mají posloužit k naučení se základům
modelování a animace krok po kroku od nejjednodušších příkladů až po tvorbu složitější scény,
včetně jejího otexturování, nasvícení a rozpohybování.
Pro případné zájemce o tuto problematiku se pak na internetu nachází mnoho dalších
pokročilých tutoriálů, pomocí nichž mohou na své znalosti z aplikace Tutorial – Cinema4D [2.0]
navázat a více si je prohloubit. Odkazy na některé z těchto materiálů se nachází v internetové
prezentaci, která je nedílnou součástí mé práce.
V internetové prezentaci jsou jednotlivé výukové lekce popsány podobně jako v aplikaci
Tutorial – Cinema4D [2.0], ovšem jejich provedení odpovídá poněkud odlišným možnostem
prezentace ve formě HTML stránek. Jejich výhodou je rychlé odkazování na jiné zdroje
a také její velikost, nevýhodou je pak absence měnícího se prostředí virtuálního programu
Cinema4D, jako u aplikace Tutorial – Cinema4D [2.0].
V rámci mé bakalářské práce jsem si osvěžil dříve získané znalosti modelování v programu
Cinema4D a také se seznámil s programováním ve vývojovém prostředí Delphi, které jsem dříve
neovládal.
24
Příloha
Obsah přiloženého CD
tato bakalářská práce ve formátu PDF
tato bakalářská práce ve formátu DOC
samorozbalovací archiv internetové prezentace výukových lekcí
spustitelná internetová prezentace výukových lekcí
zdrojové kódy aplikace Tutorial – Cinema4D [2.0]
samorozbalovací archiv aplikace Tutorial – Cinema4D [2.0]
spustitelná verze aplikace Tutorial – Cinema4D [2.0]
25
Literatura
Pacheco, X., Teixeira, S.: Mistrovství v DELPHI 6, Computer Press 2002.
Internetový seriál „Umíme to s Delphi“ na serveru www.zive.cz, <http://www.zive.cz>.
Kolektiv autorů: Cinema4D Release 6, Digital Media 2003.
Kolektiv autorů: Cinema4D Release 8 Referenční manuál, Digital Media 2003.
Kolektiv autorů: Cinema4D Tutoriály, Digital Media 2003.
Stránky Cinema4D, <http://www.cinema4d.cz/>.
Články o programu Cinema4D na serveru grafika.cz, <http://www.grafika.cz/>.
26