Upload
others
View
6
Download
0
Embed Size (px)
Citation preview
1
Illumination Models and Surface Rendering Methods
diffuse reflectionθ
L N
θ
R
φV
P
Werner Purgathofer / Computergraphik 1 1
light sourcesbasic model
ambient lightdiffuse shadingspecular highlights
shading interpolationGouraud ShadingPhong Shading
Illumination
Werner Purgathofer / Computergraphik 1 2
directional lightpoint light source (sometimes directional)distributed light source (“area light source”)
Light Sources
Werner Purgathofer / Computergraphik 1 3
reflections fromother surfaces
Surface Lighting Effects
diffuse reflection
specular reflection
transparency
Werner Purgathofer / Computergraphik 1 4
Basic Illumination Models
empirical modelslighting calculations
surface properties (glossy, matte, opaque,…)background lighting conditionslight-source specificationreflection, absorption
ambient light (background light) Iaapproximation of global diffuse lighting effects
Werner Purgathofer / Computergraphik 1 5
Ambient Light Reflection
constant over a surfaceindependent of viewing directiondiffuse-reflection coefficient kd (0≤ kd ≤1)
adambdiff IkI =
2
Werner Purgathofer / Computergraphik 1 6
shaded surfaces generate a spatial impression
the flatter light falls on a surface,the darker it will appear
therefore:we need the incident light direction
or the position of the (point) light source
Illumination and Shading
Werner Purgathofer / Computergraphik 1 7
when considering the material:
I = kd ⋅ Il ⋅ cos θ
Lambert's Law
I = Il ⋅ cos θ
l
l θθ
Werner Purgathofer / Computergraphik 1 8
ideal diffuse reflectors (Lambertian reflectors)brightness depends on orientation of surface
Lambert’s cosine law
Lambertian (Diffuse) Reflection
Il,diff = kd ⋅ Il ⋅ (L⋅N)
LNcos θ= N·L
θ L
N
θ cos θ= N·L
Werner Purgathofer / Computergraphik 1 9
varying kd
result for varying values of kd, Ia = 0
0 0.2 0.4 0.6 0.8 1
Diffuse Reflection Coefficient
Werner Purgathofer / Computergraphik 1 10
total diffuse reflection )( LNIkIkI ldaal,diff ⋅+=
(sometimeska for ambientlight)
Ambient plus Diffuse Reflection
Werner Purgathofer / Computergraphik 1 11
total diffuse reflection )( LNIkIkI ldaal,diff ⋅+=
Ambient plus Diffuse Reflection
3
Werner Purgathofer / Computergraphik 1 12
Specular Highlights
this area must be lighter than the shading model calculates, because the light source is reflected directly into the viewer's eye
Werner Purgathofer / Computergraphik 1 13
reflection of incident light around specular-reflection angle
empirical Phong model
Specular Reflection Model
Il,spec = ks ⋅ Il ⋅ cosnsφ
θL N
θR
φ V
Werner Purgathofer / Computergraphik 1 14
φcos
φ64cos
φ256cos
φsncos
Specular Reflection Coefficient ns
Werner Purgathofer / Computergraphik 1 15
Specular Reflection Coefficient
empirical Phong modelns large ⇒ shiny surfacens small ⇒ dull surface
Il,spec = ks ⋅ Il ⋅ cosnsφ
θL N
θR
shiny surface(large ns)
θL N
θR
dull surface(small ns)
Werner Purgathofer / Computergraphik 1 16
Fresnel Specular Reflection Coefficient
Fresnel’s laws of reflectionspecular reflection coefficient W(θ)
φθ snll,spec IWI cos)(=
specular reflection coefficient as a function of angle of incidence for different materials
Werner Purgathofer / Computergraphik 1 17
calculation of R:
Simple Specular Reflection
W(θ) ≈ constant for many opaque materials (ks)
snlsl,spec RVIkI )( ⋅= R + L = (2N·L)N
R = (2N·L)N – L
θL N
θR
φ V L
NR
N·L
L
4
Werner Purgathofer / Computergraphik 1 18
Specular Reflection Resultssn
lsl,spec RVIkI )( ⋅=
Werner Purgathofer / Computergraphik 1 19
Simplified Specular Reflection
simplified Phong model with halfway vector Hsn
lsspec RVIkI )( ⋅= snlsspec HNIkI )( ⋅=
VLVLH
++=
→
L NR
φ VαH
Werner Purgathofer / Computergraphik 1 20
Diffuse and Specular Reflection
[ ]∑=
⋅+⋅+=n
l
nlsldlaa
sHNkLNkIIkI1
)()(
ambient
ambient+ diffuse
ambient+ diffuse
+ specular
Werner Purgathofer / Computergraphik 1 21
Other Aspects
intensity attenuation with distanceanisotropic light sources (Warn model)transparency (Snell’s law)atmospheric effectsshadows…
Werner Purgathofer / Computergraphik 1 22
application of illumination model to polygon renderingconstant-intensity shading (flat shading)
single intensity for each polygon
flat Gouraud
Polygon-Rendering Methods
Werner Purgathofer / Computergraphik 1 23
the shading of a polygon is not constant, because it normally is only an approximation of the real surface ⇒ interpolation
Gouraud shading: intensitiesPhong shading: normal vectors
Polygon Shading: Interpolation
5
Werner Purgathofer / Computergraphik 1 24
intensity-interpolationdetermine average unit normal vector at each polygon vertexapply illumination model to each vertexlinearly interpolate vertex intensities
∑
∑
=
== n
kk
n
kk
V
N
NN
1
1
Gouraud Shading Overview
V
NV
N4
N3
N2N1
Werner Purgathofer / Computergraphik 1 25
1. find normal vectors at corners and calculate shading (intensities) there: Ii
2. interpolate intensities along the edges linearly: I, I’3. interpolate intensities along scanlines linearly: Ip
Gouraud Shading
I1
I 2
I 3I= t·I 1+(1-t)·I 2 I'=u·I 2+(1-u)·I 3
v·I +(1–v)· I '
Werner Purgathofer / Computergraphik 1 26
Gouraud Shading
interpolating intensities
221
411
21
244 Iyy
yyIyy
yyI −
−+−
−= 5
45
44
45
5 Ixxxx
Ixxxx
I ppp −
−+
−−
=
scan line1
2
3
54 p
Werner Purgathofer / Computergraphik 1 27
Gouraud Shading
incremental update
221
11
21
2 Iyyyy
Iyyyy
I −−
+−−
=21
12
yyII
II −−
+=′
scan lines
I1 I
I2
I´
yy-1
Werner Purgathofer / Computergraphik 1 28
Problems of Gouraud Shading
darklight
dark
darkdark
dark
highlights can get lost or grow
corners on silhouette remain
Mach band effect is visible at some edgesWerner Purgathofer / Computergraphik 1 29
Gouraud Shading Results
no intensity discontinuitiesMach bands due to linear intensity interpolationproblems with highlights
flat Gouraud
6
Werner Purgathofer / Computergraphik 1 30
Phong Shading
instead of intensities the normal vectors are interpolated, and for every point the shading calculation is performed separately
darklight
dark
Werner Purgathofer / Computergraphik 1 31
Phong Shading Principle
normal-vector interpolationdetermine average unit normal vector at each polygon vertexlinearly interpolate vertex normalsapply illumination model along each scan line
Werner Purgathofer / Computergraphik 1 32
Phong Shading Overview
1. normal vectors at corner points2. interpolate normal vectors along the edges3. interpolate normal vectors along scanlines
& calculate shading (intensities) for every pixel
P
Werner Purgathofer / Computergraphik 1 33
Phong Shading Normal Vectors
normal-vector interpolation
221
1 Nyyyy
−−
+
121
2 Nyyyy
N −−= +
scan line
N1
N
N2
y
Werner Purgathofer / Computergraphik 1 34
Phong Shading
incremental normal vector update along and between scan linescomparison to Gouraud shading
better highlightsless Mach bandingmore costly
Werner Purgathofer / Computergraphik 1 35
Flat/Gouraud/Phong Comparison
© Paul Heckbert
7
Werner Purgathofer / Computergraphik 1 36
polygon rendering methodsray-tracingradiosityenvironment mappingtexture mappingbump mapping
Surface-Rendering Methods
Werner Purgathofer / Computergraphik 1 37
Ray-Tracing Concepts
visibility calculation
L1
α1
shading
L2 2nd light source
α2
light source
Werner Purgathofer / Computergraphik 1 38
Ray-Tracing Concepts
shadows
reflection
shading of the reflected object
transparency
L1
L2Werner Purgathofer / Computergraphik 1 39
Ray-Tracing Concepts
shadows
reflection
visibility calculation
shading
for perspectiveprojection: eye point
transparency
Werner Purgathofer / Computergraphik 1 40
Ray-Tracing Properties
highly realistic imagesvery time consumingglobal reflection, transmissionvisible-surface detectionshadowstransparencymultiple light
sources
© W.Barth Werner Purgathofer / Computergraphik 1 41
Ray-Tracingprinciples of geometric optics
ray-tracing coordinatereference frame
zx
yprojection reference point
primary ray = eyepoint + s·(pixel – eyepoint)
8
Werner Purgathofer / Computergraphik 1 42
Id … illumination caused by diffuse shadingxxx … any shading model
(Phong, Blinn, Cook/Torrance,…)
Id = xxx
Shading: Diffuse Shading
Werner Purgathofer / Computergraphik 1 43
P
La light source influences the result only if there is no intersection with 0 < s < 1
ray = intersection point + s ⋅ vector to light source
ray = P + s ⋅ (L – P)P …intersection pointL …light source position
Ray-Tracing: Shadows
Werner Purgathofer / Computergraphik 1 44
shadow ray along Lambient lightdiffuse reflectionspecular reflection
kaIa
kd(N.L)ks(H.N)ns
unit vectors at an object surface intersected by an incoming ray from
direction V
Id = kdIa + kd(N.L)+ ks(H.N)ns
Ray-Tracing: Shadows and Shading
L N
R V
H
Werner Purgathofer / Computergraphik 1 45
Ray-Tracing: Reflection
Ir = kr · Xr
Ir … illumination caused by reflectionkr … reflection coefficient of the materialXr … shading in the reflected direction
Xr
α βα = β
Werner Purgathofer / Computergraphik 1 46
calculation of reflection ray
Ray-Tracing: Reflection Ray
R + V = (2N·V)N
R = (2N·V)N – V
R
NV
N·V
R
if V = – u [book]:
R = u – (2u·N)N
Werner Purgathofer / Computergraphik 1 47
θr
Ray-Tracing: Transparency
It = kt · Xt
It … illumination caused by transparencykt … transparency coefficient of the materialXt … shading in the transparency direction
Xt
θi
sinθi :sinθr == ηr:ηi
i
r
9
Werner Purgathofer / Computergraphik 1 48
calculation of transparency ray
Ray-Tracing: Transparency Ray
T = – V – (cos θr – cos θi)Nr
i
ηη
r
i
ηη
T
N
Vθi
θr
sin θr = sin θir
i
ηη
Werner Purgathofer / Computergraphik 1 49
I = Id + Ir + It
additional requirement: kd + kr + kt ≤ 1
Ray-Tracing: A Complete Shading Method
Werner Purgathofer / Computergraphik 1 50
Ray-Tracing: Rays & Ray Tree
primary, secondary rays
corresponding binary ray-tracing tree
reflection and refraction ray paths for one pixel
PR1
R2
R3T1 T2
…P
R1
R2
R3
T1
T2…
Werner Purgathofer / Computergraphik 1 51
4.IF surface of P is transparentTHEN trace secondary ray;
shading+=influence of transp.
3.IF surface of P is reflectiveTHEN trace secondary ray;
shading+=influence of refl.
2.FOR all light sources L DOtrace shadow feeler P -> LIF no inters. between P, LTHEN shading+=influence of L
1.trace primary ray eye -> P0find closest intersection P
Ray-Tracing: Basic AlgorithmFOR all pixels P0 DO
Werner Purgathofer / Computergraphik 1 52
Ray-Tracing Examples
Werner Purgathofer / Computergraphik 1 53
Ray-Tracing Examples
10
Werner Purgathofer / Computergraphik 1 54
True Global Illumination Example
Werner Purgathofer / Computergraphik 1 55
intersection calculation ray - object possiblesurface normal calculation possible
B-Rep: simpleCSG: recursive evaluation
(to use them for ray-tracing)Requirements for Object Data
Werner Purgathofer / Computergraphik 1 56
ray equation
for primary rays
for secondaryrays
s.uPP += 0
prppix
prppix
PPPP
u−−
=
u = Ru = T
describing a ray with an initial-position vector P0 and unit direction vector u
Ray-Surface Intersection
xz
y
P0 u
Werner Purgathofer / Computergraphik 1 57
Ray-Sphere Intersection
parametric ray equation inserted into sphere equation
022 =−− rPP c
0220 =−−+ rPsuP c
0 (u² = 1))(2 222 =−Δ+Δ⋅− rPsPus222)( rPPuPus +Δ−Δ⋅±Δ⋅=
0PPP c −=Δ
( )
( )
r
xz
y
P0
uP
Pc
Werner Purgathofer / Computergraphik 1 58
(to avoid roundoff errorswhen r2 << |ΔP|2)
Ray-Sphere Intersection
discriminant negative ⇒ no intersections222)( rPPuPus +Δ−Δ⋅±Δ⋅=
“sphereflake”
22 )( uPuPrPus Δ⋅−Δ−±Δ⋅= because u2=1
Werner Purgathofer / Computergraphik 1 59
Ray-Polyhedron Intersection
use bounding sphere to eliminate easy cases
P0
11
Werner Purgathofer / Computergraphik 1 60
Ray-Polyhedron Intersection
use bounding sphere to eliminate easy caseslocate front facessolving plane equation
uNPNDs
⋅⋅+−= 0
u.N < 0
Ax + By + Cz + D = 0
N.(P0 + su) = −D
N = (A, B, C)N.P = −D
P
PP0
uN
Werner Purgathofer / Computergraphik 1 61
intersection point inside polygon boundaries?inside-outside testsmallest s to insidepoint is first intersectionpoint of polyhedron
Ray-Polyhedron Intersection
P0
u
P0
u
polygon plane
outside?
inside?
?
Werner Purgathofer / Computergraphik 1 62
Ray-Surface Intersection
quadric, spline surfaces:parametric ray equation inserted into surface definitionmethods like numerical root-finding, incremental calculations
ray-traced scene with NURBS surfaces and
multiple reflection / refraction
Werner Purgathofer / Computergraphik 1 63
bounding volumesbounding volume hierarchies
Reducing Object-Intersection Calculations
2nd hierarchy bounding spheres
bounding sphere
3rd hierarchy bounding spheres
Werner Purgathofer / Computergraphik 1 64
space-subdivision methodsregular gridoctree
Reducing Object-Intersection Calculations
P0u
Werner Purgathofer / Computergraphik 1 65
space-subdivision methodsregular gridoctree
Reducing Object-Intersection Calculations
P0u
12
Werner Purgathofer / Computergraphik 1 66
space-subdivision methodsincremental grid traversal
3D Bresenhamprocessing of potential exit faces
ray traversal through a subregion of a cube enclosing a scene
Reducing Object-Intersection Calculations
uP0 Pout
Pin
N1N2
N3
Werner Purgathofer / Computergraphik 1 67
ray direction u / ray entry position Pinpotential exit facesnormal vectors
check signs of components of u
Incremental Grid Traversal
0>⋅ kNu
⎪⎩
⎪⎨
⎧
±±
±=
)1,0,0()0,1,0()0,0,1(
kNu
P0 PoutPin
N1N2
N3
Werner Purgathofer / Computergraphik 1 68
calculation of exit positions, select smallest sk
example:
Incremental Grid Traversal
usPP kinkout +=,
DkPN koutk −=⋅ ,
uNPNDks
k
inkk ⋅
⋅−−=
)0,0,1(=kN−
x
kk u
xxs 0=
uP0 Pout
Pin
N1N2
N3
Werner Purgathofer / Computergraphik 1 69
variation: trial exit planeperpendicular to largest component of uexit point in 0=> done{1, 2, 3, 4} => side clear{5, 6, 7, 8}=> extra calc.
Incremental Grid Traversal
sectors of the trial exit plane
uP0 0
1
2
3
4
56
78
Werner Purgathofer / Computergraphik 1 70
polygon rendering methodsray-tracingradiosityenvironment mappingtexture mappingbump mapping
Surface-Rendering Methods
Werner Purgathofer / Computergraphik 1 71
Radiosity Method
describes the physical process of light distribution in a diffuse reflecting environment
areas that are not illuminated directly are also not completely dark
every object acts as a secondary light source
13
Werner Purgathofer / Computergraphik 1 72
Radiosity
Radiosity B is the „radiant flux per unit area“that is leaving a surface
Werner Purgathofer / Computergraphik 1 73
Radiosity Equation
⌠⌡
hemi
ρ . d B
incoming light from the environment
self emission(only for light sources)
reflected lightfrom environment
B = E + ρ . d B⌠⌡
hemi
radiosityof the point
E
⌠⌡
hemiI(x) dx =⌠
⌡hemi
d B
Werner Purgathofer / Computergraphik 1 74
Radiosity Equation
to calculate the light influence between surfaces
B = E + ρ . d B⌠⌡
hemi
Radiosity = total light leaving a surface point
B…radiosity hemi…half space over pointE…self emission ρ …reflection coefficient
Werner Purgathofer / Computergraphik 1 75
dB
dSN
x
y
z
θ
φdω
diffuse interreflections in a sceneradiant energy transfersconservation of energy, closed environmentssubdivision of sceneinto patches withconstant radiosity Bi
Radiosity Properties
Werner Purgathofer / Computergraphik 1 76
Bi = Ei + ρi. Σ Fi j
.Bjj=1
n
the scene is discretized into n "patches"(plane polygons) Pi, for each of these patches a constant radiosity Bi is assumed:
ρi diffuse reflection coefficient of patch kFij “formfactor”: describes how much % of the
influence on patch i comes from patch j;geometric size
B = E + ρ . d B⌠⌡
hemi
Radiosity: Subdivision into Patches
Werner Purgathofer / Computergraphik 1 77
Radiosity Model
Bi radiosity of patch iEi self-emission of patch iΣBjFij contribution of other patchesFij form factor, defines
contribution of Bi on patch j which is equal to
contribution of patch j to Bi
ρi reflectivity coefficient of patch i (“albedo”)
Bi = Ei + ρi. Σ Fi j
.Bjj=1
n
14
Werner Purgathofer / Computergraphik 1 78
Radiosity Equation
solving the radiosity equation
∑≠
+=ij
j ijiii B FEB ρ
iij
j ijii EB FB =− ∑≠
ρ
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
nnnnnn
n
n
E
EE
B
BB
FF
FFFF
...
.........
2
1
2
1
21
22212
11121
11
1ρρ
ρρρρ
......
......
−−
Werner Purgathofer / Computergraphik 1 79
Radiosity Equation: Form Factors
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
nnnnnn
n
n
E
EE
B
BB
FF
FFFF
...
.........
2
1
2
1
21
22212
11121
11
1ρρ
ρρρρ
......
......
−−
surfaceproperties
surfaceproperties
radiosities(unknowns)
form factors(constants)
... ...
Werner Purgathofer / Computergraphik 1 80
Projection of a Polygon
a·cosθ
a.θ
A·cosθ
.θ
A
Werner Purgathofer / Computergraphik 1 81
Radiosity: Form Factors
form factor Fij: contribution of patch Pj to Bi= contribution of Bi to patch Pj
Pi
Pj
energy reaching patch j from patch itotal energy leaving patch i
Werner Purgathofer / Computergraphik 1 82
Radiosity: Form Factors
form factor Fij: contribution of patch Pj to Bi= contribution of Bi to patch Pj
cos jφcos iφ
Pi
Aj
Aj'.
φi φj
.r
FP →Pi j
2rAjFij =
πPj
because 11
=∑=
n
jijF
Werner Purgathofer / Computergraphik 1 83
Radiosity: Form Factors
form factor Fij: contribution of patch Pj to Bi= contribution of Bi to patch Pj
more precisely: form factor is sum over contributions from Pj averaged over area Ai
∫ ∫=i jA A ij
ji
iij dAdA
rAF 2
coscos1π
φφ
cos jφcos iφ2r
AjFij =π
15
Werner Purgathofer / Computergraphik 1 84
Radiosity: Form Factors
form factor properties
conservation of energy
uniform light reflection
no self-incidence
11
=∑=
n
jijF
0=iiF
AiFij = AjFji
Werner Purgathofer / Computergraphik 1 85
Radiosity: Form Factors
form factor calculationmost expensive step in radiosity calculationnumerical integration (Monte Carlo methods)hemicube approach (replaces hemisphere)
Pi
Pj
Pi
Pj
Werner Purgathofer / Computergraphik 1 86
Radiosity Equation
solving the radiosity equationGaussian elimination
Gauss-Seidel iteration
very time and storage intensive
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
=
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
⋅
⎥⎥⎥⎥
⎦
⎤
⎢⎢⎢⎢
⎣
⎡
−−
−−
nnnnnn
n
n
E
EE
B
BB
FF
FFFF
...
.........
2
1
2
1
21
22212
11121
11
1ρρ
ρρρρ
......
......
−−
Werner Purgathofer / Computergraphik 1 87
Radiosity Equation
solving the radiosity equationGauss-Seidel iteration
“gathering”Pi
Bj
∑≠
+ +=ij
kj ijii
ki B FEB ρ1
Werner Purgathofer / Computergraphik 1 88
Radiosity Equation
“gathering” vs.“shooting” ∑≠
+ +=ij
kj ijii
ki B FEB ρ1
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
+
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
xxxxx
xxxxxxx
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
⋅
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
+
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
=
⎟⎟⎟⎟⎟⎟
⎠
⎞
⎜⎜⎜⎜⎜⎜
⎝
⎛
x
xxxxx
xxxxx
xxxxx
Pi
Bj
Pi
Bi
Werner Purgathofer / Computergraphik 1 89
“shooting”select brightest patch i and distribute its radiosity Bi
∑≠
+=ij
j ijiii B FEB ρ j ijii B FB ρ=jBtodue
i jijj B FB ρ=iBtodue
⇒
ij
iijjj B
AAFB ρ=
iBtodue ⇐ jijiji FAFA =
⇓
Progressive Refinement Radiosity (1)
16
Werner Purgathofer / Computergraphik 1 90
select patch i with highest Ai*ΔBifor selected patch i {
set up hemicubecalculate form factors Fij
}for each patch j {
Δrad := ρj*ΔBi*Fij*Ai/AjΔBj := ΔBj + ΔradBj := Bj + Δrad
}ΔBi := 0
Progressive Refinement Radiosity (2)
[one refinement step]
Werner Purgathofer / Computergraphik 1 91
initially ΔBi=Bi=Ei, select patch withhighest ΔBiAi
cathedral rendered with progressive refinement
radiosity
form factors computed with ray-tracing methods
Progressive Refinement Radiosity (3)
Werner Purgathofer / Computergraphik 1 92
image of a constructivist museum rendered with progressive refinement radiosity
Radiosity Example Images (1)
Werner Purgathofer / Computergraphik 1 93
Radiosity Example Images (2)
stair tower of a building at Cornell University rendered with progressive refinement radiosity
Werner Purgathofer / Computergraphik 1 94
Radiosity Example Images (3)
2 lighting schemes for an opera production:(left) day view (right) night view
Werner Purgathofer / Computergraphik 1 95
Radiosity Aspects (1)
radiosity is viewpoint-independentneeds a rendering step to display
polygon renderingGouraud shadingray-tracing…
combination with ray-tracing enablesreflectionsshadows…
17
Werner Purgathofer / Computergraphik 1 96
Radiosity Aspects (2)
hierarchical radiosityto reduce number of form factors
stochastic methodsto calculate form factorsto solve radiosity equation system
path tracingtrace light rays (forward tracing!)store effect of light hitting a patchinterpolation
Werner Purgathofer / Computergraphik 1 97
Radiosity Results
Werner Purgathofer / Computergraphik 1 98
Radiosity Results
Werner Purgathofer / Computergraphik 1 99
polygon rendering methodsray-tracingradiosityenvironment mappingtexture mappingbump mapping
Surface-Rendering Methods
Werner Purgathofer / Computergraphik 1 100
Environment Mapping Principle
reflection mappingdefined over surface of an enclosing universe (sphere, cube, cylinder)
SphericalEnvironmentMap
Objects in Scene
© leighmachin.com
Werner Purgathofer / Computergraphik 1 101
Blinn, CACM 76
Haeberli/Segal
Environment Mapping Example
18
Werner Purgathofer / Computergraphik 1 102
Environment Mapping Calculation
information in the environment mapintensity values for light sourcesskybackgroundobjects
pixel areaprojected ontosurfacereflected onto environmentmap
Werner Purgathofer / Computergraphik 1 103
Environment Mapping Example
Werner Purgathofer / Computergraphik 1 104
Environment Mapping Filtering
environment maps may be filtered for not so reflective
surfaces
Werner Purgathofer / Computergraphik 1 105
Environment Mapping Example
Werner Purgathofer / Computergraphik 1 106
most objects do not have smooth surfacesbrick wallsgravel roadsshag carpets
surface texture required
Adding Surface Detail
© Stanford
© D.Molyneaux
© Artificial Studios
Werner Purgathofer / Computergraphik 1 107
Adding Surface Detail
modeling surface detail with polygonssmall polygon facets(e.g., checkerboard squares)facets overlaid on surface polygon (parent)parent surface used for visibility calculationsfacets used for illumination calculationsimpractical for complicated surface structure
19
Werner Purgathofer / Computergraphik 1 108
Texture Mapping: Principle
texture patternsmapped ontosurfacestexture pattern:
raster imageor procedure (modifies surface intensities)
Texture Space:(s,t) Array
Coordinates
Object Space:(u,v) SurfaceParameters
Image Space:(x,y) Pixel
CoordinatesTexture-SurfaceTransformation
Viewing & ProjectionTransformation
Werner Purgathofer / Computergraphik 1 109
Texture Mapping: Samples
marble
wood
cobblestonesleather
fur
water drops
sand
grass
textile
Werner Purgathofer / Computergraphik 1 110
Texture Mapping: Transformationtexture mapping
texture scanning (s,t)→(x,y)inverse scanning (x,y)→(s,t)
texture-surface transformation
vvv
uuu
ctbsatsvvctbsatsuu
++==++==
),(),(
Texture Space:(s,t) Array
Coordinates
Object Space:(u,v) SurfaceParameters
Image Space:(x,y) Pixel
CoordinatesTexture-Surface
Transformation MT
Viewing & ProjectionTransformation MVP
Werner Purgathofer / Computergraphik 1 111
Texture Mapping (dt.)
Textur-Raum:(s,t) Array
Koordinaten
Objekt-Raum:(u,v) Flächen-
Parameter
Bild-Raum:(x,y) Pixel
KoordinatenTextur-Objekt
TransformationViewing & Projektions-
Transformation
Werner Purgathofer / Computergraphik 1 112
Texture Mapping: Inverse Transformation
projecting pixel areas to texture space == inverse scanning (x,y)→(s,t)
calculation ofanti-aliasing with filter operations
VPM 1-TM 1-
Werner Purgathofer / Computergraphik 1 113
Texture-Mapping: Cylindrical Surface
u = θ, with 0 ≤ θ ≤ π/2v = z with 0 ≤ z ≤ h
x = r⋅cos u,y = r⋅sin u,z = v
MVP
M-1VPpixel → surface point (x,y,z)(x,y,z) → (u,v): u = cos-1(x/r), v = z
x²+y²=r², x,y≥0, 0≤z≤h
xy
(u,v)
z
r
θ
h
20
Werner Purgathofer / Computergraphik 1 114
Texture-Mapping: Cylindrical Surface
M-1T
u = s·π/2, v = t·hMT
00
1
1
t
s
s = 2u/π, t = v/h
xy
(u,v)
z
r
θ
h
Werner Purgathofer / Computergraphik 1 115
Texture Mapping: Anti-aliasing
anti-aliasing with filter operationsproject pixel area into texturespace and takeaverage texture value
speed ups:mip-mappingsummed-areatable method
back-projectedpixel
texture space
Werner Purgathofer / Computergraphik 1 116
Solid Texturing
texture defined in 3Devery position in space has a colorcoherent textures across corners
Werner Purgathofer / Computergraphik 1 117
Solid Texturing Examplesexamples for application of 3D textures on a scull and a face
© Univ.Swansea
© Univ.Swansea
Werner Purgathofer / Computergraphik 1 118
Procedural Texturing
procedural texture definitiontexture-function (x,y,z) returns intensityavoid MT
2D (surface texturing) or 3D (solid texturing)stochastic variations (noise function)examples
wood grainsmarblefoam
Copyright Alias|Wavefront Werner Purgathofer / Computergraphik 1 119
Bump Mapping Principle
bumps are visible because of shading
modeling of bumps is very costly.trick: insert a detail structure T:
T
v
u
+ =
21
Werner Purgathofer / Computergraphik 1 120
Bump Mapping Examples
Blinn, SIGGRAPH78 Blinn, SIGGRAPH78 Blinn, SIGGRAPH78
Stanford Werner Purgathofer / Computergraphik 1 121
Perlin, SIGGRAPH85
Bump Mapping Calculation
surface roughness simulatedperturbation function variessurface normal locally bump map b(u,v)
),( vuP
vu PPN ×= NNn /=
surface point
surface normal
nvubvuPvuP ),(),(),( +=′ modified surface point
Werner Purgathofer / Computergraphik 1 122
nvubvuPvuP ),(),(),( +=′
vu PPN ′×′=′
uuuu bnnbPbnPu
P ++=+∂∂
=′ )(
,, nbPPnbPP vvvuuu +≈′+≈′
)()()( nnbbPnbnPbPPN vuvuuvvu ×+×+×+×=′0=× nn
)()( vuuv PnbnPbNN ×+×+=′
© Alias|Wavefront
Bump Mapping Calculation
Werner Purgathofer / Computergraphik 1 123
Bump Mapping Representationbump map b(u,v) defined as raster imagebu, bv: approximated with finite differences
© Alias|Wavefront
Werner Purgathofer / Computergraphik 1 124
Bump Mapping Problems
sources of errordistortions at grazing angleswrong silhouette (geometry is not changed!)wrong shadowsmissing shadows of bumpslight effects on back side
Copyright Alias|Wavefront Werner Purgathofer / Computergraphik 1 125
Bump Mapping: Grazing Angles
red buttons appear too flat, although they are shaded in 3D
22
Werner Purgathofer / Computergraphik 1 126
Bump Mapping Problems
sources of errordistortions at grazing angleswrong silhouette (geometry is not changed!)wrong shadowsmissing shadows of bumpslight effects on back side
Copyright Alias|Wavefront Werner Purgathofer / Computergraphik 1 127
Bump Mapping: Wrong Silhouette
Copyright Alias|Wavefront
© Lifeng Wang © Lifeng Wang
bump mapping correct geometry
Werner Purgathofer / Computergraphik 1 128
Bump Mapping Problems
sources of errordistortions at grazing angleswrong silhouette (geometry is not changed!)wrong shadowsmissing shadows of bumpslight effects on back side
Copyright Alias|Wavefront Werner Purgathofer / Computergraphik 1 129
Bump Mapping: Missing Bump Shadows
Copyright Alias|Wavefront
© Lifeng Wang © Lifeng Wang
bump mapping correct shadows
Werner Purgathofer / Computergraphik 1 130
Bump Mapping Problems
sources of errordistortions at grazing angleswrong silhouette (geometry is not changed!)wrong shadowsmissing shadows of bumpslight effects on back side
Copyright Alias|Wavefront Werner Purgathofer / Computergraphik 1 131
Bump Mapping: Back Side Light Effects
Copyright Alias|Wavefront
23
Werner Purgathofer / Computergraphik 1 132
Bump Mapping Problems
sources of errordistortions at grazing angleswrong silhouette (geometry is not changed!)wrong shadowsmissing shadows of bumpslight effects on back side
∃ special algorithms to repair each error
Copyright Alias|Wavefront Werner Purgathofer / Computergraphik 1 133
Displacement Mapping
“correct version of bump mapping”surface points are moved from their original positionoutline of object changesmuch harder to implement than bump mapping
rare in practicelatest hardware partially supports it
Werner Purgathofer / Computergraphik 1 134
Multitexturing: Combination of Mappings
2 or more textures applied to a surfaceexamples:
texture + dirttexture + light maptexture + bump mapphoto + annotations…
+ =
Werner Purgathofer / Computergraphik 1 135
bump mapping & environment mapping& texture mapping
Multitexturing: Combination of Mappings
© Marek Mizanin