Hlavní stránka Multimédia Hry a zábava Hrátky s Unreal Engine - Část II: Příběh dvou místností
Hrátky s Unreal Engine - Část II: Příběh dvou místností
autor: Aleš Ulm , publikováno 28.5.2010
Hrátky s Unreal Engine - Část II: Příběh dvou místností

Ve druhé části našeho výukového seriálu o Unreal Development Kitu si probereme tvorbu základních objektů a jejich spojování do větších celků. Vytvoříme si dvě jednoduché místnosti a spojíme je pěkně chodbou. Dále se podíváme na základy osvětlení objektů a řekneme si něco o tom, jak světlo ve 3D scéně funguje.


Tady jsme už podruhé v našem seriálu narazili na problém se světlem a přestože se světlům budeme detailně věnovat později, osvětlíme si raději teď hned pár základních věcí. Stejně jako v reálném světě tak i ve hře je bez světelného zdroje tma. Výjimkou jsou objekty mající přiřazené materiály, které jsou nastaveny tak, že na ně světlo (resp. jeho absence) ve scéně nemá vliv. Příkladem jsou například některé části zbraně, kterou vaše postava v tuto chvíli drží a které jsou vidět i uprostřed černočerné tmy.

Nasvícení scény je to, co udělá z monotoní , nudné a ploché lokace reálně vypadající atmosferické místo. Přesvědčit se o tom, jak velký je to rozdíl, se můžete sami – stačí nahrát jakoukoliv úroveň připravenou Epicem a přepínat mezi módy zobrazení Lit a Unlit. Dost rozdíl, že? Těžko uvěřit, že tomu není tak až dlouho, co takhle vypadaly všechny 3D hry. Včetně těch, které byly ve své době považované za absolutní vizuální špičku.

Pojďme si tedy přidat do naší místnosti světlo. Vraťte se ze hry do editoru, zmáčkněte a podržte klávesu L a klikněte uvnitř místnosti na některou ze stěn. Budiž světlo!

Hrátky s Unreal Engine - Část II: Příběh dvou místností

Nově vytvořené světlo svítí a zobrazuje se jako ikona, což je u řady objektů v UDK obvyklé – pochopitelně hlavně u takových, které nemají žádnou viditelnou podstatu (takže například ještě zvuky atp.). V úrovni pak máte ihned přehled, kde se jaký objekt nachází.

Zkontrolujte, jestli máte zapnutý mód zobrazení Lit (jinak byste vliv světla vůbec neviděli). Označte světlo a odsuňte ho dál od stěny. Přepněte na změnu velikosti a zkuste zatahat za táhla transformačního pomocníka. Jistě si všimnete, že tak můžete rychle a snadno měnit dosah světla. Kromě změny pozice a dosahu můžete se světlem provádět i třetí možnou transformaci – rotaci. Nicméně vzhledem k tomu, že jste právě vytvořili bodové světlo, které svítí do všech směrů stejně, neočekávám, že by vás jeho otáčení nějak zvlášť uspokojilo.

Když se ve scéně změní objekty nebo přímo světla, nastane obvykle nutnost scénu přesvítit – to je právě to, na co nás upozorňovala neodbytná hláška v předchozím díle. Proč? Copak se v reálném světě světlo nějak přepočítává?

Práce se světly (a logicky tedy i se stíny) je velmi náročná záležitost a to i přes to, že oproti minulosti je dnešní hardware na její řešení podstatně lépe uzpůsoben. Zjednodušeně řečeno je na simulaci světla náročné to, že svítí neustále a to v podmínkách, které se mohou měnit a proto je ho třeba neustále přepočítávát. Představte si, že svítíte baterkou na stěnu v temné místnosti. Před sebou na zdi vidíte jasný kruh světla, který se ani nezachvěje díky vaší nehybné (pojďme na chvíli zapomenout na to, že hlavní potravou vývojářů je káva, ano?) ruce. V místnosti jste sami a nic se nemůže dostat mezi vás a stěnu. V tu chvíli je teoreticky možné spočítat, jak se má světlo na stěně zobrazit, výsledek si „zapamatovat“ a jen ho tam dál vykreslovat, protože bude vypadat vždy stejně. Ale co když začnete rukou s baterkou mávat? No, nemusíte ani mávat – co když se vám prostě jen nepatrně chvěje? V ten moment musíte výslednou podobu světla na stěně začít přepočítávat průběžně.

Hrátky s Unreal Engine - Část II: Příběh dvou místností

Co třeba takové záblesky výstřelů, ty budou dynamické až moc! Hra Stranglehold

Z tohohle příkladu si můžeme odnést jeden zásadní poznatek. Světla, která se nemění, stačí spočítat jednou v editoru a pak už „nežerou výkon“, zatímco co světla, která se jakýmkoliv způsobem v čase mění (nebo se mění to, co osvětlují), je třeba neustále kontrolovat a pracovat s nimi. Ta první označujeme jako světla statická a ta druhá jako dynamická. O obou druzích, práci s nimi i jejich výhodách a nevýhodách si ještě něco řekneme později.

Teď už nejspíš chápete, proč nás editor mučí při pohnutí světla či změně ve scéně s přepočítáváním světel. Engine si v editoru dopředu spočítá jednorázově nasvícení, které pak při běhu hry nepočítá a enormně tak šetří výkon.

A jak tedy scénu přesvítit? Klikněte na ikonu žárovky (Build Lighting) a otevřené okno potvrďte. Spustí se proces nasvětlování, v jehož průběhu na vás vyběhne několik dalších oken – na závěr i okno s různými chybami. Toho se neděste a až bude hotovo, tak je prostě pozavírejte. Celý proces není zrovna rychlý a bude se ještě prodlužovat úměrně tomu, jak se bude vaše scéna rozrůstat (respektive podle toho, jak moc komplexní budou vaše CSG modely). Později, až toho bude ve scéně víc, si povíme, jak se to celé dá trochu urychlit.



 
Komentáře naleznete na konci poslední kapitoly.
128 čtenářů navrhlo autorovi prémii: 64Kč Prémie tohoto článku jsou již uzavřené, děkujeme za váš zájem.
Tento web používá k poskytování služeb soubory cookie.