Co je stín OpenGL®?

Stín Open Graphics Library® (OpenGL®) je vizuální aproximací v trojrozměrné (3D) scéně OpenGL® o tom, jak by stín byl obsazen v reálném životě za podobných osvětlovacích podmínek. Stíny jsou komplexní vizuální funkcí pro implementaci v OpenGL®, hlavně proto, že ve scéně neexistuje vrozená podpora pro lití stínů. Místo toho existuje celá řada technik, které lze použít k vytváření stínů z objektů a geometrie v scéně pomocí různých nástrojů, jako jsou různé dostupné vyrovnávací paměti, shadery a v některých případech rozšíření, která umožňují přístup ke speciálním funkcím na určitých grafických kartách. Ve většině případů je kvalita, přesnost a rychlost vykreslování Shadow OpenGL® přímo spojena s výkonem a pamětí přítomného grafického hardwaru v počítači nebo zařízení. Některé z populárnějších metod implementace stínu OpenGL® zahrnují stínové svazky, stínové mapování a trasování paprsků.

Vytvoření aplikace, která má podporu OpenGL® Shadow Support, vyžaduje matematické znalosti a hluboké pochopení toho, jak OpenGL® funguje. OpenGL® se do značné míry používá k vytváření 3D scén, které jsou dynamické a vykresleny v reálném čase, takže algoritmy, které se používají k vytváření stínů, musí být optimalizovány nejen pro rychlost, ale musí být také pečlivě měřeny pro jejich spotřebu zdrojů a jakékoli narušení, které by mohly být způsobeny v grafickém potrubí používaném pro vykreslování. Z těchto důvodů je nejzákladnější způsob vytváření stínu, nazývaného paprskového trasování, často nepraktický pro plné 3D scény, protože to může trvat velmi dlouho.

Sledování paprsků v podstatě sleduje imaginární linii nebo paprsek z pozorovací roviny nebo polohy kamery skrz scénu na povrch objektu a poté vypočítá barvu povrchu na základě polohy jednoho nebo více světelných zdrojů a dalších faktorů. Během procesu rasterizace, kde3D scéna je přitahována na dvourozměrný (2D) povrch, takže může být zobrazen, proces sledování paprsku musí být proveden na každém pixelu, který je nakreslený a zejména s texturou nebo jinými povrchovými vlastnostmi, možná několikrát posoudit stejné pixely. To znamená sledování paprsků v reálném čase, i když by to přesně vykreslilo stíny, obvykle není praktické.

Další metoda, kterou lze použít k vytvoření stínu OpenGL®, je známá jako mapování stínů. Tato metoda používá hloubku nebo vyrovnávací paměť šablony k vykreslení scény z úhlu světelného zdroje jako řadu vzdáleností od zdroje světla po povrchy různých objektů uvnitř scény. Scéna je poté podruhé vykreslena ze správného úhlu pohledu a kontroluje, zda každý pixel spadá do určitého rozsahu vzdálenosti v vyrovnávací paměti, což ukazuje, zda je pixel osvětlen nebo stín. Použití stínového mapování může být náročné na paměť a se scénami, které mají více než jeden zdroj světla, může zahrnovat mAking více map z více úhlů.

Stínové svazky jsou způsob, jak vytvořit stín OpenGL®, který je přesnější než některé jiné metody, ale představuje své vlastní problémy. Stínový svazek je v podstatě neviditelný kus geometrie ve scéně, která se rozšiřuje z osvětleného povrchu objektu od zdroje světla. Tento svazek lze zkontrolovat proti jiným objektům, aby se zjistilo, zda spadají do stínu povrchu, ze kterého vznikl objem. Tento postup může být velmi složitý a nakonec vytvářet vizuální artefakty, když je optimalizován pro rychlost.

JINÉ JAZYKY

Pomohl vám tento článek? Děkuji za zpětnou vazbu Děkuji za zpětnou vazbu

Jak můžeme pomoci? Jak můžeme pomoci?