Vitajte na [www.pocitac.win] Pripojiť k domovskej stránke Obľúbené stránky
Na vyriešenie tohto problému existuje niekoľko algoritmov, z ktorých každý má rôzne zložitosti a výkonnostné charakteristiky. Môžu byť všeobecne kategorizované do:
1. Metódy objektu: Tieto algoritmy pracujú priamo s geometrickými opismi objektov v scéne. Porovnajú navzájom objekty, aby určili viditeľnosť. Všeobecne sú menej efektívne pre zložité scény. Príklady zahŕňajú:
* Odstránenie zadnej tváre: Toto je najjednoduchšia metóda. Vyradí (zlikviduje) polygóny, ktorých normály odchádzajú od diváka. Aj keď je rýchly, rieši iba časť problému a ponecháva mnoho skrytých povrchov.
* hĺbka sort (maliarsky algoritmus): Tento algoritmus zoradí polygóny podľa ich vzdialenosti od diváka (hĺbka). Najlepšie polygóny sú vykreslené ako prvé a potom sú bližšie kreslené na vrchole, účinne „maľovanie“ nad skrytými porciami. Je to jednoduché, ale môže trpieť problémami s pretínajúcimi sa polygónmi (vyžadujúcimi rozdelenie polygónu).
2. Metódy obrazového priestoru: Tieto algoritmy fungujú priamo na obrazovej rovine (obrazovka). Určujú viditeľnosť na báze pixelov po pixeloch. Vo všeobecnosti sú efektívnejšie pre zložité scény. Príklady zahŕňajú:
* z-buffer (hĺbka buffer) algoritmus: Toto je najčastejšie používaná metóda. Udržiava hĺbkovú vyrovnávaciu pamäť (2D pole) rovnakej veľkosti ako obrazovka, pričom pre každý pixel ukladá hodnotu hĺbky (vzdialenosť od prehliadača). Keď sa polygóny vykresľujú, ich hĺbkové hodnoty sa porovnávajú s hodnotami v z-buffere. Ak je polygón bližší, jeho hĺbková hodnota nahrádza existujúcu a pixel sa aktualizuje farbou mnohouholníka. V opačnom prípade zostáva pixel nezmenený.
* Algoritmus skenovania: Tento algoritmus spracováva scénu jedna skenovacia línia (horizontálna čiara) naraz. Pre každú skenovú líniu určuje, ktoré polygóny pretína čiaru a potom tieto polygóny zoradí hĺbkou, aby sa určila viditeľnosť.
* a-buffer algoritmus: Rozšírenie z-buffera, ktorý ukladá viac informácií na pixel, čo mu umožňuje efektívnejšie zvládnuť transparentnosť a ďalšie účinky. Ukladá hĺbkovú hodnotu, hodnotu pokrytia (časť pixelu pokrytého polygónom) a farebné informácie.
* sledovanie lúčov: Táto metóda sleduje lúče z oka diváka cez každý pixel na obrazovke do scény. Prvý objekt pretínaný každým lúčom určuje farbu tohto pixelu. Dokáže elegantne zvládnuť odrazy a refrakcie. Aj keď je výpočtovo drahý, vytvára vysoko realistické obrázky.
Výber metódy:
Výber metódy viditeľnej povrchovej detekcie závisí od faktorov, ako napríklad:
* zložitosť scény: Pre jednoduché scény môžu stačiť metódy objektového priestoru. Komplexné scény vo všeobecnosti vyžadujú metódy obrazového priestoru.
* požadovaná úroveň realizmu: Sledovanie lúčov vytvára najvyšší realizmus, ale je výpočtovo intenzívne. Z pufringu je dobrým kompromisom medzi rýchlosťou a kvalitou.
* Hardvérové schopnosti: Výber môže ovplyvniť dostupnosť špecializovaného hardvéru (napr. Hardvéru Z-Buffer).
V modernom grafickom hardvéri je algoritmus Z-Buffer silne optimalizovaný a takmer všeobecne sa používa na rýchle, primerane presné odstránenie skrytého povrchu. Sledovanie lúčov a ďalšie sofistikovanejšie techniky sa často používajú pre aplikácie vykresľovania vyššej úrovne, kde je rýchlosť menej kritická ako kvalita obrazu.