Spridning under ytan

Subsurface scattering ( engelska  Subsurface scattering , SSS) är en mjukvaruteknik (metod) inom tredimensionell datorgrafik som beskriver ljusets utbredning genom genomskinliga kroppar. Kärnan i spridning under ytan är att simulera ljusets utbredning i genomskinliga fasta kroppar (föremål, material). Spridning under ytan beskriver mekanismen för ljusutbredning, där ljus, som tränger in i en genomskinlig kropp genom dess yta, sprids inuti kroppen själv och reflekteras upprepade gånger från kroppspartiklar i en slumpmässig riktning och i oregelbundna vinklar. Som ett resultat lämnar ljus objektet vid en utgångspunkt som skiljer sig från ingångspunkten till objektet. Spridning under ytan spelar en viktig roll i både realtid och offline 3D-datorgrafik . Spridning under ytan är nödvändig för korrekt återgivning av material som marmor , läder , mjölk , jade , vax (paraffin) och många andra.

Fysisk beskrivning

De flesta material som används i modern datorgrafik tar endast hänsyn till ljusets interaktion med föremålens ytor. I verkligheten är många material något genomskinliga. Ljus passerar genom materialets yta, inuti vilken det delvis absorberas, delvis reflekteras och sprids, och som ett resultat lämnar en del av det materialet, men i en annan vinkel, med en annan intensitet och på en annan plats. Huden är ett bra exempel: endast cirka 6 % av ljuset som träffar hudens yta reflekteras direkt; 94 % genomgår de transformationer som beskrivs ovan [1] . Absorption är en inneboende egenskap hos genomskinliga material. Ju längre ljuset färdas genom ett material, desto mer ljus absorberas av det materialet. För att simulera denna effekt måste ett mått på sträckan ljuset har färdats genom materialet erhållas.

Återgivningstekniker för underjordisk spridning

Det finns flera metoder för att implementera spridning under ytan. Den första metoden bygger på användningen av djupkartor .  Den andra metoden använder texturutrymme. Den tredje metoden är alla möjliga falska (falska) tillvägagångssätt som skapar sken av att använda algoritmen för spridning under ytan, men som uppnår denna effekt på andra sätt.

Depth Map Method

Djupkartmetoden hittar avståndet som en ljusstråle har färdats inuti ett föremål och beräknar spridningen utifrån det. Kärnan i metoden är att läsa värdet från djuptexturen (från ljuskällans position). På så sätt är djupkartmetoden väldigt lik skuggkartametoden . [2] Scenen återges från ljuskällans synvinkel till en djupkarta; därmed bevaras avståndet till den längsta ytan. Därefter projiceras djupkartan på ytan med hjälp av standardprojektiv texturmappning och efter det renderas scenen på ett nytt sätt .  I detta pass, när en given punkt är skuggad, kan avståndet från ljuset vid den punkt där ljusstrålen korsade ytan erhållas genom en enkel textursökning. Genom att subtrahera detta värde från den punkt där strålen lämnade objektet kan vi få avståndet som strålen reste inuti objektet.

Avståndsvärdet som erhålls med denna metod kan användas på flera sätt. Ett sådant sätt är att använda avståndsvärdet i indexet, som direkt används av konstnären när han skapar en endimensionell textur som kommer att minska exponentiellt med avståndet. Detta tillvägagångssätt, i kombination med andra mer traditionella ljusmönster, möjliggör skapandet av olika material som jade och vax .

Om de modeller som underjordisk spridning tillämpas på inte är konvexa kan problem uppstå. Detta problem löses dock med hjälp av tekniken " depth peeling " (bokstavligen rysk djuppeeling ) [3] . På liknande sätt kan "djuppeeling" användas för att ta hänsyn till material med varierande densitet under ytan, såsom ben eller muskler, för att sedan ge mer exakta spridningsmodeller.

Texturrymdspridningsmetod

En av de mest uppenbara effekterna av spridning under ytan är den övergripande suddigheten av spritt (diffust) ljus. Istället för att ändra diffusionsfunktionen godtyckligt, kan diffusion modelleras mer exakt genom att simulera den i texturrymden. Denna teknik användes först för att rendera ansikten i The Matrix Reloaded [4] och har sedan dess använts i interaktiv 3D-grafik.

Anteckningar

  1. Krishnaswamy, A; Baronoski, GVG. En biofysiskt baserad spektral modell av ljusinteraktion med mänsklig hud  //  Computer Graphics Forum: tidskrift. - Blackwell Publishing, 2004. - Vol. 23 , nr. 3 . — S. 331 . - doi : 10.1111/j.1467-8659.2004.00764.x . Arkiverad från originalet den 14 oktober 2005.
  2. Green, Simon. Uppskattningar i realtid för spridning under ytan // GPU-ädelstenar. - Addison-Wesley Professional, 2004. - S. 263-278 .
  3. Nagy, Z; Klein, R. Depth-peeling för texturbaserad volymrendering  // 11:e Stillahavskonferensen om datorgrafik och applikationer. - 2003. - S. 429 .
  4. Borsjukov, G; Lewis, JP Realistisk rendering av mänskligt ansikte för "The Matrix Reloaded"  //  Computer Graphics: journal. — ACM Press, 2005.

Länkar