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á hviezda!

Želaj si niečo, padá hviezda! A čo keď to nie je hviezda, ale kométa? Potom máme dvakrát šťastie - za prvé, že sme ju videli, a za druhé, že sa do nás nestrefili. Takže si ju radšej namodelujeme v našom virtuálny svet. V pokoji a teple domova, bez toho sa za ňou musíme strach do Betlehema.

Opäť sa vrátime k nášmu minulému programu so Zemou. Naša kométa sa bude skladať zo 4 objektov. Prvým je samotné telo kométy, čo je obyčajná guľa. Potom bude mať chvost, čo bude zrezaný kužeľ pokrytý priehľadnou textúrou. Zvýšime efekt tým, že kométa bude osvetľovať okolité objekty. To docielime vytvorením objektu svetla a jeho pripojením ku kométe. A to všetko bude spojí do jednej spoločnej skupiny.

Najskôr si preto pripravíme 4 číselné premenné, s názvami ID svetla od kométy, ID cope kométy, ID kométy a ID skupiny kométy. Ďalej budeme potrebovať textúru chvostu kométy. Základom textúry je čierna farba, na ktorú nasprejuje žlté bodky. Mali by budiť dojem iskier. Pomenujte ju textúra chvostu kométy. Prípadne k downloadu na konci lekcie.

3D grafika

Na koniec inicializácia programu pridajte skupinu vytvorenie kométy. Bude obsahovať ďalšie 4 vloženej skupiny, svetlo od kométy, chvost kométy, telo kométy a skupina kométy.

Prvý objekt, svetlo od kométy, vytvoríme ako bodové svetlo s jasne žltou farbou. Aby sme si to ujasnili, objekt svetla v 3D grafike nie je vidieť. Je to len bod v priestore s určitými svetelnými parametrami, z ktorých sa počíta osvetlenia okolitých objektov. Preto ho môžeme pridať k objektu kométy. Nevadí, že bude umiestnený v strede kométy. V 3D grafike nedochádza ku tienenie svetla objekty. Naopak, tiene od objektov je nutné náročne programovo vytvárať.

3D grafika

Okrem nami vytvoreného bodového zdroja svetla máme v scéne ešte jeden zdroj svetla. Je to implicitné zdroj svetla, ktorý je automaticky vytváraný pri spustení programu. Jedná sa o smerové svetlo bielej farby, svietiace na scénu z ľavého horného rohu. U smerového svetla nezáleží na polohe zdroje, iba na smere, ktorým svieti. Ak by sme chceli manipulovať s implicitným zdrojom svetla, vybrali by sme aktívny objekt číslo 2.

Okrem dvoch uvedených je možné používať ešte tretí typ zdroja svetla - kužeľové svetlo. Je to typ osvetlenia podobný reflektora. Okrem polohy a smeru sa u neho udáva ešte rozmer kužeľa a dosvit.

Vytvoríme chvost kométy. Ako sme sa už zmienili, ako chvost použijeme zrezaný kužeľ. Najskôr zvolíme pomerne nízku zložitosť objektu 4, pretože u cope kométy nie je potrebné presnosť tvaru. Vypneme prepínače pre vytváranie dobrí a dolnej podstavy kužeľa. Tým bude kužeľ hore a dole deravý.

Pri vytváraní objektu kužeľa zvolíme priemer hornej podstavy 0.5. Nastavíme textúru cope kométy a zmeníme mierka v smeroch X a Z na 1.8, mierka v smere Y na 2.5. Kužeľ bude teda pretiahnutý. Rotáciou okolo osi Z o 90 stupňov zaistíme správne otočenie cope, pretože kométa bude lietať sprava doľava. Preto ešte posunieme cop o 1 doprava (v smere X), aby chvost vial až za kométou.

Zapneme viditeľnosť pre obe strany objektu. Asi by vyzeralo neprirodzene vidieť iskry len z vonkajšej strany a nie z vnútornej strany chvosta.

U cope využijeme novú vlastnosť - transparentnosť. Priehľadnosť je operácia kombinujúci farbu objektu s farbou predmetov nachádzajúcich sa za objektom. Napríklad nastavením priehľadnosti na kód 11 sa farby grafických bodov sčítajú, podobne ako keď horí oheň. Ešte vypneme osvetlenie objektu, inak by bolo na cope vidieť tieňovanie od okolitého svetla, čo u žiariaceho objektu nie je prirodzené.

3D grafika

Ďalším objektom bude vlastné telo kométy. Bude to opäť gule. Jej zložitosť nastavíme na 6. Farbu na jasne žltú a osvetlenie vypnuté, z rovnakého dôvodu ako u chvosta. Veľkosť zvolíme 0.1. Posunutím na -0.8 v smere Z zaistíme potrebnú výšku kométy nad povrchom Zeme. K telu kométy pripojíme objekt svetla od kométy a objekt chvosta kométy.

3D grafika

Posledným objektom bude skupina kométy. Je to len skupina, ku ktorej je pripojený objekt kométy. Aby sme zaistili obiehanie kométy okolo Zeme po šikmej dráhe, natočíme o kúsok celú sústavu okolo osi Z.

3D grafika

A ešte nakoniec musíme kométu rozhýbať. Cop budeme animovať tak, že budeme jednoducho náhodne nastavovať rotáciu okolo osi Y, čím zaistíme náhodné blikanie iskier v cope kométy. Celú skupinou kométy budeme otáčať okolo osi Y podobne ako s Mesiacom, len rýchlosť zvolíme 0.06.

3D grafika

A teraz už môžeme program spustiť. Mali by sme vidieť krásnu kométu, čiže staročeská Létavice.

3D grafika

Náš skvelý, ale úplne neužitočný program sa pomaly blíži k úplnej dokonalosti. Ale - čo by to bolo za Zem bez jediného mráčika? Mraky nám ešte chýba k reálnejšiemu vzhľadu Zeme.

Základom textúry mrakov bude priehľadná farba, na ktorú nasprejuje farebné škvrny. Alebo downloadujeme hotovú textúru na konci lekcie.

3D grafika

Ďalej potrebujeme číselný prvok ID mrakov. Objekt mrakov vytvoríme v samostatnej skupine vytvorenia mrakov predtým, než vytvoríme objekt Zem. Podobne ako pri Zemi, najskôr zvolíme zložitosť objektu 10, vytvoríme objekt mrakov ako guľu a nastavíme mierka vo všetkých smeroch na 1.05, čiže mraky budú mierne nad povrchom Zeme. Poznamenajme, že všetky objekty sa vytvára s rozmermi 1. Ďalej nastavíme textúru mrakov a zvolíme transparentnosť číslo 54. Tento typ priehľadnosti používa alfa kanál textúry, čo znamená priehľadnú farbu. Body vyplnené priehľadnou farbou zostanú priehľadné, ostatné body budú viditeľné.

Pred nastavením textúry nastavíme parameter vyhladenia textúr na hodnotu 2. Vyhladenie textúr nám udáva, ako veľmi sa obraz textúry rozmazávať. Rozmazaný sa realizuje tak, že textúra sa zmenší v mierke podľa zadaného čísla. Pritom je potrebné počítať s tým, že spravidla (v závislosti na grafickej karte) sa zmenšenie vykoná na rozmery najbližšej násobku mocniny 2. Rozmazaný textúry zabezpečí, že okraje mrakov budú polopriehľadné, s plynulým prechodom, a nie hranaté.

Po nastavení prepínača vyhladenie textúr sa tento prepínač uplatňuje i ďalej, u ďalších nastavovaných textúr. U textúry Zem je stupeň vyhladenie textúry 2 v poriadku, inak by sme videli zrnitý povrch. U textúry Mesiaca zvolíme radšej zrnitosť a preto pred nastavením textúry Mesiaca nastavíme vyhladenia textúr na 1.

Ak tutoriál skúšate v Lite verzii Petra tak nebudete pozorovať žiadny rozdiel pri doplnení prepínača vyhladenie textúr. Je to z toho dôvodu, že textúry sú v Lite verzii interne obmedzené na rozmer 128 x 128 grafických bodov. Ide pritom o rozmer po vyhladenie textúry. Textúry boli pripravené tak, aby vyhovovali rovnako ako Lite verzii tak plnej verzii, takže po vyhladení nepresahujú rozmer podporovaný Lite verzií. Lite verzia vykonala vyhladenie textúr akoby automaticky.

3D grafika

Posledné úpravou bude pripojenie mrakov k objektu Zeme.

3D grafika

Ak spustíte program, mali by ste vidieť Zemi zahalenú v oblakoch. Mraky sa pritom pohybujú súhlasne so Zemou.

3D grafika

Nádhera? No a už je to snáď konečne všetko. Alebo ešte nie? No jasné! Čo by to bolo za Vesmír bez hviezd!

3D grafika

No a nie je nič jednoduchšie. Pripravte si textúru oblohy, napríklad len čiernu plochu s pár bielymi bodkami, a nastavte ju do prvku textúra pozadia scény.

3D grafika

No a už len spustiť ...

3D grafika
A to je všetko, priatelia!

 

Stiahnuť

Stiahnutím nasledujúceho súboru súhlasíš s licenčnými podmienkami

Stiahnuté 269x (318.73 kB)
Aplikácia je vrátane zdrojových kódov v jazyku Petr Lite (sú obsiahnuté v EXE súbore, ktorý možno v programe priamo otvoriť)

 

Všetky články v sekcii
3D grafika
Článok pre vás napísal Panda38
Avatar
Užívateľské hodnotenie:
Ešte nikto nehodnotil, buď prvý!
Programátor C++, WinAPI, ASM.
Aktivity