`Get Complete Project Material File(s) Now! »`

**THE IRRADIANCE ESTIMATE**

hierarchy may be used to eciently nd all beams that include the surface fragment and adds to the surface irradiance. Such a bounding volume hierarchy is often referred to as a task acceleration structure. The task being to nd all beams that include the query point.

For the proof of concept LBT rendering algorithm a cone bounding volume hierarchy (abbreviated to CBVH and described in more detail by Chuang and Cheng [26]) is built from all the scattered beams. The call CBVH.get-ContributingBeamSegments(intersect) executes the CBVH query for the ray surface intersection and returns the list of beams that contribute irradiance to that point.

A Whitted style ray tracer was chosen for the forward rendering. However, if an OpenGL or other hardware accelerated forward renderer is used instead of the ray trace forward renderer discussed in the thesis then a screenspace bounding volume approach with a highly optimised inner render loop might be used as opposed to a CBVH. Such an approach is proposed by Ernst et al. [30]. The rst concept demonstrator for glossy LBT described in one of my earlier papers [53] used an even more brute force linear list of beams and still achieved real-time rendering of glossy beams and caustics on graphics hardware.

**Numerical Verication of the Glossy BRDF for Physical Plausibility**

This chapter presents a suite of numerical tests to verify that a BRDF implementation is physically plausible. The glossy BRDF derived in the previous chapter as well as two other well known BRDFs are veried for physical plausibility in the next chapter. Verifying physical plausibility of material BRDF implementations is a critical requirement for comparing dierent rendering algorithms.

The role and value of verication (of implementations) and qualication or validation (of the BRDF expressions) in the modelling and simulation process is discussed in detail by authors such as Sargent [58][59] and Zeigler et al. [60]. Figure 9.1 shows the modelling process. The verication step is the bottom arc in the process which is part of the computer programming and implementation step.

This chapter focusses on the verication (of the implementation) of material BRDFs against the conceptual model of physical plausibility as opposed to algebraically proving that the BRDFs are physically plausible.

Aspects such as symmetricity and conservation of energy of each BRDF are veried by appropriately evaluating the implementation on a large set of equidistant input vectors. Numerical methods such as discussed in this chapter are useful for verifying the correctness of the implementation of derived as well as measured BRDFs. As far as I am aware, numerical verication of the physical plausibility of BRDF implementations has not previously been shown in any published works.

A total of ve tests are to be outlined in this chapter, and the results of applying these tests to each of 3 BDRFs are presented in the next chapter.

Firstly, the quality of the set of equidistant vectors is analysed. A good set of vector bins is crucial for an accurate BRDF analysis. This matters is discussed in Section 9.1.

Secondly, because the BRDF implementations shown here make use of random vector PDFs as the basis for generating random scatter directions, the PDFs are tested for proper normalisation in isolation from the BRDFs.

**Generating Equidistant Input Vectors**

Good quality equidistant direction vectors1 are often required. One use of such vectors that are important here are for bin directions when accumulating PDFs and doing numerical integrals on the sphere or hemisphere. Marques et al. [61] describe the importance of good quality equidistant vectors in rendering in general. They demonstrate a marked improvement in their simulation results when using good vector distributions.

The method chosen to generate equidistant vectors starts with an icosahedron (polyhedron with 20 triangular faces) and over a number of iterations subdivides every triangle into four similar triangles until at least the required number of vertices have been generated.

After each subdivision all vertices are normalised i.e. pushed out onto the unit sphere. Figure 9.2 shows such a subdivision of an icosahedron.

The resulting polyhedron is also referred to as a geodesic dome. Due to the processing of duplicate vertices the generation of equidistant vectors has a measured average computational complexity of O(log n) for n the number of required equidistant vectors.

**I Introduction, Background and Related Work **

**1 Introduction **

1.1 Overview

1.2 Brief Scope of Work

1.3 Structure and Layout

1.4 Summary of Contributions

**2 Background **

2.1 Realistic Image Synthesis

2.2 Radiometry

2.3 The Rendering Equation

2.4 Spherical Gaussian Functions

2.5 The Problem and Thesis Scope

**3 Related Work **

3.1 Early Work

3.2 Light Beam Tracing and Caustics

3.3 Spherical Gaussians and Caustics

3.4 Summary

**II The Glossy Light Beam Tracing Conjecture **

**4 Classical Backward Beam Tracing **

4.1 Overview

4.2 Tracing Light Beams

4.3 The Irradiance Estimate

**5 Conjecture **

5.1 Overview

5.2 The Glossy Irradiance Estimate

**6 Results and Analysis **

6.1 Results

6.2 Analysis

**7 Summary **

**III The Glossy Scatter Lobe BRDF **

**8 Derivation of the Glossy BRDF **

8.1 Overview

8.2 Derivation

8.3 Physical Plausibility

**9 Numerical Verication of the BRDF **

9.1 Generating Equidistant Input Vectors

9.2 Verifying the Random Vector PDFs

9.3 Verifying the BRDF Against Its Photon Scatter Operators

9.4 Verifying BRDF Symmetry

9.5 Verifying BRDF Energy Conservation

**10 Results and Analysis **

10.1 Results

10.2 The Lambertian Diuse BRDFs

10.3 The Blinn-Phong BRDF

10.4 The Phong BRDF

10.5 The Glossy BRDF

10.6 Analysis

**11 Summary **

**IV The Glossy Light Beam Tracing Algorithm **

12 The Glossy Irradiance Estimate

12.1 Overview

12.2 Derivation

12.3 Using Gauss’ Theorem

12.4 Shadowing

12.5 All-Frequency Surface Interactions

**13 Multi-bounce Beam Tracing **

13.1 Overview

13.2 Derivation

**14 Results and Analysis **

14.1 Results

14.2 Analysis

**15 Summary **

**16 StitchEngine Overview **

16.1 Call Graphs and Class Hierarchies

16.2 Optimisation Strategies

16.3 The Bounding Volume Hierarchies

**17 The Renderer Implementations **

17.1 The Light Trace Renderer

17.2 The Light Beam Renderer

17.3 The Photon Map Renderer

**VI Conclusion and Future Work **

**18 Conclusion **

**19 Future Work **

**20 Poster **

**Glossary **

**Acronyms **

**Bibliography **