Osvětlení počítačové grafiky - Computer graphics lighting

Osvětlení počítačové grafiky je soubor technik používaných k simulaci světla ve scénách počítačové grafiky . Přestože světelné techniky nabízejí flexibilitu v úrovni detailů a dostupných funkcí, fungují také na různých úrovních výpočetní náročnosti a složitosti . Grafici si mohou vybrat z různých světelných zdrojů, modelů, stínovacích technik a efektů, aby vyhovovaly potřebám každé aplikace.

Světelné zdroje

Světelné zdroje umožňují různé způsoby zavádění světla do grafických scén.

Směřovat

Bodové zdroje vyzařují světlo z jednoho bodu ve všech směrech, přičemž intenzita světla klesá se vzdáleností. Příkladem bodového zdroje je samostatná žárovka.

Směrový světelný zdroj osvětlující terén.

Směrový

Směrový zdroj (nebo vzdálený zdroj) rovnoměrně osvětluje scénu z jednoho směru. Na rozdíl od bodového zdroje se intenzita světla produkovaného směrovým zdrojem nemění se vzdáleností, protože se směrovým zdrojem se zachází, jako by byl extrémně daleko od scény. Příkladem směrového zdroje je sluneční světlo.

Reflektor

Bodové světlo vytváří směrovaný kužel světla. Světlo se stává intenzivnější blíže ke zdroji reflektorů a ke středu světelného kužele. Příkladem reflektoru je baterka.

Okolní

Zdroje okolního světla osvětlují objekty, i když není k dispozici žádný jiný zdroj světla. Intenzita okolního světla je nezávislá na směru, vzdálenosti a dalších předmětech, což znamená, že efekt je v celé scéně zcela jednotný. Tento zdroj zajišťuje, že objekty jsou viditelné i v úplné tmě.

Lightwarp

Světelná osnova je technika, při které objekt v geometrickém světě láme světlo na základě směru a intenzity světla. Světlo se pak zkroutí pomocí difuzního členu prostředí s rozsahem barevného spektra . Světlo pak může být reflexně rozptýleno, aby vytvořilo vyšší hloubku ostrosti , a lomeno . Tato technika se používá k vytvoření jedinečného stylu vykreslování a může být použita k omezení přeexponování objektů. Hry, jako je Team Fortress 2, používají techniku ​​vykreslování k vytvoření stylizovaného vzhledu kresleného stínu .

Interakce osvětlení

V počítačové grafice se světlo obvykle skládá z více komponent. Celkový účinek světelného zdroje na objekt je určen kombinací interakcí objektu s těmito složkami. Tři primární komponenty osvětlení (a následné typy interakcí) jsou difúzní, okolní a zrcadlové.

Rozklad světelných interakcí.

Šířit

Difúzní osvětlení (nebo difúzní odraz ) je přímé osvětlení předmětu rovnoměrným množstvím světla, které interaguje s povrchem rozptylujícím světlo . Poté, co světlo dopadne na předmět, se odráží jako funkce povrchových vlastností objektu a úhlu dopadajícího světla. Tato interakce je hlavním přispěvatelem k jasu objektu a tvoří základ pro jeho barvu.

Okolní

Jelikož je okolní světlo bez směru, interaguje rovnoměrně na všech površích, přičemž jeho intenzita je dána silou zdrojů okolního světla a vlastnostmi povrchových materiálů předmětů, jmenovitě jejich koeficienty okolního odrazu .

Spekulární

Zrcadlové osvětlení komponenta poskytuje objekty lesk a zvýraznění. To se liší od zrcadlových efektů, protože jiné objekty v prostředí nejsou v těchto odrazech viditelné. Zrcadlové osvětlení místo toho vytváří na předmětech jasná místa na základě intenzity zrcadlového světelného komponentu a koeficientu zrcadlového odrazu povrchu.

Modely osvětlení

Světelné modely se používají k replikaci světelných efektů v renderovaných prostředích, kde je světlo aproximováno na základě fyziky světla. Bez světelných modelů by replikace světelných efektů, které se vyskytují v přirozeném světě, vyžadovala větší výpočetní výkon, než je praktické pro počítačovou grafiku. Účelem tohoto modelu osvětlení nebo osvětlení je vypočítat barvu každého pixelu nebo množství světla odraženého pro různé povrchy ve scéně. Existují dva hlavní modely osvětlení, objektově orientované osvětlení a globální osvětlení. Liší se v tom, že objektově orientované osvětlení zvažuje každý objekt individuálně, zatímco globální osvětlení mapuje, jak světlo interaguje mezi objekty. V současné době vědci vyvíjejí techniky globálního osvětlení, aby přesněji replikovali, jak světlo interaguje s jeho prostředím.

Objektově orientované osvětlení

Objektově orientované osvětlení, známé také jako místní osvětlení, je definováno mapováním jednoho zdroje světla na jeden objekt. Tato technika se rychle vypočítává, ale často je neúplnou aproximací toho, jak by se světlo ve scéně chovalo ve skutečnosti. Často je aproximován součtem kombinace zrcadlového, difuzního a okolního světla konkrétního objektu. Dva převládající místní modely osvětlení jsou modely osvětlení Phong a Blinn-Phong.

Phong osvětlovací model

Jedním z nejběžnějších stínovacích modelů je model Phong. Model Phong předpokládá, že intenzita každého pixelu je součtem intenzity způsobené difuzním, zrcadlovým a okolním osvětlením. Tento model bere v úvahu polohu diváka pro určení zrcadlového světla pomocí úhlu světla odrážejícího se od objektu. Cosinus úhlu je přijata a zvedl k síle rozhodl projektant. Díky tomu se designér může rozhodnout, jak široký zvýraznění na objektu chce; proto se moc nazývá hodnota lesku. Hodnota lesku je určena drsností povrchu, kde by zrcadlo mělo hodnotu nekonečna a nejdrsnější povrch by mohl mít hodnotu jedna. Tento model vytváří realističtěji vypadající bílé zvýraznění na základě perspektivy diváka.

Blinn-Phongův osvětlovací model

Osvětlovací model Blinn-Phong je podobný modelu Phong, protože pomocí zrcadlového světla vytváří zvýraznění objektu na základě jeho lesklosti. Blinn-Phong se liší od modelu osvětlení Phong, protože model Blinn-Phong používá vektor kolmý k povrchu objektu a na půli cesty mezi zdrojem světla a divákem. Tento model se používá k zajištění přesného zrcadlového osvětlení a zkrácení doby výpočtu. Tento proces trvá méně času, protože nalezení směru vektoru odraženého světla je více zapojený výpočet než výpočet polovičního normálního vektoru . I když je to podobné jako u modelu Phong, přináší to různé vizuální výsledky a exponent zrcadlového odrazu nebo lesk může potřebovat úpravu, aby se vytvořil podobný zrcadlový odraz.

Globální osvětlení

Globální osvětlení se liší od místního osvětlení, protože vypočítává světlo tak, jak by cestovalo po celé scéně. Toto osvětlení je více založeno na fyzice a optice, přičemž světelné paprsky se rozptylují, odrážejí a neomezeně poskakují po celé scéně. Stále probíhá aktivní výzkum globálního osvětlení, protože vyžaduje více výpočetní síly než místní osvětlení.

Ray tracing

Obrázek vykreslen pomocí sledování paprsků

Světelné zdroje vyzařují paprsky, které interagují s různými povrchy absorpcí, odrazem nebo lomem. Pozorovatel scény by viděl jakýkoli světelný zdroj, který se jim dostane do očí; paprsek, který se nedostane k pozorovateli, zůstane bez povšimnutí. Je možné to simulovat tak, že všechny světelné zdroje vyzařují paprsky, a poté vypočítat, jak každý z nich interaguje se všemi objekty ve scéně. Tento proces je však neúčinný, protože většina světelných paprsků by se nedostala k pozorovateli a ztratila by čas na zpracování. Ray tracing tento problém řeší obrácením procesu, místo toho posílá pozorovací paprsky od pozorovatele a vypočítává, jak na sebe vzájemně působí, dokud nedosáhnou světelného zdroje. Ačkoli tento způsob efektivněji využívá čas zpracování a vytváří simulaci světla, která napodobuje přirozené osvětlení, sledování paprsku má stále vysoké náklady na výpočet kvůli vysokému množství světla, které se dostává do očí diváka.

Radiosita

Radiosita bere v úvahu energii vydávanou okolními objekty a světelným zdrojem. Na rozdíl od sledování paprsků, které je závislé na poloze a orientaci pozorovatele, je radiozónové osvětlení nezávislé na poloze pohledu. Radiozita vyžaduje více výpočetního výkonu než sledování paprsků, ale může být užitečnější pro scény se statickým osvětlením, protože by se musela vypočítat pouze jednou. Povrchy scény lze rozdělit na velké množství záplat; každá záplata vyzařuje určité světlo a ovlivňuje ostatní záplaty, pak je třeba současně vyřešit velkou sadu rovnic, aby byla získána konečná radiozita každé záplaty.

Mapování fotonů

Mapování fotonů bylo vytvořeno jako dvouprůchodový algoritmus globálního osvětlení, který je účinnější než sledování paprsků. Je to základní princip sledování fotonů uvolňovaných ze světelného zdroje v sérii fází. První průchod zahrnuje fotony uvolněné ze světelného zdroje a odrážející se od jejich prvního objektu; tato mapa, kde jsou umístěny fotony, je poté zaznamenána. Mapa fotonů obsahuje jak polohu, tak směr každého fotonu, který se buď odrazí, nebo je absorbován. Druhý průchod proběhne s vykreslováním, kde jsou odrazy vypočítány pro různé povrchy. V tomto procesu je fotonová mapa oddělena od geometrie scény, což znamená, že vykreslování lze vypočítat samostatně. Je to užitečná technika, protože může simulovat kaustiku a kroky předzpracování není nutné opakovat, pokud se změní pohled nebo objekty.

Polygonální stínování

Polygonální stínování je součástí procesu rasterizace, kde jsou 3D modely kresleny jako 2D pixelové obrázky. Stínování používá světelný model ve spojení s geometrickými atributy 3D modelu, aby určil, jak by mělo být osvětlení reprezentováno u každého fragmentu (nebo pixelu) výsledného obrazu. Tyto polygony z 3D modelu ukládat geometrické hodnoty potřebné pro proces stínování. Tyto informace zahrnují polohové hodnoty vrcholů a normály povrchu , ale mohou obsahovat volitelná data, jako jsou mapy textur a nárazů .

Příklad plochého zastínění.
Příklad Gouraudova zastínění.
Příklad stínování Phong.

Ploché stínování

Ploché stínování je jednoduchý stínovací model s jednotnou aplikací osvětlení a barev na mnohoúhelník. Barva a normálka jednoho vrcholu se používá k výpočtu stínování celého polygonu. Ploché stínování je levné, protože osvětlení pro každý polygon je třeba vypočítat pouze jednou na vykreslení.

Gouraud stínění

Gouraudovo stínování je typ interpolovaného stínování, kde hodnoty uvnitř každého polygonu jsou kombinací hodnot jeho vrcholů. Každý vrchol má svůj vlastní normál skládající se z průměru povrchových normálů okolních polygonů. Osvětlení a stínování v tomto vrcholu se pak vypočítá pomocí průměrného normálu a zvoleného modelu osvětlení. Tento proces se opakuje pro všechny vrcholy v 3D modelu. Dále se stínování hran mezi vrcholy vypočítá interpolací mezi hodnotami vrcholů. Nakonec se stínování uvnitř mnohoúhelníku vypočítá jako interpolace hodnot okolní hrany. Gouraudovo stínování vytváří hladký světelný efekt na povrchu 3D modelu.

Phong stínování

Phong stínování , podobné Gouraudově stínování, je dalším typem interpolativního stínování, které prolíná mezi hodnotami vrcholů a stínuje polygony. Klíčový rozdíl mezi nimi je v tom, že stínování Phong interpoluje normální hodnoty vrcholů v celém polygonu, než vypočítá jeho stínování. To kontrastuje s Gouraudovým stínováním, které interpoluje již zastíněné hodnoty vrcholů na celý polygon. Jakmile stínování Phong vypočítá normál fragmentu (pixelu) uvnitř polygonu, může poté použít model osvětlení a stínovat tento fragment. Tento proces se opakuje, dokud není každý polygon 3D modelu zastíněn.

Světelné efekty

Reflexní materiál demonstrující žíravinu.

Žíravina

Kaustika je světelný efekt odraženého a lámaného světla pohybujícího se médiem. Vypadají jako stužky koncentrovaného světla a jsou často vidět při pohledu na vodní plochy nebo sklo. Kaustiku lze implementovat do 3D grafiky smícháním mapy žíravých textur s mapou textur dotčených objektů. Textura žíraviny může být buď statický obrázek, který je animován tak, aby napodoboval efekty žíraviny, nebo výpočet žíraviny v reálném čase na prázdný obrázek. Ten je složitější a vyžaduje zpětné trasování paprsku pro simulaci pohybů fotonů prostředím 3D vykreslování. V modelu osvětlení fotonového mapování se vzorkování Monte Carlo používá ve spojení se sledováním paprsků k výpočtu intenzity světla způsobeného kaustikou.

Reflexní mapování

Reflexní mapování (také známé jako mapování prostředí) je technika, která pomocí 2D map prostředí vytváří efekt odrazivosti bez použití sledování paprsků. Vzhledem k tomu, že vzhled reflexních objektů závisí na relativních polohách diváků, objektů a okolního prostředí, grafické algoritmy vytvářejí odrazové vektory, aby určily, jak obarvit objekty na základě těchto prvků. Pomocí 2D 2D map než plně vykreslených 3D objektů k reprezentaci okolí lze odrazy na objektech určit pomocí jednoduchých, výpočetně nenákladných algoritmů.

Částicové systémy

Systémy částic využívají sbírky malých částic k modelování chaotických událostí s vysokou složitostí, jako je oheň, pohybující se kapaliny, výbuchy a pohybující se vlasy. Částice, které tvoří komplexní animaci, jsou distribuovány emitorem, který každé částici dodává její vlastnosti, jako je rychlost, životnost a barva. V průběhu času se tyto částice mohou pohybovat, měnit barvu nebo měnit jiné vlastnosti, v závislosti na účinku. Částicové systémy obvykle obsahují náhodnost , například v počátečních vlastnostech, které emitor dává každé částici, aby byl účinek realistický a nejednotný.

Viz také

Reference