Retrospect
Digital Image Synthesis
Yu-Ting Wu
So far we have learned:
• Geometry and transforms
• Shapes
• Accelerators
• Color and radiometry
• Cameras
• Sampling and reconstruction
• Reflection models
• Materials
• Textures
Recap: the process of rendering
Cameras
orthogonal, perspective, environment, realistic …
Sampling
random, stratified, low-discrepancy, best candidate …
Reconstruction
box, triangle, sinc, Gaussian, Mitchell …
GenerateRay
Intersect
Shapes
sphere, disk, cylinder, triangle meshes,
subdivision surfaces …
Intersection
DifferentialGeometry BSDFs
Materials
matte, plastic, mix, measured, metal, substrate …
Lights
point, distant, spot, area, environment …
Accelerators
grid, bvh, kdtree …
ω ) p,
(
oL
oL
e( p , ω
o)
ω
i2
d
s f ( p, ω
o, ω
i) L
i( p, ω
i) cos θ
iGetBSDF
Cameras
• GenerateRay
– Given a sample on the image film (in raster space), generate the corresponding camera ray (in world space) according to the type of camera.
environment
Cameras
• Depth-of-field and motion blur
Depth-of-field
Motion blur
Shapes
• Intersect (used for radiance ray)
• Given a ray, does it has intersection with the shape?
• If yes, fill the information in DifferentialGeometry
• IntersectP (used for shadow ray)
– Given a ray, does it has intersection with the shape?
Intersect Intersect
IntersectP
scene
Materials, textures
and reflectance models
• Materials
– GetBSDF
• Reflectance models (BxDFs)
– f
– Sample_f
• Textures
– Evaluate
Material Texture
Spatially-varying parameters
BxDFs
reflectance models
Accelerators
• Construction
• Traversal
• Intersect (used for radiance ray) – IntersectP (used for shadow ray)
BVH Uniform grid Octree Kdtree BSP tree
Sampling and reconstruction
• Use sub-pixel samples for
– Antialiasing
– Distributed effects
• Depth-of-field
• Motion blur
• Soft shadows
• Glossy reflection
• Global illumination
Sampling and reconstruction
• Sampling patterns
random stratified uniform stratified jittered
Halton Hammersley best candidate
Call stack in pbrt
Renderer::Render
RenderTask::Run
Camera::Film::WriteImage
RenderTask::Run
Camera::GenerateRay Renderer::Li
Renderer::Li
Scene::Intersect
if there is an intersection SurfaceIntegrator::Li else
Light::Le
VolumeIntegrator::Li return T * Li + Lvi
[render a block of pixels]
[output an image]
[obtain a camera ray for each camera sample]
[compute the radiance carried by the camera ray]
[obtain the intersection of the ray and the scene]
[compute the surface reflectance along the ray]
[possibly add emittance from all lights]
[compute volume contribution and transmittance]
Call stack in pbrt
Scene::Intersect
Aggregate::Intersect
SurfaceIntegrator::Li
Intersection::GetBSDF
<Do shading based on the shading geometry and BSDF>
Intersection::GetBSDF Primitive::GetBSDF
Primitive::GetBSDF
Shape::GetShadingGeometry Material::GetBSDF
[call acceleration structure for intersection]
[get BSDF for shading]
[call the intersected primitive to fill the BSDF ]
[call shape to get shading geometry]
[do bump mapping if necessary, call material to get BSDF]
Remaining components:
• Lights
• Monte Carlo
• Surface integrators
• Volume integrators
Recap: the process of rendering
Cameras
orthogonal, perspective, environment, realistic …
Sampling
random, stratified, low-discrepancy, best candidate …
Reconstruction
box, triangle, sinc, Gaussian, Mitchell …
GenerateRay
Intersect
Shapes
sphere, disk, cylinder, triangle meshes,
subdivision surfaces …
Intersection
DifferentialGeometry BSDFs
Materials
matte, plastic, mix, measured, metal, substrate …
Lights
point, distant, spot, area, environment …
Accelerators
grid, bvh, kdtree …
Li
How much radiance reflected from surface?
Surface Integrators
GetBSDF
Recap: the process of rendering
Cameras
orthogonal, perspective, environment, realistic …
Sampling
random, stratified, low-discrepancy, best candidate …
Reconstruction
box, triangle, sinc, Gaussian, Mitchell …
GenerateRay
Intersect
Accelerators
grid, bvh, kdtree …
Shapes
sphere, disk, cylinder, triangle meshes,
subdivision surfaces …
How much radiance absorbed and scattered by the media?
Volume Integrators
Intersection
DifferentialGeometry BSDFs
Materials
matte, plastic, mix, measured, metal, substrate …
Lights
point, distant, spot, area, environment …