Osvětlení na pixel - Per-pixel lighting
v počítačová grafika, osvětlení na pixel odkazuje na jakoukoli techniku pro osvětlení obrázek nebo scéna, která počítá osvětlení pro každý pixel na vykresleném obrázku. To je na rozdíl od jiných populárních metod osvětlení, jako je vrchol osvětlení, který počítá osvětlení v každém vrcholu a 3D model a pak interpoluje výsledné hodnoty na tvářích modelu pro výpočet konečných hodnot barev na pixel.
Osvětlení na jeden pixel se běžně používá u technik, jako je normální mapování, bump mapping, zrcadlovost, a stínové objemy. Každá z těchto technik poskytuje některá další data o osvětlovaném povrchu nebo scéně a světelných zdrojích, které přispívají ke konečnému vzhledu a dojmu povrchu.
Většina moderních motorů pro videohry implementuje osvětlení pomocí technik na jednotlivé pixely namísto vrcholného osvětlení, aby se dosáhlo většího detailu a realismu. The id Tech 4 engine, který se používá k vývoji takových her jako Pokraj a Doom 3, byl jedním z prvních herních enginů, které implementovaly zcela stínovací engine na každý pixel. Všechny verze CryENGINE, Frostbite Engine, a Neskutečný motor, mimo jiné také implementovat techniky stínování podle jednotlivých pixelů.
Odložené stínování je nedávný vývoj osvětlení na jednotlivé pixely, který je pozoruhodný jeho použitím ve Frostbite Engine a Battlefield 3. Odložené stínovací techniky jsou schopny levně vykreslit potenciálně velké množství malých světel (jiné přístupy k osvětlení jednotlivých pixelů vyžadují výpočty celé obrazovky pro každé světlo ve scéně bez ohledu na velikost).
Dějiny
Zatímco teprve nedávno se osobní počítače a video hardware staly dostatečně výkonnými, aby umožňovaly úplné stínování na pixel v aplikacích v reálném čase, jako jsou hry, mnoho základních konceptů používaných v modelech osvětlení na pixel existuje již po celá desetiletí.
Frank Crow publikoval článek popisující teorii stínové objemy v roce 1977.[1] Tato technika využívá vyrovnávací paměť šablony specifikovat oblasti obrazovky, které odpovídají povrchům, které leží v "stínovém svazku" nebo tvaru představujícím objem prostoru zastíněného ze světelného zdroje nějakým objektem. Tyto stínované oblasti jsou obvykle vykresleny po vykreslení scény do vyrovnávacích pamětí uložením stínovaných oblastí pomocí vyrovnávací paměti vzorníku.
Jim Blinn poprvé představil myšlenku normální mapování v roce 1978 SIGGRAPH papír.[2] Blinn poukázal na to, že dřívější myšlenku neosvětleného mapování textur navrhl Edwin Catmull bylo nereálné pro simulaci drsných povrchů. Namísto mapování textury na objekt za účelem simulace drsnosti navrhl Blinn metodu výpočtu stupně osvětlení, který by měl bod na povrchu obdržet, na základě zavedené „poruchy“ normálů napříč povrchem.
Hardwarové vykreslování
Aplikace v reálném čase, jako např videohry, obvykle implementují osvětlení na pixel pomocí použití shadery pixelů, což umožňuje GPU hardware pro zpracování efektu. Scéna, která má být vykreslena, je nejprve rastrována na řadu vyrovnávacích pamětí ukládajících různé typy dat, která se použijí při vykreslování scény, jako je hloubka, normální směr a difúzní barva. Poté se data předají do shaderu a použijí se k výpočtu konečného vzhledu scény, pixel po pixelu.
Odložené stínování je technika stínování na pixel, která se v poslední době stala pro hry proveditelnou.[3] S odloženým stínováním se „g-buffer“ používá k ukládání všech termínů potřebných k zastínění konečné scény na úrovni pixelů. Formát těchto dat se liší od aplikace k aplikaci v závislosti na požadovaném efektu a může zahrnovat normální data, poziční data, zrcadlový data, šířit data, emisní mapy a albedo, mezi ostatními. Pomocí více cílů vykreslení lze všechna tato data vykreslit do g-bufferu jediným průchodem a shader může vypočítat konečnou barvu každého pixelu na základě dat z g-bufferu v konečném „odloženém průchodu“.
Vykreslování softwaru
Osvětlení na jeden pixel se také provádí v softwaru na mnoha špičkových komerčních vykreslovacích aplikacích, které se obvykle nevykreslují při interaktivních snímkových rychlostech. Tomu se říká offline vykreslování nebo softwarové vykreslování. NVidia mentální paprsek vykreslovací software, který je integrován s takovými sadami jako Autodesk je Softimage je dobře známý příklad.
Poznámky
- ^ Crow, Franklin C: „Shadow Algorithms for Computer Graphics“, Počítačová grafika (SIGGRAPH '77 Proceedings), sv. 11, č. 2, 242-248.
- ^ Blinn, James F. „Simulace vrásčitých povrchů“, Počítačová grafika (SIGGRAPH '78 Proceedings, sv. 12, č. 3, 286-292.
- ^ Hargreaves, Shawn a Mark Harris: „6800 mil pod mořem: odložené stínování“. Aktiva NVidia pro vývojáře.