Varjostus tietokonegrafiikassa on kuva syvyyden havaitsemiseen kolmiulotteisissa malleissa tai kuvissa , joissa käytetään erilaisia pimeyden tasoja [1] .
Varjostusta käytetään maalauksessa paperin tummuusasteiden näyttämiseen levittämällä mustetta tai kynää tiheämmin tai tummemmalla sävyllä tummille alueille ja vähemmän tiheällä tai vaaleammalla sävyllä vaaleille alueille. On olemassa erilaisia varjostusmenetelmiä, mukaan lukien viivoitus, jossa ruudukkoon piirretään kohtisuorat viivat, joiden läheisyys vaihtelee alueen varjostamiseksi. Mitä lähempänä viivat, sitä tummempi alue. Samoin mitä kauempana viivat toisistaan, sitä vaaleampi alue.
Vaaleat kuviot, kuten kohteet, joissa on valoja ja varjoja, auttavat luomaan illuusion syvyydestä paperille. [2]
Tietokonegrafiikassa varjostuksella tarkoitetaan prosessia, jossa kohteen/pinnan/polygonin väriä muutetaan 3D-näkymässä perustuen tekijöihin, kuten (mutta ei rajoittuen) pinnan kulmaan valoihin, etäisyyteen valoista, kulma kameraan ja materiaali (esim. jakautumisfunktion kaksisuuntainen heijastus) fotorealistisen vaikutelman luomiseksi. Varjostuksen suorittaa renderöintiprosessin aikana varjostimeksi kutsuttu ohjelma.
Varjostus muuttaa kasvojen värejä 3D-mallissa valonlähteen tai valonlähteiden pinnan kulman perusteella.
Ensimmäisessä alla olevassa kuvassa näkyy kehyksen reunat, mutta ne ovat kaikki samanvärisiä. Reunaviivat on myös piirretty tähän, mikä helpottaa kuvan näkemistä.
Toinen kuva on sama malli, esitetty ilman reunaviivoja. On vaikea sanoa, missä hahmon yksi puoli päättyy ja toinen alkaa.
Kolmannessa kuvassa on varjostus päällä, mikä tekee kuvasta realistisemman ja helpottaa hahmon näkemistä.
Varjostus riippuu myös käytetystä valaistuksesta. Yleensä näkymää renderöidessään käytetään useita erilaisia valaistusmenetelmiä, jotta renderöinnistä saadaan realistisempi. Erilaisia valonlähteitä käytetään erilaisten tehosteiden saavuttamiseen.
Ambient lightingYmpäristön valonlähde on ympärisäteilevä valonlähde, jolla on kiinteä intensiteetti ja kiinteä väri, joka vaikuttaa kaikkiin esineisiin yhtäläisesti. Renderöidessään kaikki kohtauksen kohteet tulevat kirkkaammiksi määritetyllä intensiteetillä ja väreillä. Tämän tyyppistä valonlähdettä käytetään pääasiassa antamaan näkymälle peruskuva siinä olevista eri kohteista. Tämä on yksinkertaisin toteutettavissa oleva valaistus, joka mallintaa kuinka valo voi sirota tai heijastua monta kertaa luoden yhtenäisen vaikutelman.
Ympäristön valaistus voidaan yhdistää ympäristön okkluusioon näyttämään, kuinka kohtauksen kukin kohta on valotettu, mikä vaikuttaa ympäröivän valon määrään, jonka se voi heijastaa. Tämä luo hajanaista, suuntaamatonta valaistusta koko kohtaukseen, ei luo kovia varjoja, vaan luo varjostettuja, suljettuja ja suojattuja alueita. Tulos on yleensä visuaalisesti samanlainen kuin pilvinen päivä.
SuuntavalaistusSuunnattu valonlähde valaisee kaikki kohteet tasaisesti tietystä suunnasta, kuten äärettömän kokoisen alueen valo, joka on äärettömän etäisyydellä kohtauksesta.
KohdevalaistusValo tulee yhdestä pisteestä ja leviää kaikkiin suuntiin.
Projektorin valaistusHakuvalomallit . _ Valo tulee yhdestä pisteestä ja etenee ulospäin kartiomaisena.
Valaistus lentokoneessaValo tulee pieneltä alueelta yhdellä tasolla. Realistisempi malli kuin pistevalolähde.
Volumetrinen valaistusValo, joka lähtee pienestä tilavuudesta, suljetusta tilasta, valaisee esineitä tässä tilassa.
Varjostus interpoloidaan sen perusteella, kuinka näiden valojen kulma saavuttaa kohtauksen kohteet. Tietenkin nämä valot voidaan yhdistää ja usein yhdistetään kohtaukseen. Sen jälkeen renderöijä interpoloi, kuinka nämä valot tulisi yhdistää, ja luo 2D-kuvan, joka näytetään sen mukaisesti näytöllä.
Teoreettisesti kaksi yhdensuuntaista pintaa valaistaan samalla määrällä kaukaisesta valonlähteestä, kuten auringosta. Vaikka yksi pinta on kauempana, silmäsi näkee enemmän samassa paikassa, joten valaistus näyttää samalta.
Vasemmassa kuvassa ei käytetä etäisyyden pienennystä. Huomaa, että kahden laatikon etupinnan värit ovat samat. Näyttäisi olevan pieni ero siinä, missä kaksi kasvot kohtaavat, mutta tämä on optinen harha, jonka aiheuttaa pystysuora reuna, jossa kaksi kasvot kohtaavat.
Oikea kuva käyttää etäisyyden pienennystä. Huomaa, että etulaatikon etuosa on kirkkaampi kuin takalaatikon etuosa. Myös lattian pinta tummenee sen liikkuessa pois.
Tämä etäisyyden pienennystehoste luo kuvia, jotka näyttävät realistisemmilta.
Etäisyyden vähennys voidaan laskea useilla tavoilla:
Laskettaessa pinnan kirkkautta renderöintihetkellä, valaistusmallimme edellyttää, että tunnemme pinnan normaalin. 3D-mallia kuvataan kuitenkin yleensä monikulmioverkolla, joka voi tallentaa pintanormaalin vain rajoitettuun määrään pisteitä, yleensä joko kärkipisteisiin tai monikulmion pintoihin tai molempiin. Voit kiertää tämän ongelman käyttämällä yhtä useista interpolointimenetelmistä.
TasovarjostusTässä väri lasketaan yhdelle pisteelle kussakin polygonissa (yleensä monikulmion ensimmäinen kärkipiste, mutta joskus kolmiosilmukoille käytetään sentroidia) perustuen monikulmion normaaliin pintaan ja olettamukseen, että kaikki polygonit ovat tasomaisia. Sitten missä tahansa paikassa väri interpoloidaan värittämällä kaikki monikulmion pisteet samaksi kuin piste, jolle väri laskettiin, jolloin jokaiselle polygonille saadaan yhtenäinen väri (samanlainen kuin lähimmän naapurin interpolaatio ). Tyypillisesti tätä tekniikkaa käytetään nopeaan renderöintiin, jossa edistyneemmät varjostustekniikat ovat laskennallisesti liian kalliita. Tasomaisen varjostuksen seurauksena monikulmion kaikki kärjet maalataan samalla värillä, mikä mahdollistaa vierekkäisten polygonien erottamisen. Spekulaariset kohokohdat eivät näy hyvin tasomaisessa varjostuksessa: jos edustavassa kärjessä on suuri peilikomponentti, kirkkaus piirtyy tasaisesti kasvojen poikki. Jos peilipinta-ala ei ole edustavan pisteen sisällä, se ohitetaan kokonaan. Siksi peilikomponenttia ei yleensä sisällytetä tasomaiseen varjostuslaskelmaan.
Tasainen varjostusToisin kuin tasomaisessa varjostuksessa, jossa värit muuttuvat monikulmion reunoilla, tasainen varjostus muuttaa väriä pikselistä toiseen, mikä johtaa tasaiseen värien siirtymiseen kahden vierekkäisen monikulmion välillä. Tyypillisesti arvot lasketaan ensin pisteistä ja sitten bilineaarista interpolaatiota käytetään monikulmion kärkien välisten pikseliarvojen laskemiseen.
Tasaisia varjostustyyppejä ovat:
Guro varjostusMonikulmioilla, jotka ovat monimutkaisempia kuin kolmiot, voi myös olla eri värit jokaiselle kärkipisteelle. Näissä tapauksissa taustalla oleva varjostuslogiikka voi muuttua monimutkaisemmaksi.
Ongelmia