Vyřazení zadní strany - Back-face culling

Vlevo model bez BFC; vpravo stejný model s BFC: zadní strany jsou odstraněny.

V počítačové grafice , back-face utracení určuje, zda je polygon viditelný v grafickém objektu. Jedná se o krok v grafickém kanálu, který testuje, zda se body v mnohoúhelníku zobrazují ve směru hodinových ručiček nebo proti směru hodinových ručiček, když se promítají na obrazovku. Pokud uživatel určil, že polygony směřující dopředu mají vinutí ve směru hodinových ručiček, ale polygon promítaný na obrazovku má vinutí proti směru hodinových ručiček, byl otočen směrem od kamery a nebude vykreslen.

Tento proces zrychluje a zefektivňuje vykreslování objektů snížením počtu polygonů, které má program kreslit. Například ve scéně městských ulic obecně není nutné kreslit polygony po stranách budov odvrácené od kamery; jsou zcela zakryty stranami směřujícími k fotoaparátu.

Obecně lze předpokládat, že utracení zadní strany neprodukuje ve vykreslené scéně žádný viditelný artefakt, pokud obsahuje pouze uzavřenou a neprůhlednou geometrii. Ve scénách obsahujících průhledné polygony mohou být polygony obrácené dozadu viditelné v průběhu procesu alfa složení . Při vykreslování drátěným rámem lze za účelem řešení problému s odstraněním skryté čáry použít utržení zadní strany , ale pouze pro uzavřenou konvexní geometrii.

Příbuznou technikou je ořezávání , které určuje, zda jsou polygony vůbec v zorném poli kamery.

Další podobnou technikou je Z-zabíjení, také známé jako okluzní zabíjení , které se pokouší přeskočit kresbu polygonů, které jsou z pohledu zakryty jinými viditelnými polygony.

V nerealistických vykresleních mohou být určité tváře odstraněny podle toho, zda jsou viditelné, či nikoli, spíše než obrácením od fotoaparátu. „obrácený trup“ nebo „vyřazení přední strany“ lze použít k simulaci obrysů nebo shaderů tónů bez efektů následného zpracování.

Implementace

Jednou metodou implementace utracení zadní strany je vyřazení všech trojúhelníků, kde bodový součin jejich povrchu je normální a vektor z kamery na trojúhelník je větší nebo roven nule

kde P je úhel pohledu, V 0 je první vrchol trojúhelníku a N je jeho normál, definovaný jako křížový součin dvou vektorů představujících strany trojúhelníku sousedící s V 0

Protože křížový součin není komutativní, definování normálu z hlediska křížového součinu umožňuje určit normální směr vzhledem k povrchu trojúhelníku pomocí pořadí vrcholů (vinutí):

Pokud jsou body již v prostoru pohledu, lze předpokládat , že P je ( 0 , 0 , 0 ) , počátek.

Je také možné použít tuto metodu v projekčním prostoru tak, že uvedeme výše uvedenou nerovnost jako determinant matice a použijeme na ni projekční matici.

Existuje další metoda založená na paritě odrazu, která je vhodnější pro dvě dimenze, kde nelze vypočítat normálu povrchu (známé také jako kontrola CCW).

Nechte jednotkový trojúhelník ve dvou rozměrech ( homogenní souřadnice ) definovat jako

Pak pro nějaký jiný trojúhelník, také ve dvou rozměrech,

definujte matici, která transformuje jednotkový trojúhelník:

aby:

Zrušte trojúhelník, pokud matice M obsahovala lichý počet odrazů (obrácená k opačnému směru než jednotkový trojúhelník)

Jednotkový trojúhelník se používá jako reference a transformace M se používá jako stopa ke zjištění, zda je pořadí vrcholů mezi dvěma trojúhelníky odlišné. Jediným způsobem, jak se může pořadí vrcholů změnit ve dvou dimenzích, je odraz. Reflexe je příkladem involutorní funkce (s ohledem na pořadí vrcholů), dokonce i řada reflexí opustí trojúhelník směřující na stejnou stranu, jako by nebyly použity vůbec žádné reflexe. Lichý počet odrazů opustí trojúhelník obrácený na druhou stranu, jako by přesně po jednom odrazu. Transformace obsahující lichý počet odrazů mají vždy záporný faktor změny měřítka, podobně je faktor změny měřítka kladný, pokud neexistují žádné odrazy nebo dokonce jejich počet. Faktor změny měřítka transformace se vypočítá determinantem její matice.

Reference

  1. ^ https://jorick.vanderhoeven.ch/assets/files/sketch-shading.pdf
  2. ^ David H. Eberly (2006). Návrh 3D herního enginu: Praktický přístup k počítačové grafice v reálném čase , s. 69. Morgan Kaufmann Publishers, Spojené státy. ISBN   0122290631 .