IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Pozor, padá hvězda!

Přej si něco, padá hvězda! A co když to není hvězda, ale kometa? Pak máme dvakrát štěstí - za prvé, že jsme ji viděli, a za druhé, že se do nás nestrefila. Takže si ji raději namodelujeme v našem virtuálném světě. V klidu a teple domova, aniž se za ní musíme štrachat do Betléma.

Opět se vrátíme k našemu minulému programu se Zemí. Naše kometa se bude skládat ze 4 objektů. Prvním je samotné tělo komety, což je obyčejná koule. Pak bude mít ohon, což bude komolý kužel pokrytý průhlednou texturou. Zvýšíme efekt tím, že kometa bude osvětlovat okolní objekty. Toho docílíme vytvořením objektu světla a jeho připojením ke kometě. A to vše bude sloučeno do jedné společné skupiny.

Nejdříve si proto připravíme 4 číselné proměnné, s názvy ID světla od komety, ID ohonu komety, ID komety a ID skupiny komety. Dále budeme potřebovat texturu ohonu komety. Základem textury je černá barva, na kterou nasprejujeme žluté tečky. Měly by budit dojem jisker. Nazvěte ji textura ohonu komety. Případně k downloadu na konci lekce.

Na konec inicializace programu přidejte skupinu vytvoření komety. Bude obsahovat další 4 vložené skupiny, světlo od komety, ohon komety, tělo komety a skupina komety.

První objekt, světlo od komety, vytvoříme jako bodové světlo s jasně žlutou barvou. Abychom si to ujasnili, objekt světla ve 3D grafice není vidět. Je to jen bod v prostoru s určitými světelnými parametry, ze kterých se počítá osvětlení okolních objektů. Proto ho můžeme přidat k objektu komety. Nevadí, že bude umístěn ve středu komety. Ve 3D grafice nedochází ke stínění světla objekty. Naopak, stíny od objektů je nutné náročně programově vytvářet.

Kromě námi vytvořeného bodového zdroje světla máme ve scéně ještě jeden zdroj světla. Je to implicitní zdroj světla, který je automaticky vytvářen při spuštění programu. Jedná se o směrové světlo bílé barvy, svítící na scénu z levého horního rohu. U směrového světla nezáleží na poloze zdroje, pouze na směru, kterým svítí. Pokud bychom chtěli manipulovat s implicitním zdrojem světla, vybrali bychom aktivní objekt číslo 2.

Kromě dvou uvedených je možné používat ještě třetí typ zdroje světla - kuželové světlo. Je to typ osvětlení podobný reflektoru. Kromě polohy a směru se u něj udává ještě rozměr kužele a dosvit.

Vytvoříme ohon komety. Jak jsme se již zmínili, jako ohon použijeme komolý kužel. Nejdříve zvolíme poměrně nízkou složitost objektu 4, protože u ohonu komety není třeba přesnost tvaru. Vypneme přepínače pro vytváření hodní a dolní podstavy kužele. Tím bude kužel nahoře a dole děravý.

Při vytváření objektu kužele zvolíme průměr horní podstavy 0.5. Nastavíme texturu ohonu komety a změníme měřítko ve směrech X a Z na 1.8, měřítko ve směru Y na 2.5. Kužel bude tedy protáhlý. Rotací kolem osy Z o 90 stupňů zajistíme správné otočení ohonu, protože kometa bude létat zprava doleva. Proto ještě posuneme ohon o 1 doprava (ve směru X), aby ohon vlál až za kometou.

Zapneme viditelnost pro obě strany objektu. Asi by vypadalo nepřirozeně vidět jiskry jen z vnější strany a ne z vnitřní strany ohonu.

U ohonu využijeme novou vlastnost - průhlednost. Průhlednost je operace kombinující barvu objektu s barvou předmětů nacházejících se za objektem. Například nastavením průhlednosti na kód 11 se barvy grafických bodů sčítají, podobně jako když hoří oheň. Ještě vypneme osvětlení objektu, jinak by bylo na ohonu vidět stínování od okolního světla, což u zářícího objektu není přirozené.

Dalším objektem bude vlastní tělo komety. Bude to opět koule. Její složitost nastavíme na 6. Barvu na jasně žlutou a osvětlení vypnuté, ze stejného důvodu jako u ohonu. Velikost zvolíme 0.1. Posunutím na -0.8 ve směru Z zajistíme potřebnou výšku komety nad povrchem Země. K tělu komety připojíme objekt světla od komety a objekt ohonu komety.

Posledním objektem bude skupina komety. Je to jen skupina, ke které je připojen objekt komety. Abychom zajistili obíhání komety kolem Země po šikmé dráze, natočíme o kousek celou soustavu kolem osy Z.

A ještě nakonec musíme kometu rozhýbat. Ohon budeme animovat tak, že budeme jednoduše náhodně nastavovat rotaci kolem osy Y, čímž zajístíme náhodné blikání jisker v ohonu komety. Celou skupinou komety budeme otáčet kolem osy Y podobně jako s Měsícem, jen rychlost zvolíme 0.06.

A teď už můžeme program spustit. Měli bychom vidět krásnou kometu, neboli staročesky létavici.

Náš skvělý, ale naprosto neužitečný program se pomalu blíží k naprosté dokonalosti. Ale - co by to bylo za Zemi bez jediného mráčku? Mraky nám ještě chybí k realističtějšímu vzhledu Země.

Základem textury mraků bude průhledná barva, na kterou nasprejujeme barevné skvrny. Nebo downloadujeme hotovou texturu na konci lekce.

Dále potřebujeme číselný prvek ID mraků. Objekt mraků vytvoříme v samostatné skupině vytvoření mraků předtím, než vytvoříme objekt Země. Podobně jako u Země, nejdříve zvolíme složitost objektu 10, vytvoříme objekt mraků jako kouli a nastavíme měřítko ve všech směrech na 1.05, čili mraky budou mírně nad povrchem Země. Poznamenejme, že všechny objekty se vytváří s rozměry 1. Dále nastavíme texturu mraků a zvolíme průhlednost číslo 54. Tento typ průhlednosti používá alfa kanál textury, což znamená průhlednou barvu. Body vyplněné průhlednou barvou zůstanou průhledné, ostatní body budou viditelné.

Před nastavením textury nastavíme parametr vyhlazení textur na hodnotu 2. Vyhlazení textur nám udává, jak moc se obraz textury rozmázne. Rozmáznutí se realizuje tak, že textura se zmenší v měřítku podle zadaného čísla. Přitom je třeba počítat s tím, že zpravidla (v závislosti na grafické kartě) se zmenšení provede na rozměry nejbližší násobku mocniny 2. Rozmáznutí textury zajistí, že okraje mraků budou poloprůhledné, s plynulým přechodem, a ne hranaté.

Po nastavení přepínače vyhlazení textur se tento přepínač uplatňuje i dále, u dalších nastavovaných textur. U textury Země je stupeň vyhlazení textury 2 v pořádku, jinak bychom viděli zrnitý povrch. U textury Měsíce zvolíme raději zrnitost a proto před nastavením textury Měsíce nastavíme vyhlazení textur na 1.

Pokud tutoriál zkoušíte v Lite verzi Petra tak nebudete pozorovat žádný rozdíl při doplnění přepínače vyhlazení textur. Je to z toho důvodu, že textury jsou v Lite verzi interně omezeny na rozměr 128 x 128 grafických bodů. Jedná se přitom o rozměr po vyhlazení textury. Textury byly připraveny tak, aby vyhovovaly stejně jak Lite verzi tak plné verzi, takže po vyhlazení nepřesahují rozměr podporovaný Lite verzí. Lite verze provedla vyhlazení textur jakoby automaticky.

Poslední úpravou bude připojení mraků k objektu Země.

Spustíte-li program, měli byste vidět Zemi zahalenou v oblacích. Mraky se přitom pohybují souhlasně se Zemí.

Nádhera? No a už je to snad konečně vše. Nebo ještě ne? No jasně! Co by to bylo za Vesmír bez hvězd!

No a není nic jednoduššího. Připravte si texturu oblohy, třeba jen černou plochu s pár bílými tečkami, a nastavte ji do prvku textura pozadí scény.

No a už jen spustit...

A to je vše, přátelé!

 

Stáhnout

Stažením následujícího souboru souhlasíš s licenčními podmínkami

Staženo 269x (318.73 kB)
Aplikace je včetně zdrojových kódů v jazyce Petr Lite (jsou obsaženy v EXE souboru, který lze v programu přímo otevřít)

 

Všechny články v sekci
3D grafika
Článek pro vás napsal Panda38
Avatar
Uživatelské hodnocení:
2 hlasů
Programátor C++, WinAPI, ASM.
Aktivity