Skip to main content

Co je to buffer šablony?

V počítačovém grafickém programování je vyrovnávací paměť šablony oblastí paměti, na kterou lze přitahovat a použít ve vztahu k jiným grafickým vyrovnávacím pamětí k dosažení různých efektů nebo k maskování oblastí scény, aby nebyly zpracovány nebo vykresleny.Šablovač šablony je vyrovnávací paměť per-pixelů podobný černobílému obrázku, ve kterém každé místo v vyrovnávací paměti může držet hodnotu, která je nejčastěji 1 bajt dlouhá nanejvýš, ale může být jen 1 bit.Buffer původně byl navržen tak, aby působil jako skutečná nebo falešná maska, podobně jako šablona v reálném světě, takže oblasti scény by mohly být zakryty nebo ignorovány nastavením hodnot různých oblastí šablony na jinou hodnotu než nula.Existuje řada použití pro vyrovnávací paměť nad rámec jednoduchého maskování, včetně kreslení stínového svazku, implementace halos kolem objektů nebo lokalizačních oblastí, kde se objekty navzájem překrývají.V mnoha případech je vyrovnávací paměť udržována v grafické paměti na grafické kartě, takže k ní lze rychle přistupovat během vykreslování.Aplikované na trojrozměrnou (3D) scénu, když se vrcholy procházely grafickým potrubí.Pokud se umístění 3D vrcholu, jakmile je rasterizováno, souvisí s oblastí šablony, která nebyla nastavena na nulu, pak by tento vrchol mohl být ignorován a zbytek zpracování potrubí přeskočil.To umožnilo programátorům způsob, jak vykreslit pouze malé části scény nebo vykreslit obraz do nepravidelně tvarovaného výřezu, jako je odraz v malém zrcadle v větší scéně, kde je tvar zrcadla nakreslen jako šablona vvyrovnávací paměť a potom je odraz nakreslen tímto tvarem.

Obavy z paměti vedly k původní formě šablony šablony, která je mřížkou jednobitových hodnot, ve kterých každý pixel v vyrovnávací paměti mohl být pravdivý nebo nepravdivý.Jakmile se vyvinuly grafické karty, většina vyrovnávacích pamětí byla schopna držet plnou hodnotu bajtů v každém místě pixelů, což programátorům umožňuje mít v místě složitější hodnoty.To může umožnit použití vyrovnávací paměti k detekci oblastí, kde se objekty překrývají, což lze provést zvýšením hodnoty vyrovnávací paměti na místě, pokud objekt zabírá pixel na obrazovce po rasterizaci.Po této operaci se hodnota každého umístění pixelů v vyrovnávací paměti rovná počtu objektů, které překračují pixel na obrazovce.Toho lze provést prvním vykreslením scény s velmi tlumeným osvětlením, takže se zdá, že všechno je zastíněno.Dále se provádějí výpočty pro stanovení umístění všech povrchů polygonu ve scéně, které jsou osvětleny světelným zdrojem, a tyto tvary jsou přeneseny do vyrovnávací paměti šablony.Scéna je znovu vykreslena, jako by byl každý objekt plně osvětlen a je promíchán skrz tvary šablony na stínovou scénu a účinně vytváří obrázek, který se zdá, že obsahuje objekty se stíny.