260 likes | 361 Views
Science is either physics or stamp collecting. Rutherford. 3D képszintézis fizikai alapmodellje. Szirmay-Kalos L ászló. Tone mapping. pixel. Virtuális világ. . . . . Képszintézis = valós világ illuziója. színérzet. Valós világ. . Sugársűrűség (Radiancia): L ( x, w ).
E N D
Science is either physics or stamp collecting. Rutherford 3D képszintézis fizikai alapmodellje Szirmay-Kalos László
Tone mapping pixel Virtuális világ Képszintézis = valós világ illuziója színérzet Valós világ
Sugársűrűség (Radiancia): L(x,w) • Egy egységnyi látható felület által egységnyi térszög alatt kibocsátott teljesítmény [Watt/ sr/ m2] V dF dA cos dw dw L(x,V) = dF dA dF =L(x,V)dA cos dw
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) Lin(x,L)cos’ def fr (L,x,V) = Helmholtz törvény: V fr (L,x,V) = fr (V,x,L) ’ L Lin ’ x
Fénynél a hullámhosszok külön kezelhetők • 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ő e- e-
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ületekFresnel egyenletek ’ ’ Lin F Lin sin’ Lin (1-F) „Sima” = 1 pixelben látható felület síknak tekinthető n= sin 2 2 cos - (n+k j ) cos’ cos ’- (n+k j ) cos 1 2 1 2 F= + cos+ (n+k j ) cos’ cos’+ (n+k j ) cos (n -1)2+k2 F F0 + (1-F0) (1-cos’)5, F0 = (n+1)2+k2
Fresnel függvény F(, ’) F(, ’) ’ ’ ezüst arany
Tükörirány számítása N v+Ncosa v+Ncosa Ncosa vr v L = vr, V= v ReflectDir( L, N, V ) { L = V - N * (N * V) * 2; } a a x cos a = - (v·N) vr = v + 2 N cos a
Törési irány N Snellius- Descartes sin a v+ Ncosa n= sin b v a v+Ncosa Nsinb N N= sina -Ncosb vt = Nsinb -Ncosb b vt = v/n + N(cosa/n-cosb) cosb = 1-sin2b = 1-sin2a/n2 vt vt= v/n +N (cosa/n-1-(1-cos2 a)/n2)
class SmoothSurface { Color F0; // r,g,b float n; // we ignore here the wavelength dependency public: void ReflectionDir(Vector&R, Vector& N, Vector& V) { float cosa = -N* V; R = V + N * cosa * 2; } BOOL RefractionDir(Vector&T, Vector& N, Vector& V) { float cosa = -N * V, cn = n; if (cosa < 0) { cosa = -cosa; N = -N; cn = 1/n; } float disc = 1 - (1 - cosa * cosa) / cn / cn; if (disc < 0) return FALSE; T = V / cn +N * (cosa / cn - sqrt(disc)) ; return TRUE; } Color Fresnel(Vector& N, Vector& V) { float cosa = fabs(N * V); return F0 + (1-F0) * pow( 1-cosa, 5 ); // F F0 + (1-F0) (1-cos a)5 } }; Simafelület (n -1)2+k2 (n+1)2+k2 vt= v/n +N (cosa/n-1-(1-cos2 a)/n2)
Cook-Torrance He-Torrance „Rücskös” felületek q’ 1 pixelben látható felület Mi: viselkedésileg érvényes modell
Diffúz visszaverődés V N L q’ • Radiancia = Bejövő BRDF cos’ a nézeti iránytól független • 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 • sokszoros fény-anyag kölcsönhatás • színes! x fr (L,x,V) = kd(x,l)
Lambert törvény Lref = Linkd cos+’ • 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 cos’ = N·L N L q’
Spekuláris visszaverődés: Phong modell cosy = R·V R R y = diffúz + q’ y V V Kell egy függvény, ami nagy y=0 -ra és gyorsan csökken Lref = Links(cos+y)n fr (L,x,V) = kscosny /cos’ Nem szimmetrikus!
Diffúz+Phong anyagok Sokszoros fény-anyag kölcsönhatás „Saját szín” diffúz Egyszeres fény-anyag kölcsönhatás, nemfémeknél hullámhossz független Phong diffúz + Phong n = 5 10 20 50
Phong-Blinn modell (OpenGL) Felezővektor H H = (L+V)/|L+V| N d q’ cosd = N·H L V Lref = Links(cos+d)n fr (L,x,V) = kscosnd /cos’
Rücskös felületek class RoughSurface { Color kd, ks; // r,g,b float shininess; public: Color ReflectedRadiance(Vector& L, Vector& N, Vector& V, Color Lin) { float costheta = N * L; if (costheta < 0) return Color(0, 0, 0); Color Lref= Lin * kd * costheta; // diffuse reflection Vector H = L + V; H.Normalize ( ); float cosdelta = N * H; if (cosdelta < 0) return Lref; Lref = Lref + Lin * ks * pow(cosdelta, shininess); // glossy reflection return Lref; } };
Fényforrás modellek x Le(x,V,) • Geometria+sugárűsűség: • Absztrakt fényforrások: • 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 V d irány pozicionális
Képszintézis R, G, B pixel Virtuális világ L() Le() L() 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ó
g() r() b() 400 500 600 700 Színérzékelés: monokromatikus fény nm 444 526 645 színérzet: r, g, b 2 1 r, g, b
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 model R, G, B Képszintézis sok hullámhosszon 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
Tonemapping HRDI(R,G,B)LDRI(r,g,b) konverzió • Luminancia: I = 0.21R + 0.72G + 0.07B • Adaptált luminancia: I’ • Relatívluminancia: • Megjelenített luminancia: • Szín: I I’ • Ir= • Ir • 1+ Ir • D = • D • I • (r,g,b) = (R,G,B)