How do ray tracing and radiosity differ, and why are they considered complementary techniques?
Ray tracing:
Great for specular effects (reflection, transmission)
Poor at handling diffuse scattering unless extended (e.g., path tracing)
Radiosity:
Efficient for diffuse interreflections (global illumination at diffuse surfaces)
Inefficient for specular effects (like mirrors or glass)
→ They are complementary: each handles what the other struggles with
What is radiosity in global illumination, and how does it differ from ray tracing?
Based on heat transfer principles
Best suited for indoor scenes with diffuse interreflections
Scene is divided into surface patches (uniform or adaptive)
Light energy is computed patch-to-patch (including light sources)
Computational cost is O(n²) for n patches
Operates in object space, unlike ray tracing which is image space
Produces smooth, realistic diffuse lighting via precomputed interpolation
What is the surface-to-surface form factor in radiosity, and what are its key properties?
What is the Nusselt analog, and how is it used in radiosity form factor computation?
Why is computing the exact form factor between two surfaces A_i and A_j expensive, and how is it defined?
What is the Hemicube Method in radiosity and how does it work?
An approximation of the Nusselt analog
Projects scene geometry onto a cube centered on dAᵢ
Uses flat projection planes for efficiency
Typically 2×2 top face and 2×1 side faces
Subdivided into a grid (e.g., 512×512)
Polygons are projected onto cube faces with Z-buffering for visibility
Form factor is computed by summing contributions of covered cells
Efficient and GPU-friendly, but introduces approximation errors
What is area sampling in radiosity, and how does it compare to the hemicube method?
Subdivides surface Aⱼ into small differential elements (dAⱼ)
For each dAⱼ:
Cast a ray to dAᵢ
If visible, compute partial form factor
More accurate than hemicube (especially with occlusion)
Slower, but precision can be adaptively increased
Preferred in modern systems for high-quality results
Hemicube is faster, area sampling is more physically accurate
What is the radiosity equation and how is it derived?
Radiosity B_i = energy per unit area leaving patch A_i
Composed of:
Emitted energy E_i
Reflected energy from other patches:
Form factor reciprocity simplifies the equation
Integration becomes a summation for discrete patches
Yields one equation per patch → a system of n linear equations
How is the radiosity equation system solved in practice?
What is the difference between gathering and shooting methods in iterative radiosity?
Gathering:
Each patch collects light from all other patches
Updates one patch per step:
B_i = E_i + R_i \sum_j B_j F_{ij}
Viewpoint-oriented (camera-centric)
Requires multiple iterations to converge
Shooting:
Each patch sends out its unshot energy to others
Updates all patches from a single emitting patch in each step
Energy-centric (light transport view)
Often prioritizes high-energy patches first
Both methods converge to same solution, just different update directions
How does the Neumann series relate to solving the radiosity equation?
What is progressive radiosity and what advantages does it offer?
An iterative approach that improves image quality over time
Each iteration adds more light transport detail
Useful for real-time preview:
Shows partial results immediately
Gradually refines image until convergence (no visual change)
Allows dynamic stopping conditions (e.g., when scene changes stop)
Frame rate is inversely related to iteration time (fewer bounces = faster)
Why is patch subdivision important in radiosity, and how can it be optimized?
Uniform low-resolution patches cause artifacts:
Blocky shadows
Mach bands
Unresolved discontinuities
Increasing patch resolution globally:
Improves quality
Significantly reduces performance
Best practice: use adaptive patch subdivision
High resolution only where needed (e.g. shadows, fine detail)
Coarser mesh in less critical areas
Balances accuracy and efficiency
What are the main steps in the radiosity pipeline and how is the final image reconstructed?
Mesh the surface into patches
Uniform or adaptive resolution
Compute form factors
Methods: hemicube, area sampling
Solve the linear system
Direct (e.g., matrix inversion)
Iterative (e.g., Gauss-Seidel, shooting)
Reconstruct the solution
Interpolate low-res radiosity onto high-res geometry
Blend for smooth final appearance
Radiosity is view-independent
No need to recompute if only camera changes
GPU-accelerated solutions exist (e.g. realtimeradiosity.com)
Last changed8 days ago