Ytterspridning - Subsurface scattering

Image
Direkt ytspridning (vänster) plus ytterspridning (mitten) skapar den slutliga bilden till höger.
Image
Datorgenererad ytterspridning i mixer
Image
Verklig underjordisk spridning av ljus i ett fotografi av en mänsklig hand

Subsurface spridning ( SSS ), även känd som under ytan ljustransport ( SSLT ), är en mekanism av ljustransport, i vilken ljus som penetrerar ytan av ett genomskinligt föremål utspridda genom att interagera med materialet och utträder ytan vid en annan punkt. Ljuset kommer i allmänhet att tränga igenom ytan och reflekteras ett antal gånger i oregelbundna vinklar inuti materialet innan det går tillbaka ur materialet i en annan vinkel än det skulle ha haft om det hade reflekterats direkt från ytan. Underytterspridning är viktigt för realistisk 3D-datorgrafik , eftersom det är nödvändigt för återgivning av material som marmor , hud , löv , vax och mjölk . Om ytterspridning inte implementeras kan materialet se onaturligt ut, som plast eller metall.

Renderingstekniker

De flesta material som används i realtids datorgrafik står idag bara för interaktionen mellan ljus vid ett föremåls yta. I verkligheten är många material något genomskinliga: ljus tränger in i ytan; absorberas, sprids och släpps ut igen - potentiellt vid en annan punkt. Hud är ett bra exempel; endast cirka 6% av reflektansen är direkt, 94% kommer från ytterspridning. En inneboende egenskap hos halvtransparenta material är absorption. Ju längre genom det materiella ljuset, desto större absorberas andelen. För att simulera denna effekt måste ett mått på avståndet som ljuset har rest genom materialet erhållas.

Djupkartbaserad SSS

Image
Djupberäkning med hjälp av djupkartor

En metod för att uppskatta detta avstånd är att använda djupkartor på ett sätt som liknar skuggmappning . Scenen återges från ljusets synvinkel till en djupkarta så att avståndet till närmaste yta lagras. Den djup projiceras sedan på den med hjälp av standard projektiv texturmappning och scenen åter återges. I detta pass, när du skuggar en viss punkt, kan avståndet från ljuset vid den punkt som strålen kom in i ytan erhållas genom en enkel texturuppsökning. Genom att subtrahera detta värde från den punkt som strålen lämnade objektet kan vi samla en uppskattning av avståndet som ljuset har rest genom objektet.

Det avståndsmått som erhålls med denna metod kan användas på flera sätt. Ett sådant sätt är att använda det för att indexera direkt till en konstnär skapad 1D-struktur som faller av exponentiellt med avståndet. Detta tillvägagångssätt, i kombination med andra mer traditionella belysningsmodeller, gör det möjligt att skapa olika material som marmor , jade och vax .

Potentiellt kan problem uppstå om modeller inte är konvexa, men djupskalning kan användas för att undvika problemet. På samma sätt kan djupskalning användas för att ta hänsyn till olika densiteter under ytan, såsom ben eller muskler, för att ge en mer exakt spridningsmodell.

Som kan ses på bilden av vaxhuvudet till höger diffunderas inte ljus när det passerar genom objektet med denna teknik; bakfunktionerna visas tydligt. En lösning på detta är att ta flera prover vid olika punkter på ytan av djupkartan. Alternativt kan ett annat tillvägagångssätt för approximering användas, känt som textur- rymddiffusion.

Textur utrymme diffusion

Som påpekades i början av avsnittet är en av de mer uppenbara effekterna av spridning av ytan en allmän suddighet av den diffusa belysningen. I stället för att godtyckligt modifiera den diffusa funktionen kan diffusion modelleras mer exakt genom att simulera den i texturutrymme . Denna teknik var banbrytande när det gäller att göra ansikten i The Matrix Reloaded , men används också i realtidstolkningstekniker.

Metoden packar upp nätet på ett objekt med hjälp av en vertex-skuggning och beräknar först belysningen baserat på de ursprungliga vertexkoordinaterna. Hörnpunkterna mappas sedan om med användning av UV- strukturkoordinaterna som skärmpositionen för toppunkten, lämpligt omvandlad från [0, 1] texturkoordinatområdet till [-1, 1] -området för normaliserade enhetskoordinater. Genom att tända det oöppnade nätet på detta sätt får vi en 2D-bild som representerar belysningen på objektet, som sedan kan bearbetas och appliceras på nytt på modellen som en ljuskarta . För att simulera diffusion kan den lätta kartstrukturen helt enkelt suddas ut. Att göra belysningen till en textur med lägre upplösning i sig ger en viss suddighet. Mängden suddighet som krävs för att noggrant modellera spridning av ytan i huden är fortfarande under aktiv forskning, men endast en enda suddighet gör dåliga modeller för de verkliga effekterna. För att emulera den våglängdsberoende naturen hos diffusion kan de prover som används under (Gaussisk) suddighet viktas per kanal. Detta är något av en konstnärlig process. För mänsklig hud är den bredaste spridningen i röd, sedan grön och blå har mycket lite spridning.

En stor fördel med denna metod är dess oberoende av skärmupplösning; skuggning utförs endast en gång per text i texturkartan, snarare än för varje pixel på objektet. Ett uppenbart krav är således att objektet har en bra UV-kartläggning, genom att varje punkt på strukturen måste kartläggas till endast en punkt av objektet. Dessutom ger användning av texturutrymmesdiffusion en av de många faktorer som bidrar till mjuka skuggor, vilket lindrar en orsak till realismbristen i skuggmappning .

Se även

Referenser

externa länkar