Id Tech 2

Id Tech 2

Informace
Vyvinul id Software
První verze 1997
Vklad github.com/id-Software/Quake-2
Napsáno C , Assembler
Operační systém Microsoft Windows a Linux
životní prostředí Domácí počítač , Macintosh , PlayStation 2 , Dreamcast , Amiga a PlayStation
Typ Herní engine
Licence GNU General Public License
webová stránka www.idsoftware.com/business/idtech2

Chronologie verzí

Id Tech 2 je video herní engine vyvinutý společností id Software . Je nástupcem ID Tech 1 použitého pro hru Doom . Zahájeno pro hru Quake (1996) a vylepšeno pro hru Quake II (1997). Podle jeho vývoje byl postupně označován jako Quake engine , poté Quake II engine a v roce 2007 id Software přejmenoval svoji řadu motorů a tato verze má konečný název id Tech 2. Článek se zabývá těmito dvěma verzemi (pro Quake a Quake II ), verze, které mají spoustu společného.

Historický

Základy id Tech 2 byly vytvořeny v roce 1996 pomocí enginu Quake pro hru Quake . John Carmack tam prováděl většinu programování s pomocí Michaela Abrasha , specialisty na algoritmické optimalizace a asembler.

Ve stejném roce byl kód síťové části, který se poté přizpůsobil pouze nízké latenci místních sítí , zcela přepracován tak, aby fungoval v méně spolehlivé a pomalejší síti než internet . Toto je větev s názvem QuakeWorld (Prosince 1996), produkoval John Carmack za pomoci John Cash a Christian Antkow .

Původní modul Quake provádí veškeré vykreslování v softwaru. John Carmack experimentuje s několika specializovanými spustitelnými soubory podporujícími různá hardwarová akcelerace (například VQuake, podpora čipu Vérité 1000 Rendition karty 3D Blaster ), poté byla na konci ledna 1997 vytvořena obecná podpora OpenGL (GLQuake), poté podporována některými kartami (včetně 3dfx Voodoo ).

Na konci roku 1997 byl vydán Quake II . Engine Quake II je výsledkem hlavně konvergence kódu různých větví . Byly provedeny strukturální změny, včetně rozdělení různých aspektů enginu do několika dynamických knihoven oddělujících například logiku specifickou pro hru od zbytku enginu .

Různé verze byly vydány postupně pod GPL v roce 1999 (Quake engine), poté v roce 2001 (Quake 2 engine).

V roce 2007 id Software přejmenovává svoji řadu motorů a formálně Quake II engine přebírá název id Tech 2 a další mezilehlé verze, protože Doom engine ( id Tech 1 ) jsou z řady vyřazeny.

Technický

Software / hardware

Id tech 2 nabízí dva režimy vykreslování pro 3D, buď přes grafickou kartu, nebo vypočítané procesorem. Quake1 spravoval ve své první verzi pouze vykreslení procesoru.

Hřídel BSP

Dekorace jsou rozděleny podle stromu BSP (rozdělení binárního prostoru): hierarchie plánu rozděluje prostor na dvě zcela oddělené poloviny. Plány jsou také představeny podél vnějších stěn mapy. Podzóny takto definované v plánech se nazývají List  : jsou to ty, které obsahují objekty mapy. Prázdné listy obsahují viditelný povrch (mnohoúhelníky) a plné listy obsahují pevné objemy (štětce).

Je snadné rekurzivně zjistit, na které straně střely je bod (zde kamera), a zjistit, ve kterém listu se nachází. Dostaneme seznam viditelných listů (viz pvs). Sledováním plánů stromu BSP, který rozděluje svět, můžeme dosáhnout dokonalého třídění listů od nejblíže k nejdále od kamery. Toto pořadí z je nutné k optimalizaci vykreslení softwaru.

PVS nebo potenciálně viditelná sada

Zatímco Id Tech 1 plně počítá okluzi v reálném čase, Id Tech 2 předkompaktuje okluzi listu pomocí portálů během kompilace mapy. Každý list obsahuje seznam viditelných listů. To značně omezuje vykreslování skryté geometrie.

Takto funguje renderovací kanál Id Tech 2:

  1. komolice kamery prochází bsp s uspořádáním z, aby eliminovalo listy mimo zorné pole. Rovněž jsou vyloučeny uzavřené listy, které nejsou zahrnuty v seznamu viditelných listů;
  2. motor je instruován, aby zviditelnil všechny polygony obsažené v těchto listech;
  3. při „softwarovém“ vykreslování jsou polygony před vykreslením spojeny dohromady (viz GEL);
  4. polygony jsou odesílány na grafickou kartu (v hardwarovém režimu) nebo čerpány procesorem (v softwarovém režimu);
  5. znaky se vykreslují jednodušeji, přímo v z-bufferu (v softwaru i v hardware).

Brush CollisionMap

Sestava konvexních těles ("štětce") je uložena v bsp i v dynamických modelech a umožňuje vypočítat kolize mezi znaky a architekturou.

Vykreslil GEL

Tato technika finalizuje výpočet okluze k pixelu pro režim softwarového vykreslování.

Aby se nezobrazily části stěny skryté bližší stěnou, používá se Globel Edge List: ukládá seznam hran všech již zobrazených trojúhelníků a každý nový trojúhelník je „ oříznut “ ( oříznut ) těmito segmenty: pouze poté se zobrazí viditelné části těchto trojúhelníků. Toto oříznutí je optimalizováno pomocí 2D stromu bsp.

Tato metoda oříznutí bude k dispozici ve stínovém vykreslování pro id tech 4.

Textury, mezipaměť povrchu

Stěny jsou zobrazeny se základní texturou a světelnou mapou . Aby se nezobrazilo vše dvakrát, povrch se generuje smícháním textury a světelné mapy použité ve zdi.

Povrchy jsou uloženy v mezipaměti, aby bylo možné znovu použít dříve vypočítané a uvolnit je, pokud se již nepoužívají.

Menší povrchy se generují pro vzdálenější stěny pomocí mipmap textury (světelné mapy jsou již v nízkém rozlišení), aby se ušetřila paměť a zabránilo se fenoménu aliasingu / pixelace textur viděných z příliš velké vzdálenosti.

ZBuffer a charakter

Během zobrazení scenérie je také vyplněn Z-buffer. Nepoužívá se během vykreslování scenérie, ale během vykreslování postav a dalších dynamických 3D objektů, aby se v případě potřeby skryly scenérií.

Při pohledu z dálky se znaky nezobrazují ve 3D, ale pomocí systému voxelů  : velký bod, jehož stejnoměrná barva vychází z textury postavy.

Dynamické osvětlení

Znaky jsou rovnoměrně osvětleny barvou, která závisí na jejich poloze; tato barva pochází ze struktury ukládající okolní osvětlení ve 3D. (= "lightvol")

Zobrazení trojúhelníků v režimu procesoru

Nízkoúrovňové vykreslování trojúhelníků je napsáno v assembleru. Kvůli omezenému počtu celočíselných registrů používá FPU pro všechny výpočty interpolace perspektiv a souřadnic textury.

Pozoruhodné hry

Seznam pozoruhodných her využívajících engine nebo vylepšenou verzi hry Quake nebo Quake II. Mody zde nejsou uvedeny, verze motorů vyvolaly vzhled stovek modů.

Odvozené volné motory

The 21. prosince 1999John Carmack ze společnosti id Software uvolňuje zdrojový kód pro Quake engine na internetu za podmínek GNU General Public License , což umožňuje programátorům upravit engine a přidat do něj nové funkce. Brzy začaly na internetu obíhat první upravené verze motoru.

Některé z těchto úprav jsou k dispozici na živých CD . Patří mezi ně bezplatný operační systém i klient QuakeWorld . Některé původní soubory z Quake CD ( pak0.paka pak1.pak) však musí být zkopírovány na tato Live CD , aby byly plně funkční. Ve skutečnosti modul QuakeEngine prošel do veřejné sféry, zatímco grafické prvky (textury, grafika atd.) Zůstaly majetkem ID Software.

DarkPlaces

Darkplaces  (in) je modifikace enginu, která vylepšuje síťový kód (netcode), přidává mapy podpory Quake III , renderovací engine kompletně přepracovaný (osvětlení a stíny počítané v reálném čase, bump mapping , správa shaderů OpenGL atd.), vestavěný serverový prohlížeč a přidává podporu pro Ogg Vorbis .

Je založen na verzi Id Tech 2 vydané společností Id Software a je kompatibilní s Linuxem, Mac OS X a Windows. Používá se zejména Nexuiz pak Xonotic.

Je vyvinut společností Forest Hale, známou jako „LordHavoc“, stejně jako komunitou vývojářů.

ezQuake

ezQuake  (in) je upravená verze motoru FuhQuake. Kompatibilní s MacOs a FreeBSD, podporuje QuakeTV a multiview, přináší další možnosti pro servery, nová menu a integruje mp3 přehrávač, prohlížeč pro servery a nahrané hry.

ProQuake

ProQuake  (en) je založen na kódu vydaném Id. Tento mod, pod licencí GPL, se zaměřuje na zlepšení režimu pro více hráčů (přesnost střelby atd.) A ochranu proti podvádění, ale také umožňuje:

Je vyvinut společností JP Grossman (aka „Mephistopheles“). Nejnovější verze (3,50 z21. září 2002) je kompatibilní s Quake a NetQuake, ale ne s QuakeWorld.

Telejano

Telejano je modifikace odvozená od motoru TomazQuake, která přidává mnoho nových prvků, jako je částicový motor, světelné efekty, jiskry při dopadu střel, výbuchy; pro vodu: vlnové a žíravé účinky  ; kouřové stopy za koulemi magmatu a raketami; ale také realističtější krev, mlha. To vše bez jakékoli úpravy původních map.

Poslední verze (oznámená jako finální verze projektu) je 8,01 z 7. ledna 2005.

Jiné známé motory

Ostatní motory

Existuje samozřejmě mnoho dalších úprav motoru:

Poznámky a odkazy

  1. (in) „  Technologický licenční program id Software  “ na http://www.idsoftware.com/ (přístup 12. září 2008 )  : „Mnoho lidí si je vědomo původního que la QUAKE Byl veřejně zdrojový kód vydaný společností id v roce 1999 pod GNU Široká veřejnost. "
  2. (in) Slashdot, 22. prosince 2001 Zdrojový kód Quake 2 vydán pod GPL
  3. (in) „  Licenční program na technologii id Software  “ na http://www.idsoftware.com/ (přístup 12. září 2008 )  : „[..] od prosince 2001 je tento kriticky uznávaný modul k dispozici jako GNU General Public License . "
  4. (in) „  3D Engine: Quake  “ na http://www.mobygames.com/home (přístup dne 5. září 2008 )
  5. (in) „  3D Engine id Tech 2  “ na http://www.mobygames.com/home (zpřístupněno 5. září 2008 )
  6. (in) „  LordHavoc's Darkplaces Quake  “ (zpřístupněno 6. září 2008 )
  7. (in) „  ezQuake  “ , ale 26. 2007 (přístup 22. října 2009 )
  8. (in) „  ProQuake  “ (zpřístupněno 6. září 2008 )
  9. (in) JP Grossman, „  Readme verze 3.50  “ ,21. září 2002(zpřístupněno 6. září 2008 )
  10. (in) Telejano, „  Telejano  “ (zpřístupněno 5. září 2008 )
  11. (in) C. Hollemeersch, „  Tenebrae  “ (zpřístupněno 5. září 2008 )
  12. (in) Tomaz, „  Tomaz 'Corner  “ (přístup ke dni 5. září 2008 )
  13. (in) "  ezQuake  " ,26. května 2007(zpřístupněno 5. září 2008 )
  14. (in) John Fitzgibbons, „  FitzQuake  “ (zpřístupněno 5. září 2008 )
  15. (in) Jozsef, „  JoeQuake  “ (zpřístupněno 5. září 2008 )
  16. (v) „  MacGLQuake  “ (zpřístupněno 5. září 2008 )
  17. (in) „  Pocket Quake  “ (zpřístupněno 5. září 2008 )
  18. (in) „  QuakeForge  “ (zpřístupněno 5. září 2008 )
  19. (in) „  ZQuake  “ (zpřístupněno 5. září 2008 )

externí odkazy