3D képszintézis optikai alapmodellje

Download Report

Transcript 3D képszintézis optikai alapmodellje

Science is either physics or
stamp collecting.
Rutherford
3D képszintézis fizikai
alapmodellje
Szirmay-Kalos László
Képszintézis = valós világ illuziója
Tone
mapping
pixel
Virtuális világ

színérzet



Valós világ

Sugársűrűség (Radiancia): L(x,V)
Wanted: Fpixel = Fsurface
Asurface
Apixel
surface
wpixel
wsurface
Geometria: Apixel cospixel wpixel = Asurface cossurface wsurface
Radiancia = Egységnyi vetített terület által egységnyi
térszögbe sugárzott teljesítmény
F
2
L(x,V) =
[W/sr/m ]
A cos w
Fény-felület kölcsönhatás
Sugársűrűség = Bejövő
BRDF
Geometria
L(x,V) = Lin(x, L)  fr (L,x,V)  cos’
L (x,V)
fr (L,x,V) = in
L (x,L)cos’
def
Helmholtz törvény:
fr (L,x,V) = fr (V,x,L)
V
’ L
Lin
’
x
Fénynél a hullámhosszok
külön kezelhetők
e-
e-
Relativisztikus tömeg kicsi: E = mc2 = hf
 A foton energia (hullámhossz) nem változik
rugalmas ütközésnél
 Elnyelődési valószínűség energiafüggő

Nem mindig van így!
e-
e-
• Gamma fotonnál a relativisztikus tömeg az
elektron tömegével összevethető
• Foton energia (hullámhossz) változik az
ütközésnél (Compton szórás)
• Foszforeszkáló, fluoreszkáló anyagoknál sem
kezelhetők a hullámhosszak függetlenül
Sima felületek
Fresnel egyenletek
Lin
’ ’
n = sin’ 
sin
Lin  F
Lin (1-F)
„Sima” = 1 pixelben látható
felület síknak tekinthető
2
1 cos - (n+k j ) cos’
1 cos ’ - (n+k j ) cos
F=
+
2 cos+ (n+k j ) cos’
2 cos’+ (n+k j ) cos
F  F0 + (1-F0)  (1-cos’)5,
F0 =
(n -1)2 + k2
(n+1)2 + k2
2
Fresnel függvény
F (, ’)

F(, ’)

’
arany
’
ezüst
Tükörirány
N
v + N cosa v + N cosa
v
N cosa v
r
a a
x
cos a = - (v·N)
vr = v + 2 N cos a
float3 reflect(float3 inDir, float3 normal)
{
return inDir - normal * dot(normal, inDir) * 2.0f;
};
Törési irány
N
sin a
n=
sin b
v + Ncosa
v
a
Nsinb
b
vt
-Ncosb
N
SnelliusDescartes
v +Ncosa
N = sina
vt = N sinb - Ncosb
vt = v /n + N(cosa/n- cosb)
cosb = 1-sin2b = 1-sin2a/n2
vt = v/n + N (cosa/n -1-(1-cos2 a)/n2 )
Fénytörő
anyagok
SmoothMaterial class
class SmoothMaterial {
float3 F0; // F0
float n; // n
public:
float3 reflect(float3 inDir, float3 normal) {
2 a)/n2 )
v
=
v/n
+
N
(cosa/n
-1-(1-cos
return inDir - normalt * dot(normal, inDir) * 2.0f
}
float3 refract(float3 inDir, float3 normal) {
float ior = n;
float cosa = -dot(normal, inDir);
if (cosa < 0) { cosa = -cosa; normal = -normal; ior = 1/n; }
float disc = 1 - (1 - cosa * cosa)/ior/ior;
if (disc < 0) return reflect(inDir, normal);
return inDir/ior + normal * (cosa/ior - sqrt(disc));
}
float3 Fresnel(float3 inDir, float3 normal) {
float cosa = fabs(dot(normal, inDir));
return F0 + (float3(1, 1, 1) – F0) * pow(1-cosa, 5);
}
};
Cook-Torrance
He-Torrance
„Rücskös” felületek
’
1 pixelben látható felület
Mi: viselkedésileg érvényes modell
Diffúz visszaverődés
V N L
’

Radiancia = Bejövő  BRDF  cos’
a nézeti iránytól független
x
A BRDF a nézeti iránytól független
Helmholtz: a BRDF megvilágítási iránytól is független
A BRDF irányfüggetlen:

Diffúz visszaverődés = nagyon rücskös



fr (L,x,V) = kd(x,)
– sokszoros fény-anyag kölcsönhatás
– színes!
Lambert törvény

Pont/irány fényforrásra válasz
– BRDF irányfüggetlen,
DE a sugársűrűség függ a
megvilágítási iránytól
Lref = Lin kd cos+’
cos’ = N·L
N
’
L
Spekuláris visszaverődés
Phong-Blinn modellHalfway
vektor H
R
’
V
Lref
= diffúz +
(cos+d)s
d
N
’
V
=
Lin
cos+’+
kd
Lin ks (cos+d)s
H = (L+V)/|L+V|
cosd = N·H
L
Diffúz+Phong anyagok
diffúz
Sokszoros fény-anyag
kölcsönhatás
„Saját szín”
Phong
Egyszeres fény-anyag
kölcsönhatás,
nemfémeknél
hullámhossz független
diffúz +
Phong
shininess = 5
10
20
50
RoughMaterial class
class RoughMaterial {
float3 kd, ks;
float shininess;
public:
float3 shade( float3 normal, float3 viewDir,
float3 lightDir, float3 inRad)
{
float3 reflRad(0, 0, 0);
float cosTheta = dot(normal, lightDir);
if(cosTheta < 0) return reflRad;
reflRad = inRad * kd * cosTheta;
float3 halfway = (viewDir + lightDir).normalize();
float cosDelta = dot(normal, halfway);
if(cosDelta < 0) return reflRad;
return reflRad + inRad * ks * pow(cosDelta,shininess);
}
};
Fényforrás modellek

Geometria+sugárűsűség:

Absztrakt fényforrások:
Le(x,V,) x
V
– Irány fényforrások: egyetlen irányba sugároz, a fénysugarak
párhuzamosak, az intenzitás független a pozíciótól
– Pozicionális fényforrás: egyetlen pontból sugároz, az intenzitás a
távolság négyzetével csökken
d
irány
pozicionális
Képszintézis
R, G, B
pixel
Virtuális világ
L ()
L ()
Le()
f r()

Pixelben látható felület meghatározása
 A látható pont szem irányú sugársűrűsége
 R, G, B konverzió

Megoldási
kompromisszumok
pixel
lokális illumináció
rekurzív sugárkövetés
globális illumináció
Színérzékelés: monokromatikus fény


 nm
444
526
645
színérzet: r, g, b
2
1

b()
g()
r()
r, g, b
400
500
600
700
Színérzékelés:
nem monokromatikus fény
F ()

r =  F () r () d 
g =  F () g () d 
b =  F () b () d 
Spektrális versus RGB

model
Képszintézis
sok hullámhosszon

R, G, B
model
Képszintézis
3 hullámhosszon
Látható
spektrum
R, G, B
színillesztés
R, G, B kép
R,G,B kép
Tone mapping
HRDI(R,G,B)LDRI(r,g,b) konverzió
1. Luminancia:
I = 0.21R + 0.72G + 0.07B
2. Adaptált luminancia: I’
3. Relatív luminancia:
I
I r=
I’
4. Megjelenített luminancia:
D=
5. Szín:
aIr
1+ aIr
D
(r,g,b) = (R,G,B)
I