Varjostus

Wikipediasta
(Ohjattu sivulta Tasavarjostus)
Siirry navigaatioon Siirry hakuun

Varjostus (engl. shading) on kolmiulotteisessa grafiikassa menetelmä polygonien värien muutokseen. Menetelmä tuottaa valaistusta ja varjoa jäljittelevän ulkoasun. Ilman varjostusta ja valaistusta kappaleen polygoneilla on tasainen väritys kauttaaltaan näkökulmasta riippumatta. Varjostus ja valaistus tuottaa kolmiulotteiselta näyttävän kuvan kaksiulotteiseen projektioon. Ennen polygonigrafiikan yleistymistä varjostusta on käytetty vektorigrafiikkaa käyttävissä videopeleissä kuten Zarch (1987).

Säteenseurantamenetelmät perustuvat valon säteiden tuottamaan valaistukseen, heijastukseen sekä valon ja pintojen ominaisuuksiin, jolloin valaistus tapahtuu osana säteenseuranta-algoritmia ja erillistä varjostusta ei välttämättä tarvita. Säteenseuranta tuottaa realistisemman lopputuloksen mutta on myös huomattavasti hitaampi.

Tasavarjostuksen ja Phong-varjostuksen vertailu.

Yksinkertaisin menetelmä on tasavarjostus (engl. flat shading), jossa sama väri toistetaan kauttaaltaan polygonin alueella. Tasavarjostusta on käytetty videopeleissä kuten Virtua Racing (1992) ja Virtua Fighter (1993) Sega Model 1 -kolikkopelialustalla.

Gouraud-varjostus on kehittyneempi menetelmä, jossa väri interpoloidaan verteksien määrittämälle alueelle. Phong-varjostus on realistisempi menetelmä, joka laskee varjostuksen uudelleen useammin, mutta on myös hitaampi kuin Gouraud-menetelmä.

Muita menetelmiä on esimerkiksi cel-shading, joka pyrkii luomaan piirrosanimaation tyylisen ulkoasun, jonka ensimmäisiä käyttökohteita oli Jet Set Radio (2000).[1]

Gooch-varjostus on ei-fotorealistinen varjostus, joka on tarkoitettu teknisen kuvituksen tekemiseen.[2] Valve on käyttänyt Gooch-varjostuksen kaltaista menetelmää Team Fortress 2 -pelissä.[3]

Deferred shading tai deferred rendering on renderöintitekniikka, jossa varjostus jätetään toiseen vaiheeseen renderöinnissä ja ensimmäinen vaihe vain kerää tietoa geometriapuskuriin (G-buffer). Menetelmällä voidaan vähentää laskentakuormaa monimutkaisissa tapauksissa, joissa on useita valoja ja valaistavia kappaleita.[4]

Varjostuksen kanssa ja ilman

[muokkaa | muokkaa wikitekstiä]

Varjostuksen seurauksena renderöity kuva käyttää tummempaa värisävyä varjoon jäävän alueen simuloimiseksi. Näyttölaitteelle siirrettävä valmis RGB-kuva ei sisällä kirkkaustietoa renderöidyn kuvan pikseleille.

Luonnossa valon osuessa pintaan tapahtuu kolme asiaa: absorptio (imeytyminen), heijastuminen ja taittuminen.[5] Eri renderöintimenetelmät mallintavat valon käytöstä erilaisilla pinnoilla eri tavoin. Värien intensiteetti muuttuu kohtaan osuvan valaistuksen mukaan.[5]

  • Woo, Mason & Neider, Jackie & Davis, Tom & Shreiner, Dave: OpenGL Programming Guide. (Third Edition) Addison-Wesley, 1999. ISBN 0201604582 (englanniksi)
  • Hughes & van Dam & McGuire & Sklar & Foley & Feiner & Akeley: Computer Graphics: Principles and Practice. (Third Edition) Addison-Wesley, 2014. ISBN 978-0-321-39952-6 (englanniksi)
  1. Kinkley, Jonathan: The “flat” 3-D look: A brief history of cel shading in video games 16.12.2014. AV Club. Arkistoitu 2.9.2017. Viitattu 17.12.2017.
  2. Gooch, Amy & Gooch, Bruce & Shirley, Peter & Cohen, Elaine: A Non-Photorealistic Lighting Model For Automatic Technical Illustration (PDF) artis.imag.fr. doi:10.1145/280814.280950 Viitattu 17.12.2017.
  3. Mitchell, Jason & Francke, Moby & Eng, Dhabih: Illustrative Rendering in Team Fortress 2 (PDF) valvesoftware.com. Arkistoitu 12.3.2012. doi:10.1145/1274871.1274883 Viitattu 17.12.2017.
  4. Deferred shading rendering path Unity Technologies. Viitattu 16.12.2017.
  5. a b Ray-tracing and other Rendering Approaches (PDF) nccastaff.bournemouth.ac.uk. Arkistoitu 17.11.2018. Viitattu 18.12.2017.

Aiheesta muualla

[muokkaa | muokkaa wikitekstiä]