Skybox

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 5. března 2017; kontroly vyžadují 27 úprav .

Skybox ( anglicky  sky  - „ sky “ a box  - „box“) je objekt v trojrozměrné grafice , který hraje roli oblohy a horizontu . Jde o jednoduchý trojrozměrný model (nejčastěji krychle ), z jehož vnitřku je natažena textura oblohy (tzv. " kubická textura ").

Technologie

Zpracování 3D grafiky vyžaduje hodně výpočetní práce, takže „poctivě“ počítat objekty na horizontu ve hrách by bylo zbytečné. 3D hardware má navíc Z-buffery , které kvůli omezené bitovosti zahazují vše, co je daleko od fotoaparátu [1] . Vzdálené objekty jsou proto zobrazeny extrémně primitivním způsobem: ve formě krychle, jejíž šest tváří tvoří textury oblohy a horizontu. Pokud tuto krychli zobrazíte tak, že je kamera přesně ve středu, bude se zdát, že obloha a hory jsou ve skutečnosti skrz kameru viditelné.

Skybox vždy sleduje kameru, takže objekty zobrazené na skyboxu se zdají být daleko do nekonečna. Engine vykreslí skybox každý snímek jako první, a to vypnutím Z-bufferingu [2] .

Vysoké objekty jako věže , které jsou viditelné z libovolného bodu v úrovni, se na skybox většinou nekreslí - nepotřebují iluzi „nekonečné vzdálenosti“, ale naopak určitou polohu v prostoru. Existují však výjimky z pravidla, kdy skyboxy zobrazují obrovské struktury navržené tak, aby ukazovaly, co je mimo herní úroveň. Podobné skyboxy lze vidět v Quake II , Quake 4 , The Chronicles of Riddick: Escape from Butcher Bay atd.

Zdrojem textury může být cokoli: fotografie, kresba nebo 3D render .

3D skyboxy

Aby bylo možné nějak „oživit“ oblohu, od konce 90. let začali vývojáři do skyboxu přidávat nějakou geometrii – například vrstvy mraků a hvězd v Unreal [3] a realMyst . V Grand Prix 3 jsou od sebe odděleny válcový horizont a sférická obloha kvůli požadavku na dynamickou změnu počasí na okruhu.

V novějších hrách se skyboxy skládají z více vrstev, které sledují hráče nerovnoměrnou rychlostí . Takto je vymodelována věž Citadely v Half-Life 2 . V úrovních umístěných uvnitř Citadely jsou součástí trojrozměrného skyboxu i horní patra věže, kam hráč nemá přístup [4] . Geometrie skyboxu každopádně zůstává extrémně jednoduchá: například superportál z Half-Life 2: Episode Two je jen jeden polygon a viditelnosti portálu je dosaženo shadery [4] . V Half-Life 2 jsou 3D skyboxy vyrobeny v měřítku 1:16 - objekty jsou nakresleny 16násobkem jejich skutečné velikosti [5] .

Zajímavé je, že ve hře Portal od stejného Valve hráč nebe vůbec nevidí a autoři se při pohledu přes portál ani nepokoušeli opravit artefakty 3D skyboxu. Toto bylo opraveno v novějších verzích motoru [5] .

Netradiční skyboxy

V 2.5D motorech, jako je Doom engine , vypadá skybox jako válec . Na rozdíl od moderních her nebyla obrazovka zaplavena skyboxem každý snímek a fragmenty oblohy byly kresleny pomocí speciálního postupu, když renderer narazil na „nebem plná“ letadla [6] .

V prvních 3D hrách ( Quake ) byla obloha „nekonečně vzdálenou“ rovinou s texturou mraků, které se přes ni pohybovaly. Taková obloha vypadá „lisovaně“, plná stratusových mraků  – i když ve skutečnosti je modrá, se světlými bílými mraky. V Quake 3 je tato metoda kreslení oblohy dostupná také spolu s krychlí; kromě toho lze obě metody použít nakreslením roviny s tlakovými mraky na vrcholu krychlového skyboxu.

V některých hrách (například Grand Prix 3 ) má skybox tvar koule nebo kopule [7] . Možná je to způsobeno extrémně nízkými detaily textur a režimem softwarového vykreslování.

Viz také

Poznámky

  1. OpenGL Red Book – prohlížení Archivováno 29. září 2010 na Wayback Machine 
  2. Gamedev.ru: Jednoduchý skybox . Získáno 4. října 2010. Archivováno z originálu 15. července 2010.
  3. Unreal Wiki: Skybox archivován 29. března 2010 na Wayback Machine 
  4. 1 2 Komentáře vývojářů ke hře.
  5. 1 2 Valve Wiki: 3D Skyboxes Archived 2. října 2010 na Wayback Machine 
  6. Zdrojový kód hry Doom byl vydán pod bezplatnou licencí a je k dispozici pro každého k nahlédnutí.
  7. Je patrné , že v nastavení ovladače je zbytečné posouvat střed texelu .