Historie id Software - 4

Počítačové hry byly ještě před čtvrtstoletím zábavou pro hrstku nadšenců. Dnes jde o prosperující obor s mnohamiliardovými obraty, který je čím dál tím více provázán nejen s dalšími odvětvími zábavního průmyslu, ale i s celou oblastí informačních a komunikačních technologií.

Historie id Software


Rychlý rozvoj grafických akcelerátorů v posledních letech umožnil tvůrcům počítačových her vytvářet prostředí stále více připomínající realitu. Softwarový systém, který má na starosti zobrazování prostorové grafiky, se nazývá 3D engine. Jde o program, který zobrazuje prostorovou scénu tvořenou objekty a umožňuje se v něm pohybovat (to znamená určit, z kterého bodu je scéna snímána). 3D enginy jsou kromě počítačových her použity i v CAD systémech, v editorech 3D grafiky nebo zobrazují výsledky různých simulací. Kvůli rozdílnosti použití existují různé 3D enginy a každý z nich nabízí jiné možnosti.

V současnosti existuje velké množství 3D enginů. Rozlišují se podle určení, nabízených funkcí, podporovaných platforem a ceny. Moderní 3D engine v sobě zahrnuje kromě zobrazení scény i systém pro fyzikální modelování světa, zvukový podsystém, síťový subsystém, systém pro podporu umělé inteligence, jakož i podporu 2D grafiky a uživatelského rozhrání (GUI). Součástí každého moderního 3D enginu je knihovna pro práci s vektory, maticemi, případně s kvaterniony. Vektory popisují polohu, vzdálenost nebo směr. Matice reprezentují transformace a kvaterniony slouží pro popis rotace. Použity jsou vektory se dvěma složkami (např. texturovací souřadnice nebo pozice na obrazovce), třemi složkami (např. poloha v prostoru, směr v prostoru, barva) a čtyřmi složkami čísel (např. homogenní souřadnice, barva s alfa kanálem).

3D engine musí rovněž umět efektivně určit, jaké části scény jsou viditelné a které naopak nejsou v zorném poli. Dnešní počítačové hry mají scénu tvořenou z deseti i statisíců objektů. Protože procesor ani grafická karta by nestihly zpracovat takové množství objektů najednou, existuje spousta algoritmů pro řešení problému viditelnosti scény. Nejznámější jsou BSP stromy, Octree nebo hierarchický strom obalových těles. Při BSP stromech je prostor vždy rozdělen na dva (v ideálním případě stejně velké) podprostory pomocí polygonu – tím je vyhledávání a určení viditelnosti značně urychleno. Tato technika je použita např. ve hře Quake. Řešení pomocí Octree je založeno na rozdělení prostoru na krychle, podle složitosti scény v dané části virtuálního světa. V případě, že část virtuálního světa v krychli splňuje nějakou stanovenou podmínku (např. počet polygonů v něm přesahuje danou hodnotu), je rozdělena na osm menších krychlí. Tím je virtuální svět rozdělen na krychle různé velikosti, podle složitosti scény v daném místě. Obalové těleso je geometrický objekt, který obsahuje danou část scény (objektu) a je matematicky jednodušší. Nejčastěji se používá koule nebo kvádr. Ve většině případů při zpracování objektu stačí otestovat obalové těleso, a když danou podmínku nesplňuje obalové těleso, tak ji nesplňuje ani původní objekt v něm. Tím se ušetří mnohem složitější zpracování původního objektu.

Důležitým rysem herního prostředí je osvětlení scény, díky němuž se zobrazený virtuální svět stává realističtějším. Osvětlení v enginech může být buď statické, nebo dynamické. Statická osvětlení jsou ve většině případů předpočítaná a uložená ve formě textur, tzv. světelných map (lightmap); předpočítané světelné mapy mohou být mnohem kvalitnější, protože k jejich vytvoření lze použít složitější (časově náročnější) algoritmy – např. výpočet osvětlení technikou radiozity. Dynamická světla na druhé straně zvyšují realističnost scény – např. reflektor pohybujícího auta, světlo výbuchu apod. Světla se obvykle počítají pro vrcholy objektů a v ostatních bodech jsou interpolované. Moderní grafické karty umožňují použít kvalitnější osvětlení, kdy se počítá osvětlení pro každý bod zvlášť. Použití stínů představuje další možné rozšíření osvětlení. Stíny lze uložit ve světelných mapách (statické stíny), nebo je počítat dynamicky, přičemž pro výpočet dynamických stínů existuje několik algoritmů.

Dalším prvkem zvyšujícím kvalitu zobrazené scény jsou částicové systémy. Umožňují zobrazit kouř, oheň, déšť a jiné efekty složené z velkého množství malých částic. Částice jsou ve většině případů průhledné, pohybují se a časem mění svou barvu.

Animace postav v enginech může být založena na dvou různých algoritmech: buď je geometrie postavy uložena v každém časovém okamžiku (morph-animation), nebo se geometrie počítá podle animace kostry (bone-animation). Při použití bone-animation se dá animovat mimika pomocí morph-animation.








Komentáře