This** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*
This** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*
This** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*
This** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*
This** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*
This** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*
This** preview**
has intentionally

**sections.**

*blurred***to view the full version.**

*Sign up*
**Unformatted text preview: **Computer Graphics
Lecture 14
Bump-mapping, Global Illumination (1) Today
- Bump mapping
- Displacement mapping
- Global Illumination
Radiosity Bump Mapping
- A method to increase the
realism of 3D objects without
editing their geometry
- By adding high resolution
bump maps
- In a way similar to
texture mapping What's Missing?
• What's the difference between a real
brick wall and a photograph of the
wall texture-mapped onto a plane?
No shadows between
the bricks This is what we want How do we achieve this?
• High resolution brick wall?
• - Difficult to prepare the model
• - Very costly to handle during run-time Bump Mapping
● Use textures to alter the surface normal but not
the geometry
● Done during the rasterization stage
○ Can synthesize realistic images without using high
resolution meshes Sphere w/Diffuse
Texture Swirly Bump
Map Sphere w/Diffuse Texture & Bump
Map Preparing Data
Prepare a bump map whose values change from 0 to
1
Prepare a mapping of vertices to uv coordinates Cylinder w/Texture Map & Bump Map Procedure
• During rasterization, compute the barycentric coordinates
of the pixel and compute its uv coordinates by
interpolation
• Lookup the bump map and compute the finite difference
of the bump map (Fu, Fv) = (dF/du, dF/dv) u= α u + β u2 + γ u3
v = α v + β v2 + γ v3
1 1 Procedure - continued
• When rasterizing a pixel in the triangle, compute
the original normal vector n and the its uv
coordinates by barycentric coordinates
• Perturb the normal vector by where (Fu, Fv) are the partial derivatives of the bump
map, and Pu, Pv are the partial derivative of the
geometry with respect to the uv
• Do the lighting computation using n’ Computing Fu, Fv
• Simply compute the finite
difference of the height map
at the corresponding uv
v u Computing Pu, Pv
How P changes according to u,
v in the texture space
v u Or compute Pu, Pv in screen
space using chain rule
y x Or compute Pu, Pv in screen
space using chain rule
y x
These can be computed in the
screen space by finite difference Or compute Pu, Pv in screen
space using chain rule
y where
x Preparing Bump Maps
•
•
•
• Can be produced from photos or designed by the user
If it is from an image, convert the image to greyscale
Adjust the contrast, such the min is 0 and max is 1
White part bumps out and black color bump inwards
• Need to make sure there is no specular highlights
in the image Some more examples Some more examples Some more examples What's Missing?
• There are no actual bumps
on the silhouette of a
bump-mapped object Displacement Mapping
• - Use the texture to actually move the surface point
• - The texture is a 3D mesh defined in the uv space How it works
1.
2. 1. Tessellate (subdivide) the base polygon mesh such that its
resolution is same as the displacement map
2. Move each vertex in the normal direction of the base
polygon mesh as much as the height in the displacement
map Displacement Mapping:
Discussions
● The cost increases as the polygon numbers is
high
● Done in the geometry stage and not in the
rasterization stage
● Can adaptively tessellate the base polygon mesh
for the region the spatial frequency is high
● Methods to do it in the image space are getting
popular Today
- Bump mapping
- Displacement mapping
- Global Illumination
Radiosity Background
□ Rendering methods can be classified
into
■ Local Illumination techniques
■ Global Illumination techniques Local Illumination methods
❑ Considers light sources and surface properties only.
❑ ❑ Phong Illumination, Phong shading, Gouraud Shading Very fast
❑ Used for real-time applications such as 3D computer
games Local Illumination : problems
❑ ❑ Images synthesized appear artificial
❑
No inter-surface reflections
❑
Ambient light is a very simplified model
Requires the user to add the effects like shadows
and mirrors one by one
■ ■ Shadow maps, shadow volume, shadow texture for
producing shadows
Mirroring by reflecting the world or environment
mapping Global Illumination □ In the real-world, light comes from all directions
(ambient light)
This is due to inter-reflections □ Global illumination methods handle such effects □ Global Illumination
□ Methods
□
□ □ Radiosity
Monte-Carlo ray tracing, Photon Mapping Requires more computation and is slow The Radiosity Method (85’-)
□ □ Based on a method developed by
researchers in heat transfer in
1950s
Applied to computer graphics in
the mid 1980s by
□ Michael Cohen
□ Tomoyuki Nishita The Radiosity Method (85’-)
Can simulate inter-surface
reflection
□ Can produce nice ambient effects
□ Can simulate effects such as
□ Soft shadows,
□ color bleeding
Can only handle diffuse color
→ need to be combined with raytracing to handle specular light
□ Color
bleeding Color Bleeding The Radiosity Model
□ At each surface in a model the amount of energy
that is given off (Radiosity) is comprised of
■
■ Bj the energy that the surface emits internally (E), plus
the amount of energy that is reflected off the surface
(ρH) Eq. 1 The Radiosity Model (2)
□ The amount of incident light hitting the
surface can be found by summing for all other
surfaces the amount of energy that they
contribute to this surface Eq. 2 Form factor Form Factor (Fij) □ The fraction of energy that leaves surface i and
lands on surface j
Between differential areas, it is □ The overall form factor between i and j is □ Form Factor (2)
□
□ Also need to take into account occlusions
The form factor for those faces which are
hidden from each other must be zero The Radiosity Matrix
The radiosity equation now looks like this: The derived radiosity equations form a set of N linear
equations in N unknowns. This leads nicely to a matrix
solution: Solve for Bi – Use methods like Gauss-Seidal Radiosity Steps:
1. Generate Model (set up the scene)
2. Compute Form Factors and set the
Radiosity Matrix
3. Solve the linear system
4. Render the scene Radiosity Steps:
1. Generate Model (set up the scene)
2. Compute Form Factors and set the
Radiosity Matrix
3. Solve the linear system
4. Render the scene Radiosity Steps:
1. Generate Model (set up the scene)
2. Compute Form Factors and set the
Radiosity Matrix
3. Solve the linear system
4. Render the scene Radiosity Steps:
1. Generate Model (set up the scene)
2. Compute Form Factors and set the
Radiosity Matrix
3. Solve the linear system
4. Render the scene Radiosity Steps:
1. Generate Model 2. Compute Form Factors and set the Radiosity Matrix 3. Solve the linear system 4. Render the scene ● Where do we resume from if objects are moved?
● Where do we resume from if the lighting is
changed?
● Where do we resume from if the reflectance
parameters of the scene are modified?
● Where do we resume from if the view point
changes? Radiosity Features:
□
□ □ Very costly
The faces must be subdivided into small
patches to reduce the artefacts
The computational cost for calculating the
form factors is expensive
□ □ Solving for Bi is also very costly
Cubic to the number of patches
Cannot handle specular light □
□ Quadratic to the number of patches Hemicube: by Michael Cohen’
85
□ □ □ Accelerates the computation
of the form factor
The form factor for the right
four faces with respect to a
small patch in the bottom is
the same
Then, we can project the
patches onto a hemicube Hemicube (2)
□ □ □ Prepare a hemicube around
the patch i
Project those polygons you
want to compute the form
factor with patch i onto the
hemicube
Then, compute the form
factor between them Hemicube (3)
□ □ This can be done by perspective
projection
We can use the Z-buffer algorithm
to find the closest polygon
□ Handling the occlusion
□ Setting the form factor of the
pairs that occlude
each other to zero Hemicube (4)
□ The form factor between
each pixel of the hemicube
and the patch at the origin
can be pre-computed and
saved in a table □ Only 1/8 of all are needed,
thanks to symmetry Summary
Bump maps can be used to increase the
reality without increasing the resolution
of the meshes
□ Global illumination methods simulate
inter-reflectance
□ Radiosity can simulate diffuse interreflectance
□ The form factor computation can be
accelerated by hemi-cube.
□ Readings
• Blinn, "Simulation of Wrinkled Surfaces", Computer
Graphics, (Proc. Siggraph), Vol. 12, No. 3, August 1978, pp.
286-292.
• Real-time Rendering, Chapter 5,1-5.2 • .
dk/projects/downloads/tangent_matrix_deriv
ation.php • Cohen et al., The hemi-cube: a radiosity solution for
complex environments, SIGGRAPH ‘85 ...

View
Full Document

- Spring '14
- Texture mapping, Bump mapping, form factor, Displacement mapping, Global Illumination, Radiosity Matrix