|
1
|
|
|
2
|
- The Rendering Equation
- Challenges
- Primitives complex: lights, materials, shapes
- Exponential number of paths, dense coupling
- How to solve it?
- Radiosity Finite
element
- Ray Tracing Monte Carlo
|
|
3
|
|
|
4
|
|
|
5
|
|
|
6
|
|
|
7
|
|
|
8
|
|
|
9
|
|
|
10
|
|
|
11
|
|
|
12
|
|
|
13
|
- Flux (Power): rate at which light energy is emitted
- Solid angle: 3D generalization of angle
- Intensity: Flux per solid angle
|
|
14
|
- Radiance: intensity per unit foreshortened area
- Foreshortened area found by multiplying the area by cos(q)
- Think of the projection of the area onto the plane perpendicular to the
direction of radiation
- Properties of radiance:
- Remains constant along a ray
- The response of a sensor is proportional to the incident radiance
|
|
15
|
- Irradiance: flux per unit area
|
|
16
|
- Energy distribution has an irritating singularity
- The flux in some small differential solid angle is
- Assume isotropic light source
- Then irradiance at a point on a unit sphere is:
|
|
17
|
- Irradiance on a small surface from a point light
|
|
18
|
- Bidirectional Reflection Distribution Function
- How much light is reflected in direction wo from direction wi?
- Two main properties:
- Reciprocity:
- Energy preservation:
|
|
19
|
- How much light reflects in some given direction?
- Take light coming from all incoming directions, multiply it by the BRDF,
multiply by cos(q)
|
|
20
|
- The Dirac delta function is defined as follows:
|
|
21
|
- Mirror reflection, so:
- Also, since no light is absorbed:
- Mirror’s BRDF uses delta functions to enforce this:
|
|
22
|
- Light is equally likely to be scattered in any direction, regardless of
the incident direction
- The BRDF is a constant!
|
|
23
|
- Radiance is invariant along a ray
- The radiance at x’ due to the radiance from x is
- is a boolean visibility
function
|
|
24
|
- Hemispherical integral bad.
Surface integral good.
- Relationship between solid angle and projected surface area:
- So define G:
- Change variables in the reflection equation:
|
|
25
|
- Incorporate emission:
- This completely captures all light transport in a scene
- Global illumination = solve the rendering equation
- But it’s too hard!
|
|
26
|
- Assume all surfaces are diffuse
- BRDF is a constant, we can pull it out of the integral
|
|
27
|
- Radiosity solutions are view-independent!
- This is actually a tractable problem!
- Bounce light around in the scene, absorbing some and reflecting some,
until everything settles down
|
|
28
|
- We can’t compute integrals, but that’s OK
- Cut up the scene into little “patches”
- Sum the light contribution over all patches:
- : the fraction of energy
leaving patch j that arrives at patch i.
- Called the form factor between the two patches
|
|
29
|
- Reciprocity relationship between form factors:
- Simplify the summation:
- this is pretty simple, considering the rendering equation
- Rearrange terms:
|
|
30
|
- This looks suspiciously like a system of equations!
- This is Ye Olde Huge Matrixe!
- Solve it using numerical techniques
|
|
31
|
- The form factor between two tiny surface patches is:
- is the binary visibility
function
- So the true form factor is:
|
|
32
|
- Project the visible areas of Aj onto a unit hemisphere
centered at dAi, and then onto the base
- The ratio of this projected area to the area of the base circle is the
form factor
|
|
33
|
- Approximate the hemisphere:
|
|
34
|
- Each small hemicube cell has a precomputed delta form factor:
- We can render the scene using normal Z-buffer scan conversion onto the
faces of the hemicube!
|
|
35
|
- Radiosity solving is really slow
- Display a reasonable picture while solving
- The approach so far:
- estimate the radiosity of patch I based on the estimates of all other
patch radiosities:
- This is called gathering
- Poor intermediate results
|
|
36
|
- Instead of gathering light, we can shoot the light energy stored at each
patch to every other patch:
- This requires knowing all the form factors at once
- Rewrite the equation as:
- Choose the patch with maximum stored energy
- Starting with the light sources
|
|
37
|
- Display the latest radiosity values at each patch
- Use ambient to make up the difference
- Set initial radiosities to the emission
- Compute an average diffuse reflectivity for the scene
|
|
38
|
- Compute an overall reflection factor
- Take into account all paths which energy can take
- Weight the unshot radiosity by the ratio of the patch’s area to the
total area:
|
|
39
|
|
|
40
|
|
|
41
|
|
|
42
|
|
|
43
|
|
|
44
|
|
|
45
|
|
|
46
|
|
|
47
|
|
|
48
|
|
|
49
|
|
|
50
|
|
|
51
|
|
|
52
|
|