Co je to Stínování?
„Samostínění“ je termín, který popisuje okolnost, za níž jedna část objektu vrhá stín na sebe. Příklady samostínění zahrnují stín vržený lidským nosem na obličej nebo horní ret, když světelný zdroj přichází shora, nebo stín vržený sedadlem židle na nohách židle. Když je tento termín používán v počítačové grafice - konkrétně v programování počítačové grafiky - je to odkaz na stíny, které jsou na sebe vytvářeny trojrozměrnými (3D) objekty scény, nebo na stíny, které jsou na sebe a na objekty kolem nich vytvářeny dynamickými objekty. . Povaha programování 3D počítačové grafiky v reálném čase způsobuje, že mnoho aplikací používá techniky, které často odstraňují možnost vykreslování stínů ve prospěch jiných optimalizací, i když se zvyšuje rychlost a schopnosti počítačů, metody automatického stínování v reálném čase se staly dostupnějšími. Existuje několik způsobů vykreslování objektů se stínováním v reálném čase, ale hardwarová omezení obvykle vedou k výsledkům, které mají určité nevýhody, jako jsou nepřesné stíny, stíny s uměle tvrdými okraji nebo scény, které se vykreslují velmi pomalu na grafických kartách, které nejsou neuvěřitelně rychlé .
Jedním rozdílem, který je třeba učinit při mluvení o automatickém stínění, je rozdíl mezi statickými a dynamickými objekty v grafice v reálném čase. Statické objekty jsou 3D objekty ve scéně, které se v průběhu vykreslování nepohybují a nemají žádnou část své geometrie. Dynamický objekt je naproti tomu objekt, který není přímo připojen ke scéně a může se lišit od jednoho snímku k druhému. Většina statických objektů a scén v reálném čase se většinou provádí pomocí automatického stínování, a to buď kvůli vykreslovacímu modulu, nebo kvůli jiným grafickým trikům, které lze použít.
Několik optimalizací, které se používají k vykreslení 3D grafiky v reálném čase, ztěžuje implementaci dynamického stínování. Některé příklady zahrnují grafický stroj, který aplikuje světelné efekty pouze na statické pozadí, ignoruje dynamické objekty, jako jsou znaky ve scéně, nebo motor, který zachází s objekty pouze jako siluety, aniž by si uvědomoval vnitřní geometrii. S nárůstem grafických procesorů a počítačů umožňují nové techniky, aby se objekty se stínem objevily na scéně v reálném čase, s určitými omezeními a kompromisy.
Stínové svazky jsou jedním ze způsobů, jak lze v 3D scéně implementovat vlastní stínování. Tato metoda v podstatě vytváří 3D objekty, které zabírají uzavřený svazek ve scéně, kde je stín, a umožňuje vykreslovači nebo shaderu provádět testy, zda je nějaký bod uvnitř stínovaného svazku, aby určil, jak se rozsvítí. Jiné metody vytvářejí stínové mapy nebo přibližné stíny z vrcholných pozic a vytvářejí velmi rozptýlené stíny, které nutně nesledují věrnost okraje.
Téměř všechny metody samostínění musí vyměnit rychlost nebo kvalitu, aby se dosáhlo přijatelného výsledku. Problémy s kvalitou mohou nastat použitím rychlých, ale s nízkým rozlišením nebo fuzzy technik, které mohou způsobit, že se některé stíny zdají být špatné nebo nevhodné. Problémy s rychlostí nastávají, když použité algoritmy vyžadují příliš mnoho režijních nákladů na snímek nebo se pokouší vypočítat stínové projekce příliš přesně. Přestože neexistuje jediný standardní algoritmus vytvářející stín, některé grafické karty obsahují nativní zrychlení pro různé metody, které mohou zvýšit rychlost některých technik.