Subsurface scattering ( englanniksi Subsurface scattering , SSS) on kolmiulotteisen tietokonegrafiikan ohjelmistotekniikka (menetelmä), joka kuvaa valon etenemistä läpikuultavien kappaleiden läpi. Pinnaalaisen sironnan ydin on simuloida valon etenemistä läpikuultavissa kiinteissä kappaleissa (esineissä, materiaaleissa). Pintalainen sironta kuvaa valon etenemismekanismia, jossa valo, joka tunkeutuu läpikuultavaan kappaleeseen sen pinnan kautta, hajoaa itse kappaleen sisään heijastuen toistuvasti kehon hiukkasista satunnaisessa suunnassa ja epäsäännöllisissä kulmissa. Tämän seurauksena valo poistuu kohteesta poistumispisteessä, joka on eri kuin sisääntulopiste kohteeseen. Pinnalla olevalla sirontalla on tärkeä rooli3D-tietokonegrafiikka sekä reaaliajassa että offline-laskennassa. Pintaan sirontaa tarvitaan materiaalien, kuten marmorin , nahan , maidon , jaden , vahan (parafiinin) ja monien muiden , oikeaan renderointiin .
Suurin osa nykyaikaisessa tietokonegrafiikassa käytetyistä materiaaleista ottaa huomioon vain valon vuorovaikutuksen esineiden pintojen kanssa. Todellisuudessa monet materiaalit ovat hieman läpikuultavia. Valo kulkee materiaalin pinnan läpi, jonka sisällä se osittain absorboituu, osittain heijastuu ja siroaa, minkä seurauksena osa siitä poistuu materiaalista, mutta eri kulmassa, eri intensiteetillä ja eri paikassa. Iho on hyvä esimerkki: vain noin 6 % ihon pintaan osuvasta valosta heijastuu suoraan; 94 % käy läpi edellä kuvatut muutokset [1] . Imeytyminen on läpikuultavien materiaalien luontainen ominaisuus. Mitä kauemmin valo kulkee materiaalin läpi, sitä enemmän se absorboi valoa. Tämän vaikutuksen simuloimiseksi on mitattava etäisyys, jonka valo on kulkenut materiaalin läpi.
On olemassa useita menetelmiä maanalaisen sironnan toteuttamiseksi. Ensimmäinen menetelmä perustuu syvyyskarttojen käyttöön . Toinen menetelmä käyttää tekstuuritilaa. Kolmas menetelmä on kaikenlaisia väärennettyjä (vääriä) lähestymistapoja, jotka luovat vaikutelman pinnanalaisen sirontaalgoritmin käyttämisestä, mutta saavuttavat tämän vaikutuksen muilla tavoilla.
Syvyyskarttamenetelmä etsii etäisyyden, jonka valonsäde on kulkenut kohteen sisällä, ja laskee hajonnan sen perusteella. Menetelmän ydin on lukea arvo syvyystekstuurista (valolähteen sijainnista). Tällä tavalla syvyyskarttamenetelmä on hyvin samanlainen kuin varjokarttamenetelmä . [2] Kohtaus renderöidään valonlähteen näkökulmasta syvyyskartalle; näin ollen etäisyys kaukaisimpaan pintaan säilyy. Sitten syvyyskartta projisoidaan pinnalle standardinmukaisella projektiivisella tekstuurikartoituksella ja sen jälkeen näkymä renderöidään uudella tavalla . Tässä ajossa, kun tietty piste on varjostettu, etäisyys valosta kohdassa, jossa valonsäde ylitti pinnan, voidaan saada yksinkertaisella tekstuurin haulla. Vähentämällä tämä arvo pisteestä, jossa säde lähti kohteesta, saadaan etäisyys, jonka säde kulki kohteen sisällä.
Tällä menetelmällä saatua etäisyysarvoa voidaan käyttää useilla tavoilla. Yksi tällainen tapa on käyttää indeksissä olevaa etäisyysarvoa, jota taiteilija käyttää suoraan luodessaan yksiulotteista tekstuuria, joka pienenee eksponentiaalisesti etäisyyden myötä. Tämä lähestymistapa yhdistettynä muihin perinteisempiin valaistuskuvioihin mahdollistaa erilaisten materiaalien, kuten jaden ja vahan , luomisen .
Jos mallit, joihin sovelletaan maanalaista sirontaa, eivät ole kuperia, voi syntyä ongelmia. Tämä ongelma kuitenkin ratkaistaan käyttämällä " syvyyskuorinta " tekniikkaa (kirjaimellisesti venäläinen syväkuorinta ) [3] . Samoin "syväkuorintaa" voidaan käyttää ottamaan huomioon pinnan alla olevat vaihtelevan tiheyden omaavat materiaalit, kuten luu tai lihas, jolloin saadaan tarkempia hajontamalleja.
Yksi maanalaisen sironnan ilmeisimmistä vaikutuksista on sironneen (hajavalon) yleinen hämärtyminen. Diffuusiofunktion mielivaltaisen muuttamisen sijaan diffuusio voidaan mallintaa tarkemmin simuloimalla sitä tekstuurin avaruudessa. Tätä tekniikkaa käytettiin ensimmäisen kerran kasvojen renderöimiseen The Matrix Reloadedissa [4] , ja siitä lähtien sitä on käytetty interaktiivisessa 3D-grafiikassa.