Ray tracing: slepá ulička nebo budoucnost grafiky?
10.9.2008, Petr Štefek, článek
Intel vehementně propaguje alternativní metodu renderování v počítačových hrách zvanou ray tracing. Nvidia naopak stojí za osvědčenou současnou metodou rasterizace. AMD přešlapuje a mlčí, ale nová Cinema 2.0 a neoficiální dema se přiklání na stranu Intelu.
Kapitoly článku:
- Ray tracing: slepá ulička nebo budoucnost grafiky?
- Ray tracing vs. reálný svět a jeho současné využití
- Nvidia a AMD vs. ray tracing
- Intel a jeho nadšení pro ray tracing
- Závěr - kdo s koho
Společnost Intel vidí naopak v ray tracingu velký potenciál a propaguje tento způsob jako nástupce současné rasterizace. Demonstrace Intelu jsou v naprosté většině založeny na reálných herních enginech pod OpenGL. Začalo to hrou Quake III a v současné době to končí ve hře Enemy Territory: Quake Wars, která je schopná běžet na 4 procesorech quad-core Xeon rychlostí 20 FPS. Intel přistupuje k ray tracingu zcela jiným způsobem než Nvidia. Vše akceleruje na svých x86 architekturách, které přes nižší papírový výkon, než v případě GPU, jsou pro tyto účely lepší.
Daniel Pohl, programátor, se již v roce 2004 odvážil vyzkoušet jako svůj studentský projekt real-time ray-tracing. Hru Quake III (OpenGL) s enginem společnosti id Software předělal tak, aby využívala výhod ray tracingu. Quake III tak dostal reálný světelný model a také díky eliminaci rasterizace mohl Daniel experimentovat se zvyšováním počtu polygonů.
Obvyklá zeď ve hře Quake III se skládá pouze z několika málo polygonů, a tak Daniel vyzkoušel nahradit tuto plochu plastickým povrchem o 5000 polygonech. Nejen, že v případě ray tracingu nedošlo ke zpomalení a výkonovým propadům, ale také díky skutečné geometrii docházelo v interakci se zdroji osvětlení k výraznému vizuálnímu zlepšení.
V případě rasterizace se ovšem tento „reálný“ postup simuluje za pomocí offset mappingu (parallax mapping), kde je z 2D jednoduché textury simulován plastický povrch předmětů. Ten není vždy úplně ideální, ale pro většinu her postačí a nezatěžuje zbytečně grafickou kartu. Výhody kombinace obou řešení jsou zřejmé.
Složitý geometrický reliéf se nebude nutně simulovat offset mapingem, místo toho bude nahrazen skutečnými polygony a jemné plastické povrchy budou moci 2D textury v klidu využívat, aniž by utrpěla simulace „reality“. Dalším krokem Daniela byla hra Quake IV, kterou opět donutil pracovat s ray tracingem, ale tentokráte již pod taktovkou Intelu a jeho ray tracing enginu.
Poslední prezentace možností v reálných hrách bylo Enemy Territory: Quake Wars, které je založeno rovněž na OpenGL engine idTech4 s mnoha vylepšeními (Mega Texturing). Pro relativně plynulé zobrazení rozlišení 1280x720 bylo třeba 4 procesorů Intel Xeon 2.93 GHz (Tigerton - quad-core). Počet snímků za sekundu osciloval od zhruba 14 po 29.
Mezi hlavní devizy této demonstrace patří například kouřové efekty (nebo mlha), které propouštějí pouze část světla a vrhají tak stín. Vodní efekty lámou paprsky a na reflexních plochách, jako je zrcadlo nebo okno, vidíte komplet všechny odrazy jako v reálném světě. Demonstrační systém byl založen kupodivu na 64-bitovém Linuxu.
Je jasné, že současné procesory nejsou nejsilnější v kramflících, pokud se týká ray tracingu, a tak pro zpracování relativně starých je her je třeba hned několika čtyřjádrových procesorů. Kdybychom chtěli ray tracing nasadit nyní do reálného použití, tak bychom nedosáhli ničeho. Za pár let budou ale zcela běžné 8-16 jádrové procesory a také bude k dispozici Larrabee s počtem až 64 jader. Stejně tak dlouho, jako budeme čekat na hardware, bude také trvat než ray tracing adoptují herní studia a začnou vznikat zbrusu nové hry. Bude Unreal Engine 4 využívat ray tracing, co myslíte?
Daniel Pohl, programátor, se již v roce 2004 odvážil vyzkoušet jako svůj studentský projekt real-time ray-tracing. Hru Quake III (OpenGL) s enginem společnosti id Software předělal tak, aby využívala výhod ray tracingu. Quake III tak dostal reálný světelný model a také díky eliminaci rasterizace mohl Daniel experimentovat se zvyšováním počtu polygonů.
Obvyklá zeď ve hře Quake III se skládá pouze z několika málo polygonů, a tak Daniel vyzkoušel nahradit tuto plochu plastickým povrchem o 5000 polygonech. Nejen, že v případě ray tracingu nedošlo ke zpomalení a výkonovým propadům, ale také díky skutečné geometrii docházelo v interakci se zdroji osvětlení k výraznému vizuálnímu zlepšení.
Quake III využívající ray tracing
V případě rasterizace se ovšem tento „reálný“ postup simuluje za pomocí offset mappingu (parallax mapping), kde je z 2D jednoduché textury simulován plastický povrch předmětů. Ten není vždy úplně ideální, ale pro většinu her postačí a nezatěžuje zbytečně grafickou kartu. Výhody kombinace obou řešení jsou zřejmé.
Složitý geometrický reliéf se nebude nutně simulovat offset mapingem, místo toho bude nahrazen skutečnými polygony a jemné plastické povrchy budou moci 2D textury v klidu využívat, aniž by utrpěla simulace „reality“. Dalším krokem Daniela byla hra Quake IV, kterou opět donutil pracovat s ray tracingem, ale tentokráte již pod taktovkou Intelu a jeho ray tracing enginu.
Quake 4 využívající ray tracing
Poslední prezentace možností v reálných hrách bylo Enemy Territory: Quake Wars, které je založeno rovněž na OpenGL engine idTech4 s mnoha vylepšeními (Mega Texturing). Pro relativně plynulé zobrazení rozlišení 1280x720 bylo třeba 4 procesorů Intel Xeon 2.93 GHz (Tigerton - quad-core). Počet snímků za sekundu osciloval od zhruba 14 po 29.
Mezi hlavní devizy této demonstrace patří například kouřové efekty (nebo mlha), které propouštějí pouze část světla a vrhají tak stín. Vodní efekty lámou paprsky a na reflexních plochách, jako je zrcadlo nebo okno, vidíte komplet všechny odrazy jako v reálném světě. Demonstrační systém byl založen kupodivu na 64-bitovém Linuxu.
Enemy Territory: Quake Wars využívající ray tracing
Je jasné, že současné procesory nejsou nejsilnější v kramflících, pokud se týká ray tracingu, a tak pro zpracování relativně starých je her je třeba hned několika čtyřjádrových procesorů. Kdybychom chtěli ray tracing nasadit nyní do reálného použití, tak bychom nedosáhli ničeho. Za pár let budou ale zcela běžné 8-16 jádrové procesory a také bude k dispozici Larrabee s počtem až 64 jader. Stejně tak dlouho, jako budeme čekat na hardware, bude také trvat než ray tracing adoptují herní studia a začnou vznikat zbrusu nové hry. Bude Unreal Engine 4 využívat ray tracing, co myslíte?