Piilopintojen poisto

Havainnekuva näkyvyyden päättelystä.

Piilopintojen poisto[1] tai vähimmillään piiloviivojen poisto on 3D-grafiikassa perustavanlaatuinen ongelma, joka syntyy renderöinnissä, koska näkymättömiin jäävien kappaleiden renderöinti on sekä tehotonta että virheellistä.[2]

Piilopintojen poiston selkein sovellutus käytäntöön on pintojen ensijaisnäkyvyys: kamerasta on oltava katkeamaton linja näkyvään kappaleeseen.[2] Tähän käytetään säteensuuntausta ja syvyyspuskuria.[2] Kaksi yksinkertaista ja tehokasta menetelmää ovat backface culling ja frustum culling (myös view frustrum culling) konservatiiviseen näkyvyyden testaamiseen.[2] Occlusion culling on monimutkaisempi kehitysaskel frustum culling -menetelmästä, joka ottaa kappaleiden keskinäisen peittävyyden huomioon.[2]

Culling tarkoittaa "joukosta poistamista":[3]

  • backface culling poistaa polygonit, jotka osoittavat poispäin katsojasta
  • view frustum culling joukon polygoneja, jotka ovat näkymäkartion ulkopuolella ja siten hieman monimutkaisempi
  • occlusion culling poistaa kappaleet, jotka ovat muiden kappaleryhmien piilottamia ja siten monimutkaisin tekniikka, joka vaatii laskentaa muiden kappaleiden vaikutuksesta toisiin

Occlusion culling voi toimia kuva-avaruudessa, kappaleavaruudessa tai sädeavaruudessa.[3] Lisäksi on joukko algoritmeja nimeltä portal culling: menetelmä käyttää näkymäkartiota "portaalien" kohdalla kuten rakennuksen ovi tai ikkuna.[3] Menetelmä on tyyppi occlusion culling menetelmästä ja voidaan sanoa olevan view frustum culling menetelmän laajennus.[3]

Ideaalinen poistoalgoritmi välittäisi grafiikkaliukuhihnan läpi vain täsmälleen näkyvän joukon (engl. exact visible set, EVS), joka näyttäisi primitiivit, jotka ovat osittain tai täysin näkyvissä.[3] Koska tämä olisi monimutkaista käytännön algoritmit käyttävät mahdollisesti näkyvää joukkoa (engl. potentially visible set, PVS).[3]

  1. Tilanhallintatekniikat 3D grafiikkamoottoreissa3D grafiikkamoottoreissa, Jarno Kansanaho
  2. a b c d e Viittausvirhe: Virheellinen <ref>-elementti; viitettä cgpp ei löytynyt
  3. a b c d e f Viittausvirhe: Virheellinen <ref>-elementti; viitettä rtr ei löytynyt

From Wikipedia, the free encyclopedia · View on Wikipedia

Developed by Nelliwinne