• No results found

Clustered Importance Sampling for Fast Reflectance Rendering

N/A
N/A
Protected

Academic year: 2021

Share "Clustered Importance Sampling for Fast Reflectance Rendering"

Copied!
43
0
0

Loading.... (view fulltext now)

Full text

(1)

Department of Science and Technology Institutionen för teknik och naturvetenskap Linköping University Linköpings Universitet

SE-601 74 Norrköping, Sweden 601 74 Norrköping

LiU-ITN-TEK-A--08/082--SE

Clustered Importance Sampling

for Fast Reflectance Rendering

Oskar Åkerlund

(2)

LiU-ITN-TEK-A--08/082--SE

Clustered Importance Sampling

for Fast Reflectance Rendering

Examensarbete utfört i medieteknik

vid Tekniska Högskolan vid

Linköpings universitet

Oskar Åkerlund

Handledare Rui Wang

Examinator Anders Ynnerman

(3)

Upphovsrätt

Detta dokument hålls tillgängligt på Internet – eller dess framtida ersättare –

under en längre tid från publiceringsdatum under förutsättning att inga

extra-ordinära omständigheter uppstår.

Tillgång till dokumentet innebär tillstånd för var och en att läsa, ladda ner,

skriva ut enstaka kopior för enskilt bruk och att använda det oförändrat för

ickekommersiell forskning och för undervisning. Överföring av upphovsrätten

vid en senare tidpunkt kan inte upphäva detta tillstånd. All annan användning av

dokumentet kräver upphovsmannens medgivande. För att garantera äktheten,

säkerheten och tillgängligheten finns det lösningar av teknisk och administrativ

art.

Upphovsmannens ideella rätt innefattar rätt att bli nämnd som upphovsman i

den omfattning som god sed kräver vid användning av dokumentet på ovan

beskrivna sätt samt skydd mot att dokumentet ändras eller presenteras i sådan

form eller i sådant sammanhang som är kränkande för upphovsmannens litterära

eller konstnärliga anseende eller egenart.

För ytterligare information om Linköping University Electronic Press se

förlagets hemsida

http://www.ep.liu.se/

Copyright

The publishers will keep this document online on the Internet - or its possible

replacement - for a considerable time from the date of publication barring

exceptional circumstances.

The online availability of the document implies a permanent permission for

anyone to read, to download, to print out single copies for your own use and to

use it unchanged for any non-commercial research and educational purpose.

Subsequent transfers of copyright cannot revoke this permission. All other uses

of the document are conditional on the consent of the copyright owner. The

publisher has taken technical and administrative measures to assure authenticity,

security and accessibility.

According to intellectual property law the author has the right to be

mentioned when his/her work is accessed as described above and to be protected

against infringement.

For additional information about the Linköping University Electronic Press

and its procedures for publication and for assurance of document integrity,

please refer to its WWW home page:

http://www.ep.liu.se/

(4)

Abstract

In realistic image synthesis, a major challenge is how to account for large-scale, complex lighting environments in an efficient and robust way.

This thesis presents a simple and efficient method for bidirectional im-portance sampling from large-scale illumination sources. The method is based on a clustered representation of the potential light source samples. Combined with an efficient BRDF sampling strategy, an importance func-tion can rapidly be constructed and used to select the lighting samples that will contribute the most in the rendering equation.

Most existing methods similar to the one presented in this thesis are restricted to environment lighting only; in contrast, the proposed algorithm can also be used in local lighting scenarios where the illumination exists on an unstructured point set, which may not have the same natural parame-terization as an environment map.

(5)

Acknowledgements

I would like to give big thanks my advisor Rui Wang at the UMass Com-puter Graphics Research Group for all of the helpful discussions and hints that helped build this thesis. Thanks to my academic supervisor Anders Ynnerman and my opponent Per L¨onroth for their feedback on the report. Finally a special thanks to my fianc´ee, Amy, for all of her love and support.

(6)

Abbreviations

BVH Bounding Volume Hierarchy

BRDF Bidirectional Reflectance Distribution Function CPU Central Processing Unit

GLSL OpenGL Shading Language GPU Graphics Processing Unit GUI Graphical User Interface HDR High Dynamic Range RGB Red-Green-Blue

SIMD Single Instruction, Multiple Data SISD Single Instruction, Single Data UMass University of Massachusetts

(7)

Contents

List of Figures iii

List of Tables iv 1 Introduction 1 1.1 Problem Description . . . 1 1.2 Thesis Objectives . . . 2 1.3 Outline of Report . . . 2 1.4 Reader Prerequisites . . . 3 2 Background 4 2.1 Realistic Image Synthesis . . . 4

2.1.1 The Rendering Equation . . . 5

2.1.2 Global Illumination . . . 6

2.1.3 Environment Mapping . . . 6

2.1.4 The BRDF . . . 6

2.2 Offline Rendering . . . 7

2.2.1 Monte Carlo Methods . . . 8

2.3 Real-time Rendering . . . 8

2.3.1 Precomputed Radiance Transfer . . . 9

2.3.2 Deferred Shading . . . 9

3 Methods and Models 10 3.1 Bidirectional Importance Sampling . . . 10

3.1.1 Importance of Luminance . . . 11 3.1.2 Importance of the BRDF . . . 11 3.1.3 Joint Importance . . . 11 3.2 BRDF Models . . . 12 3.2.1 Lambertian . . . 12 3.2.2 Phong . . . 12 3.2.3 Ward Anisotropic . . . 13 3.3 Lightcuts . . . 14 3.4 Light Sources . . . 14 3.4.1 Distant Light . . . 15 i

(8)

CONTENTS ii

3.4.2 Local Light . . . 15

4 Implementation 17 4.1 Application Environment . . . 17

4.2 The Importance Function . . . 17

4.2.1 Generating the Light Cut . . . 18

4.2.2 BRDF Importance Sampling . . . 18

4.2.3 Pseudo Random Numbers . . . 20

4.3 Rendering Pipeline . . . 20

4.3.1 User Interaction . . . 20

4.3.2 Data Flow . . . 20

4.3.3 Final Sampling . . . 21

4.3.4 Visualization of Sample Distribution . . . 21

4.4 Parallelism . . . 21

4.4.1 Multithreading . . . 22

4.4.2 Streaming SIMD Extensions . . . 22

5 Results 23 5.1 Test Environment . . . 23 5.2 Ground Truth . . . 23 5.3 Test Scenes . . . 24 5.4 Performance . . . 25 5.4.1 Distribution of Samples . . . 25 6 Discussion 29 6.1 Conclusion . . . 29 6.1.1 Noise . . . 29 6.2 Related Work . . . 30 6.3 Future Work . . . 30 Bibliography 32

(9)

List of Figures

2.1 Coordinate frame used in the rendering equation. . . 5

2.2 The diffuse and specular components of the BRDF. . . 7

2.3 Shadow rays . . . 7

3.1 Coordinate frames for BRDF importance sampling. . . 14

3.2 Example of a cut through a tree with aggregated values. . . . 15

5.1 Importance sampled scenes with ground truth images. . . 26

5.2 Comparison – Hebe . . . 27

5.3 Comparison – Car . . . 27

5.4 Comparison – Box . . . 27

5.5 Comparison – Plate . . . 27

5.6 Visualization of sample distribution . . . 28

(10)

List of Tables

5.1 Rendering times – using 128 samples per pixel. . . 24

(11)

Chapter 1

Introduction

This chapter introduces the reader to the thesis, by presenting the problem description along with the main objectives. The outline of the report and the recommended reader prerequisites are given as well.

1.1

Problem Description

Realistic image synthesis requires simulating illumination effects from com-plex, large-scale area light sources. Examples include direct lighting from detailed High Dynamic Range (HDR) environment maps [1], and indirect lighting from complex scene models where all surface points contribute to the final global illumination results. While the theory behind illumination has been well understood, improving the efficiency in simulation algorithms continues to present a major challenge. As described by the rendering equa-tion in [2], the illuminaequa-tion computaequa-tion involves estimating a hemispherical integral of the lighting, visibility, and the Bidirectional Reflectance Distri-bution Function (BRDF) of the surface. This integral has in general no analytic solution; even with approximate methods, the solution is usually too expensive to compute at interactive rates.

Numerical simulation of the rendering equation typically uses Monte Carlo sampling methods [3]. The efficiency of these methods can be dramat-ically improved by sampling according to an importance function. Several approaches have studied importance sampling schemes that are computed purely based on the lighting [4, 5]. These methods perform poorly in the case of shiny BRDFs, as high-frequency details of the BRDF are ignored. Simi-larly, approaches that are purely based on the BRDF’s importance present significant problems when the lighting contains high-frequency information. Recently, researchers have presented several efficient bidirectional impor-tance sampling methods for sampling according to the product function of the lighting and the BRDF [6, 7]. These methods account for high-frequency details in both the lighting and the BRDF, and can thus significantly

(12)

Introduction 2

prove the rendering quality over single function sampling. Most existing bidirectional methods, however, assume that the illumination is coming from distant environment maps, which can be naturally parameterized as two-dimensional image functions. This makes it possible to apply basis methods such as nonlinear wavelet approximation to rapidly construct the impor-tance function. Unfortunately, these approaches cannot be easily extended to local lighting scenarios where the light sources exists on an unstructured set of points, which may not have a natural parametrization.

The focus of this thesis is to construct a robust and efficient algorithm for bidirectional importance sampling that can be used for both direct lighting from an environment map as well as indirect lighting from the local scene. To make this possible, the lighting from both scenarios will be represented as a piecewise constant approximation, as in [12].

1.2

Thesis Objectives

Following the problem description in 1.1, the thesis objectives are:

• Present a method for bidirectional importance sampling that is based on a piecewise constant approximation of the lighting – making it useful in both distant and local lighting settings.

• Implement the method using OpenGL1 and C++2.

• Evaluate the results.

Note that the main objective of the thesis is not the optimized implementa-tion of the soluimplementa-tion, but rather a proof of concept.

1.3

Outline of Report

In chapter 2, background information will be given on common rendering algorithms and simulation models used for both real-time rendering and of-fline rendering of synthetic images. Chapter 3 describes in detail how some of these methods and models can be used to solve the thesis objectives. Chapter 4 presents how they are modified and actually used in the imple-mentation of this thesis. In chapter 5, the results of the impleimple-mentation are presented. In conclusion, an analysis and discussion of the results com-pared to the objectives, together with suggestions on future work is given in chapter 6.

1Open Graphics Library – a cross-language cross-platform API for computer graphics.

2

(13)

Introduction 3

1.4

Reader Prerequisites

In order to fully understand the contents of this thesis, basic knowledge and experience in computer graphics, linear algebra, data structures and statistics is recommended.

(14)

Chapter 2

Background

This chapter introduces the reader to the common rendering algorithms and strategies used in the computer graphics industry and research. The first section will present the two ends of the strategy spectrum, being real-time rendering and offline rendering, together with a brief explanation of how light transfer and material properties can be modeled in both strategies. Finally, a more thorough explanation of the different strategies is given.

2.1

Realistic Image Synthesis

In the pursuit of realism in computer graphics, the simulation of light plays a big part. In reality, everything our eyes observe is an active light source -even this thesis is casting some light towards you right now. Most objects do not produce light themselves; instead they let light bounce on them, coming from the sun, a lamp or any other light emitting source. The amount of light rays that enter our eyes is vast and infeasible to completely reproduce with a computer. Instead, there is always a level of approximation and sampling required in image synthesis.

Ideally we want to produce photo realistic images in real-time rates where all factors (light sources, geometry and materials) are dynamic. However, one or more of these factors needs to be static and even precomputed to allow for the highest frame rates. The other end of the spectrum is offline rendering, where the image quality is more important than the rendering speed. In this case, many samples are used and the level of approximation is low. The big challenge in computer graphics research of today is to land somewhere in between of these extremes to produce realistic images while maintaining acceptable, interactive frame rates.

(15)

Background 5

2.1.1 The Rendering Equation

The rendering equation, introduced in [2], describes the amount of light Lo that is exited from a surface point x along a certain direction wo. The

intensity of the outgoing light is based on incoming light Li, the BRDF fr

of the point and a geometric form factor G: Lo(x, wo) = Le(x, wo) +

Z

fr(x, wi, wo)Li(x, wi)G(x, wi)dwi. (2.1)

In the above equation, Ledescribes the self-emitted light of point x in

direc-tion wo. This term is rarely considered1, and will be ignored in this thesis.

The form factor G is usually defined as: G(x, wi) =

−(N · wi)(LN· wi)

||Lx− x||2 . (2.2)

Here, N is the normal at point x. LN and Lx is the normal and position of

the light source as illustrated in figure 2.1.

One important feature of the equation is the conservation of energy – meaning that the outgoing light can not have a higher intensity than the sum of the incoming light and the self-emitting light. This is controlled by normalizing the BRDF and the form factor.

N T SN N w i w o x x wh wr LN L

Figure 2.1: Coordinate frame used in the rendering equation, in which N , SN and TN forms an orthogonal basis. The half-angle vector wh is halfway

between the view vector wo and the light vector wi. The vector wr is wo

reflected across N .

1

Since most real world materials do not emit any light. It is, however, useful when rendering light sources as objects, such as a light bulb.

(16)

Background 6

2.1.2 Global Illumination

There are usually two ways that light can hit an object in the scene we are rendering. In direct illumination, light is coming directly from a self-emitting light source such as the sun or a lamp. The same light source can reach us indirectly by first bouncing on other objects in the scene, resulting in indirect illumination. In this case, the objects of the scene are themselves treated as light sources.

Combining direct illumination with indirect illumination is essential for full realism and is called global illumination.

2.1.3 Environment Mapping

One common method of casting direct lighting onto the scene is called En-vironment Mapping. Using a technique described in [1], HDR light can be captured in a real world location and mapped onto a sphere or a cube that is considered to be infinitely far away and centered around the objects we want to render. When gathering the direct lighting, the sphere (or cube) can ei-ther be sampled directly for best accuracy, or arranged in an approximating structure or projection basis for increased efficiency.

2.1.4 The BRDF

The BRDF is the four-dimensional function fr in the rendering equation,

that describes how light is reflected at a point on an opaque surface. The function takes two vectors as input: the view vector wo, normalized from the

point to the viewer, and the light vector wi, normalized from the point to

wherever we want to sample in the hemisphere. Together with the surface properties of the point, the resulting (colored) light exited along wo is

com-puted. The surface properties of the point typically includes the normal, the material color and specularity constants. Most BRDF models include two types of reflections:

• Diffuse reflection, smooth and independent of the view vector. • Specular reflection, dependent on the view vector. Yields specular

highlights.

These components are illustrated in figure 2.2. In order to conserve energy (an important feature of the rendering equation), the hemispherical integral of the BRDF multiplied with the form factor must be less than or equal to 1. Since the hemispherical integral of the form factor is π, this is usually done by specifying surface colors in the range [0,1] per channel and using a division by π in the BRDF model.

(17)

Background 7

Diffuse Specular Diffuse + Specular

Figure 2.2: The diffuse and specular components of the BRDF.

2.2

Offline Rendering

When performance is of second priority, the rendering equation can be eval-uated more carefully and precise to yield a resulting image of higher quality. One common method for this is called ray tracing, where rays are shot from the view point through each pixel of the image plane, into the scene. If an object in the scene is blocking the path of the ray, new rays are spawned at the closest intersection point to the eye. Reflection and refraction rays will recursively continue to test intersections of the scene while shadow rays will travel from the intersection point to each light source as shown in figure 2.3. If the shadow rays are blocked by opaque objects, their correspondent light sources are not visible to the point, causing it to be shadowed.

As described in 2.1, light is usually coming from virtually every direc-tion in the hemisphere, so a few light sources will not be enough to pro-duce realistic looking images. To account for all frequencies in the lighting environment, the more samples that are taken of the domain the better. However, increasing the number of light sources will also increase the com-putation time dramatically. Hence, we need a way of selecting where and how to sample the domain, keeping the resulting image quality high and the computational cost low.

View point Surface point Light source Light source Blocking object Image plane

Figure 2.3: Shadow rays are spawned at the closest surface point along the view vector, checking visibility of each light source.

(18)

Background 8

2.2.1 Monte Carlo Methods

A Monte Carlo method [11] is a numerical method where an equation (e.g. the rendering equation) is solved by repeated sampling with a random vari-able. When increasing the number of samples, the result will converge to a final value close or equal to the real function value. For a real-valued random variable X, we can define its cumulative distribution function as

P (x) = P r{X ≤ x} =

Z x

0

p(t) dt, (2.3)

where p(t) is called the probability density function. If we want to evaluate the integral

I =

Z

f (x) dx (2.4)

numerically, we can independently sample N points X1. . . XN and compute

the estimate of I as:

ˆ IN = 1 N N X i=1 f (Xi) p(Xi) . (2.5)

This estimate is unbiased; the expected value is equal to the original integral:

E[ ˆIN] = 1 N N X i=1 Z Ω f (x) p(x)p(x) dx = Z Ω f (x) dx = I. (2.6) What makes a difference is computer graphics is how fast the estimation converges to the correct result. Studying the variance of ˆIN we see that it

decreases linearly with N :

V [ ˆIN] = 1 N2 N X i=1 V f (X i) p(Xi)  = N N2V f (X) p(X)  = 1 NV f (X) p(X)  . (2.7) Hence, using more samples will lower the variance and reduce noise in the final result. However, an increased number of samples will also increase the computational time. Instead, the variance can be lowered by carefully constructing the probability density function p. In 3.1, it is shown how to use a bidirectional importance function to construct p.

2.3

Real-time Rendering

When performance is of highest priority, the accuracy of the physical light transport plays a small part. Nevertheless, we still want good looking im-ages. Precomputation solves the problem if some factors of the rendering equation are allowed to be static. However, in most real-time rendering applications, an ability to interact with the scene is desired. Consequently, some dynamic factors need to be evaluated on the fly.

(19)

Background 9

2.3.1 Precomputed Radiance Transfer

Early computer games such as Quake by id Software used a technique called Lightmaps to simulate global illumination. This is done by utilizing an offline renderer to precompute the light transfer in a scene and storing the result as texture data. These textures can later be applied on the geometry in a real-time rendering system. However, this is mainly useful for diffuse reflections - parts of the rendering equation where the view point is not included. Instead, storing the transfer information rather than the final result can be done to allow for dynamic lighting environments in real-time. In [8], a novel method for precomputed radiance transfer is proposed that precomputes the visibility for each vertex in the geometry while allowing fully dynamic BRDFs, lighting environment and viewpoint.

2.3.2 Deferred Shading

In [13], Deering et al. introduces the idea of Deferred Shading, which is a useful method when rendering opaque objects. Using multiple screen-sized rendering targets, a first rendering pass can store input data of the per pixel lighting equation (e.g. the per-pixel position, normal and material properties) in auxiliary buffers. In the final rendering pass, these buffers are used to produce the pixel colors. The main advantage with deferred shading is that the final, most expensive pass will only deal with pixels that are seen by the viewer and have passed the Z-buffer test. While getting increasingly popular in real-time applications, this method can also be useful as a pre-processing step in offline rendering. For example, in a ray tracer, this could replace the first set of rays that determines the closest hit point per pixel.

(20)

Chapter 3

Methods and Models

This chapter will present methods that are used to fulfill the objectives of this thesis. First, an extension of the Monte Carlo method will be explained. Following sections will present ways of representing light sources and mate-rial properties.

3.1

Bidirectional Importance Sampling

When using uniformly distributed samples in Monte Carlo ray tracing (see 2.2.1), convergence is slow; an acceptable, relatively noise free result requires many samples. The probability density function, p (introduced in eq. 2.3) is con-stant in this situation, meaning that each light source has equal probability of being sampled. This is basically equivalent to a blind search without heuristics.

To help solve this problem, we can design p based on what we know about the lighting environment and the surface BRDF of the point we are evaluating. For each potential sample x, an importance metric, Γ(x) is computed. Then, p(x) is computed as the normalized Γ(x):

p(x) = PNΓ(x)

i=1Γ(i)

(3.1) Several approaches have constructed Γ(x) purely based on the lumi-nance of the light samples [4, 5]. This unfortunately ignores high-frequency details of glossy BRDFs. Similarly, approaches that are purely based on the BRDF’s importance present significant problems when the lighting contains high-frequency information, such as very bright spotlights. The following subsections will describe how to compute Γ based on the light source lumi-nance and the BRDF, and finally how to combine them.

(21)

Methods and Models 11

3.1.1 Importance of Luminance

For a given light source x with a color defined in the Red-Green-Blue (RGB) color space, the luminance can be computed as 0.2126R+0.7152G+0.0722B. This follows the luminosity function, giving the green component more im-portance since humans experience green light as brighter than blue or red light [14]. Using the luminance as an importance metric will give intensive lights more importance. This makes sense because very bright light sources are in reality more likely to contribute than darker light sources. Moreover, relatively intensive lights in an environment are usually isolated and small, making it easy to miss those areas when no light based importance sampling is used.

3.1.2 Importance of the BRDF

For a shiny surface, it is wasteful to send samples in random directions or in directions purely determined by the luminance of the light sources, since most energy will be in rays concentrated in and close to the specular lobe of the BRDF. It is possible to construct an importance sampling algorithm for most BRDF models [15], that can warp uniform random variables to light vectors which follows the distribution of the BRDF (specific examples of this can be found in 3.2). These sample vectors can then be used to predict which potential samples that will or will not contribute to the final result, resulting in an importance metric for the BRDF.

3.1.3 Joint Importance

Joining the two importance metrics described in 3.1.1 and 3.1.2 into a single, joint bidirectional importance function is done by multiplying them together. It is often useful to incorporate the form factor G as well, since it will clamp the sample domain to the hemisphere and better follow the intensity distribution of the rendering equation over the potential samples.

Ideally, we would also like to use the visibility factor in the joint impor-tance function. However, this would require too much work since visibility testing is usually the most expensive part of the rendering equation. Us-ing approximated or precomputed visibility is not very helpful, since the effect of importance sampling would be hard to demonstrate, as visibility approximation errors are easily spotted.

As the final importance metric is constructed, we can compute the prob-ability density function p as in eq. 3.1 and the cumulative distribution func-tion P as in eq. 2.3. Using a random number generator ξ with an uniform distribution over (0, 1), we can send final samples according to:

(22)

Methods and Models 12

These samples are then used in the rendering equation to produce the pixel colors.

3.2

BRDF Models

There are many proposed BRDF models with various levels of physical cor-rectness and efficiency. The notation for the BRDF is fr(wi, wo), where wo

is the view vector and wi is the light sample vector. The normal is denoted

by N . In the importance sampling scheme, two random numbers ξ1 and

ξ2 that are uniformly distributed over (0, 1) will be warped into spherical

coordinates: elevation angle θ and azimuth angle φ. The light vector can then be derived from these coordinates and used for sampling.

In the following subsections, some of the most commonly used models in modern computer graphics applications will be described, together with their respective warping functions for importance sampling. Note that even though the Phong and Ward Anisotropic BRDF model have a diffuse com-ponent, their importance is concentrated in the specular lobe. As explained in [16], we can account for the diffuse component by sending samples ac-cording to the Lambertian importance in the ratio |kd|/|ks| where kd and

ks are the diffuse and specular surface colors, respectively. The coordinate

frames used for importance sampling of the following models are shown in figure 3.1.

3.2.1 Lambertian

The Lambertian BRDF model is used for rough surfaces with no specular highlights. Many real world materials are rough rather than shiny, so the model is often useful. The reflectance is constant – fully independent on incoming and outgoing vectors:

fr(wi, wo) =

kd

π. (3.3)

Here, kd is the surface color. The division by π is explained in 2.1.4. The

importance of this model is also constant over the hemisphere. We can get the sample vector wi through these spherical coordinates with respect to N :

(θi, φi) =  arccos(pξ1), 2πξ2  (3.4) 3.2.2 Phong

The Phong BRDF is an extension of the Lambertian BRDF. Here, spec-ularity is included, making this model view-dependent. The model is not

(23)

Methods and Models 13

physically accurate but can still give convincing visual results and is rela-tively fast to evaluate. The BRDF is defined as:

fr(wi, wo) =

kd

π + (wr· wi)

αks

π. (3.5)

Here, wr is the view vector wo reflected across N as shown in figure 2.1.

The diffuse and specular color is given by kd and ks, respectively. The

shininess parameter α controls the size of the specular highlight. The Phong importance sampling scheme, introduced in [16], yields the sample vector wi

through these spherical coordinates with respect to wr:

(θi, φi) =  arccos(α+1p ξ1), 2πξ2  (3.6) 3.2.3 Ward Anisotropic

Anisotropic surfaces have a visible direction of shininess. While specular highlights generated by the Phong model tend to be round in shape, the Ward Anisotropic model can generate stretched out highlights in dominant directions, controlled by the anisotropy parameters αS and αT. The BRDF

is defined as: fr(wi, wo) = kd π + ks 4παSαT p (N · wo)(N · wi) exp  −2 (wh·S αS ) 2+ (wh·T αT ) 2 1 + H · N  . (3.7) Here, the diffuse and specular colors are given by kdand ks, respectively. The

vectors S and T form a basis with N , while αS and αT are their respective

anisotropy parameters. The half-angle vector wh is depicted in figure 2.1

and is defined as:

wh=

(wi+ wo)

||wi+ wo||

. (3.8)

The importance sampling scheme for this model is explained in [17], yielding the half-angle vector (from which the sample vector wi can be derived)

through these spherical coordinates, with respect to N : φh= arctan α T αS tan(2πξ1)  (3.9) θh = arctan v u u t − log ξ2 cos φ h αS 2 +sin φh αT 2 (3.10)

(24)

Methods and Models 14 N T SN N θ φ i i wi T Sr r wr θ φ i i wi N T SN N θ φ h h wh

Figure 3.1: Coordinate frames for BRDF importance sampling of the Lam-bertian, Phong and Ward Anisotropic models.

3.3

Lightcuts

In [12], Walter et al. presents a method for constructing a piecewise con-stant approximation of the lighting, called lightcuts. The method starts by distributing an initial set of 2N sample points uniformly over the domain (e.g. the sphere for spherical environment lighting or the scene geometry for local lighting with indirect illumination) in a pre-processing stage. These unstructured sample points can be used in the rendering equation as point lights, as suggested in [8]. A global light tree is then constructed, which hierarchically partitions the lighting samples. This tree is a complete binary tree where the leaf values are the values of the light samples and the inter-nal nodes are aggregated clusters. Useful data to store in this structure is the light source color, position and normal. A cut through the light tree is defined as a set of nodes such that every path from the root to a leaf will contain exactly one node of the cut, as shown in figure 3.2.

In [9], the lightcut is selected based on the aggregated luminance of the internal nodes. This will make the cut dig deeper into the tree where the light samples are very bright, similar to importance sampling based on luminance (3.1.1). Up to 215 light samples are used to construct the light tree and its cut dynamically in real-time, with a fixed cut size of 1024 nodes.

3.4

Light Sources

In the following, the difference between distant and local sources is ex-plained, together with a description on how a light tree can be built upon each of them.

(25)

Methods and Models 15 0.8 0.7 0.8 2.3 0.2 1.5 0.6

Figure 3.2: Example of a cut through a tree with aggregated values.

3.4.1 Distant Light

As explained in 2.1.3, it is possible to capture the environment lighting in a real-world location and map it onto a shape. Uniformly spread samples on the unit sphere can then be used to build a light tree. This will model the light as distant1 point lights, making the position of a sample directly usable as the light vector of the BRDF. A dynamic environment map can efficiently be re-sampled onto the leaves, using the leaf positions as sample directions. The internal nodes consists of a sum of its children’s luminance, and their normalized averaged position.

3.4.2 Local Light

Local light sources are close to (or within) the scene and thus have a different direction to each point of the geometry. This difference is taken care of using the form factor, which is a part of the rendering equation described in 2.1.1. This means that we need to aggregate the indirect light normals, along with the positions and luminance, into the tree. First, sample points are uniformly distributed over the geometry of the scene, similar to environment lighting where the samples are spread onto the unit sphere. Then, each sample point will receive direct illumination of a local light source, such as a spotlight. This can be compared to the environment map sampling in 3.4.1. The internal nodes will consist of a sum of their children’s luminance, the average position and their normalized average normal. The tree is then used for rendering with one bounce of indirect illumination.

The local, direct illumination light source can be modeled in different ways. One common model is the point light, which is omnidirectional – it shines of equal intensity in all directions around it. This results in a relatively low frequency indirect illumination function, with no significant peaks in the importance function for luminance. To better show the effect of importance sampling, a directed light model can be used, such as the spotlight which

1

A distant light is imagined to be shining from infinitely far away, having the same direction vector to all points of the geometry.

(26)

Methods and Models 16

shines in a specified direction. The spotlight defines a cone-shaped volume with the cone tip located at the light source position. The volume boundary has a quadratic falloff, leaving a realistic looking penumbra2 where it hits

the scene geometry. Another more dynamic, directed light source is the projective light source, which like a real-world projector projects an image onto the scene geometry. In this case, a HDR image is naturally preferred since it can make the importance function high frequent.

2

(27)

Chapter 4

Implementation

In this chapter, the methods and models described in chapter 3 will be further discussed and modified to work in a combined, practical way. The complete implementation is presented, from the user interface to the ren-dered image. Finally, some techniques of increasing the run-time efficiency are described. It is highly recommended for the reader to fully understand the concepts of the previous chapters before continuing.

4.1

Application Environment

Recent work published by the Computer Graphics Research Group at the University of Massachusetts (UMass) [8, 9] uses an unoptimized ray tracer for precomputation and a separate application for the final real-time ren-dering, programmed for the Graphics Processing Unit (GPU). When im-plementing this thesis, most work was put into rewriting the ray tracer to suit the objectives of the thesis. Some work was also done to connect the real-time application to the ray tracer, making it useful as a Graphical User Interface (GUI). Both applications are written in C++. The real-time appli-cation uses OpenGL and OpenGL Shading Language (GLSL) to display and handle graphics. The development environment was Microsoft Visual Stu-dio 2005. Using the Intel Compiler 9, some Intel-specific intrinsic functions were used for speedup [10].

4.2

The Importance Function

This section describes the steps on how the final importance function Γ (de-scribed in 3.1) is created and used. The first step is to create the light cut, which will act as a guide for the importance sampling. The importance func-tion is then defined on the cut, as the multiplicafunc-tion of the node luminance with the BRDF importance metric, described in 4.2.2, and the form factor, introduced in 2.1.

(28)

Implementation 18

Note that the node luminance is aggregated from the leaves belonging to each node. This turns out to give an unbiased result, since large clusters should be given more samples if the average lighting per cluster would be constant.

The following subsections will further describe the stages involved.

4.2.1 Generating the Light Cut

As described in 3.3, generating the light cut based on the luminance of the nodes is similar to luminance based importance sampling since high intensity light sources will be given more detail. However, when using a ”real” importance function, this similarity becomes redundant. Instead, the light cut generation is rewritten to be error based, much like the visibility cut generation in [8].

The initial light cut consists only of the root node. Then, the cut node that holds the highest cluster variance will be replaced by its two children iteratively until the desired cut size is present. Consequently, low frequency areas will not be subdivided as much as high frequency areas, making the cut suitable for all frequency lighting environments.

4.2.2 BRDF Importance Sampling

Since the light cut represents a clustering of the potential light samples, the BRDF could be directly evaluated per cut node to yield a BRDF importance metric. However, this is not safe since the average cluster direction might be below the horizon, even though some samples are above it. Secondly, it is not an efficient strategy, especially for large cut sizes. Instead, a small number of samples can be sent using importance sampling of the BRDF.

The BRDF importance sampling schemes described in 3.2 gives a sample vector that follows the distribution of the current BRDF. In order to know which cut nodes this vector hits, a Bounding Volume Hierarchy (BVH) is created in which each cut node holds an axis aligned bounding box of its cluster samples. An efficient ray-box intersection algorithm [19] is then used to test the sample vector against the cut boxes, which increases individual counters for each hit.

After a total number of BRDF samples Ns is sent, the final number of

hit points Nsk per node k, is used to build the BRDF importance metric. As described in 3.2, it is common to generate sample vectors to cover both the diffuse and specular components of the BRDF. However, covering the diffuse part requires many more samples since the importance is constant over the whole hemisphere. Instead, each cut node is checked for visibility over the horizon, using the dot product between N and the normalized direction from the surface point to each corner of the cut node bounding box. As soon as one corner point is verified to be above the horizon, we

(29)

Implementation 19

know that the cluster will contribute to the diffuse part of the BRDF. Using this strategy, the diffuse part of the BRDF importance sampling can be removed. Then, just a few samples1 need to be generated to cover for the

specular importance. This is because the specular sample vectors will have similar directions, depending on the shininess factor of the BRDF. For the Lambertian BRDF, which has no specular component, no samples are sent – the box visibility checking is sufficient.

In order to construct an importance metric, we need to estimate the BRDF over the cluster using the information available: the number of spec-ular hit points Nsk and the luminance of the specular and diffuse surface colors |ks| and |kd|.

In the following, fs represents the specular component of the BRDF

(excluding ks). First, the average fs in a cluster k is given by:

fsk = 1 |Ωk| Z Ωk fs, (4.1)

where |Ωk| is the solid angle subtended by the cluster, given by:

|Ωk| = Akcos θi

r2 . (4.2)

Here, Ak is the cluster area, θi is the angle between LN and −wi (zero in

distant environment lighting) and r is the distance from Lx to the surface

point x. The cluster integral of fscan be evaluated as Nsktimes the average

area per sample. This is because each importance based sample represents the same area under the function graph – samples are naturally spread more densely where the function value is high.

Z Ωk fs= Nsk 1 Ns Z Ω fs = Nsk Ns (4.3) As in the above equation, the average area per sample is given by the full hemispherical integral2 of fs divided by Ns, the total number of BRDF

samples sent in the hemisphere. Combining equations 4.1, 4.2 and 4.3, we get: fsk = r2Nk s Akcos θiNs . (4.4)

The estimated BRDF in the cluster, which can be used as the BRDF im-portance metric, is then defined as:

Γfr = |ks|fsk+ |kd|. (4.5)

132 specular samples are used in this thesis. 2

(30)

Implementation 20

4.2.3 Pseudo Random Numbers

A random number generator is needed, as described in 3.1.3 and 3.2. How-ever, in most simulation applications a pseudo random number generator is used for efficiency. These generators produce a sequence of numbers that appear to be random but return periodically. This thesis uses the Mersanne Twister algorithm [18], since it is faster3 and has a longer period than the C++ standard pseudo random number generator.

4.3

Rendering Pipeline

This section describes the steps of the rendering pipeline, from the user interaction to the final rendered image.

4.3.1 User Interaction

In the real-time rendering application, also used in [9], the user can control the viewpoint and lighting environment of the scene. Each object has ed-itable material properties, including normal and specular mapping4. The global light cut is generated per frame. In the GUI, the user can also select the number of samples to take in the importance sampler, which is called by the push of a button.

For a smooth camera movement across multiple frames, an automatic camera positioning scheme is implemented so that the user does not need to re-adjust the camera between each frame. The camera moves along a parametric ellipse drawn on a sphere, while having a constant focus point in the scene. This can be used to create a short movie instead of single frames.

4.3.2 Data Flow

As the importance sampler is called, several data sets are passed to the rewritten ray tracer application. First, a deferred shading buffer is output, containing the per-pixel position, normal and parameters to be used in the BRDF. Then the complete light tree is exported, along with the light cut and each node’s bounding box (for use in the BRDF importance sampling). Using this data, the importance function Γ is built, resulting in an im-portance value for each cut node, per pixel5. This is used to build the probability density function p and the cumulative distribution function P as described in 2.2.1.

3Based on experiments.

4

A per-pixel rendering effect in which parameters of the BRDF is modulated by a function or an image texture.

5

(31)

Implementation 21

4.3.3 Final Sampling

In contrast to traditional Monte Carlo methods, the importance function is not defined directly on the sample domain but on the cluster nodes. As P is defined per node, it is piecewise constant over the samples, meaning that each sample point has an equal probability of being picked in its cluster. This is not a problem for a cut size of 512 and above, since high frequency light areas will have small sized clusters due to the nature of the light cut construction.

For as many times as the user chose in the GUI, final samples are sent through the cut nodes to the leafs. First, using eq. 3.2, a cut node is chosen. The random number generator ξ is then reused to sample a leaf within this cluster. The leaf sample is tested for visibility using an un-optimized ray tracer where the scene geometry is represented in a BVH. If the shadow ray, going from the current position to the leaf light source, is blocked by any geometry, the leaf will not contribute to the pixel color and is simply discarded. If the ray is not blocked, the rendering equation will be evaluated, resulting in an output color for the current pixel.

4.3.4 Visualization of Sample Distribution

In order to better understand how the samples are distributed when using bidirectional importance sampling in contrast to using single-factor based importance sampling, a visualization application was created. For a chosen pixel, the set of selected samples are output together with the importance function value for each potential light sample (constant within light cut clusters). The visualization application can then show the light samples at their positions, colored in gray scale with an intensity proportional to their importance value. Selected samples are colored in red to distinct them from the other samples. Examples of visualizations can be found in figure 5.6.

4.4

Parallelism

This thesis is implemented on the Central Processing Unit (CPU), leaving the GPU idle most of the time. The GPU is only used in the pre-processing stages, i.e. for the GUI and the deferred shading. Many of the methods in the rendering pipeline are highly suitable for the GPU because of its high ca-pacity of parallel floating point operations. However, some methods (i.e the ray tracer) are much harder to implement in current GPU frameworks than on the CPU side, making implementation work cumbersome and relatively inefficient.

Even though the objectives of this thesis do not include an optimized implementation of the proposed method, some techniques were used to speed things up a bit.

(32)

Implementation 22

4.4.1 Multithreading

With multiple CPU cores and a separable task, an application can run two or more subtasks simultaneously using threads. In this thesis, each pixel is an independent job, making the use of threads suitable. The output image is divided into several parts, containing 32x32 pixels each. Each core of the CPU is then assigned a thread which picks a free block and starts processing it, pixel by pixel. This is done iteratively, until all parts of the image are rendered.

4.4.2 Streaming SIMD Extensions

Most parts of the rendering equation involves vector math, since all posi-tions, directions and normals are defined in the three-dimensional Cartesian coordinate system, and the colors are defined in the RGB color space. Vec-tor math is common in many simulation applications, which is why there is hardware support for it.

Singel Instruction, Multiple Data (SIMD) is an extension to a micropro-cessor which allows for parallel data operations. This thesis uses a C++ library which is designed for Intel’s Streaming SIMD Extensions, SSE2 [10]. One example of the advantage of SIMD compared to Single Instruction, Sin-gle Data (SISD) is the elementwise multiplication of two three-dimensional vectors. In SISD, this would require three operations – one for each multi-plication – but in SIMD the same result is given using one single operation. Data fetching and transfer also runs faster because of this, since the vector elements do not need to be extracted separately.

(33)

Chapter 5

Results

This chapter presents the results obtained by implementing the chosen meth-ods, as described in chapter 4. A set of test scenes are used to show the purpose of bidirectional importance sampling. The resulting images are shown in this chapter along with brief comments, which are extended into the next chapter.

5.1

Test Environment

The rendering times presented in 5.4 are reported from a computer with the following relevant specifications:

• CPU: Intel Xeon Quad-Core 2.0 Ghz • GPU: NVIDIA GeForce 8800 GTS

• Operating system: Microsoft Windows XP SP1

5.2

Ground Truth

For visual comparison, a ground truth image can be generated. In this thesis, 215 light sources act as potential samples in the Monte Carlo rendering. The ground truth image is rendered using all these light sources exactly once – instead of using a Monte Carlo method they are simply used in the rendering equation one after the other. Even though there is no overhead to pick the ”samples”, this rendering takes a significantly longer time1 than

an importance sampling pass. Note that the ground truth renderer uses the same un-optimized ray tracer as the importance sampler, making it slower than it could be but useful for comparison.

1

Up to two hours for the test scenes used.

(34)

Results 24

5.3

Test Scenes

To show the advantages of bidirectional importance sampling compared to importance sampling purely based on luminance or BRDFs, and how it can be used with local lighting using the method proposed in this thesis, several test scenes have been constructed:

• Hebe: A scene for distant environmental lighting with the statue of Hebe on a floor. Both the statue and the floor have a shiny surface using the Phong BRDF. The HDR probe has a relatively low frequency lighting and is captured in the Pisa Courtyard, Pisa.

• Car: A scene for distant environmental lighting with a car on a floor. The car parts have the Phong BRDF while the floor has a Lambertian BRDF. The HDR probe used is captured in the Uffizi Gallery, Florence with a low frequency lighting.

• Box: A scene for local lighting with indirect illumination. The ge-ometry consists of a sphere and a teapot inside of a chamfer box. A spotlight is casting direct light on the right wall, which shines indirect illumination on the rest of the scene. The box walls have a Lamber-tian BRDF. The teapot and the sphere use shiny Phong and Ward Anisotropic BRDFs, respectively.

• Plate: A scene for local lighting with indirect illumination. A shiny plate with a Ward Anisotropic BRDF is placed on the floor of a shiny box that uses the Phong BRDF. A projective light source shines a HDR image (captured at the Pisa Courtyard, Pisa) onto the back wall, which shines indirect illumination on the rest of the scene. The HDR image is intentionally flipped upside down to get the high intensity light of the sky near the floor.

The ground truth images for these test scenes, along with the result of the bidirectional importance sampling, can be found in figure 5.1.

Scene Rendering Times (seconds)

Geometry Type # Faces # Pixels Joint Luminance BRDF

Hebe Env 130k 104.5k 13.3 6.1 13.8

Car Env 30k 146.2k 23.4 11.3 24.9

Box Local 20k 307.2k 24.5 16.3 26.4

Plate Local 204 307.2k 25.5 10.3 27.5

(35)

Results 25

5.4

Performance

This section presents the performance of the implemented bidirectional im-portance sampler. In table 5.1, the rendering times for each scene are shown, using 128 samples per pixel and 32 specular BRDF samples for the bidirec-tional and BRDF based importance sampler.

Using the same number of samples, the bidirectional importance func-tion naturally takes longer time to construct than an importance funcfunc-tion purely based on either luminance or the BRDF, since it requires more pro-cessing. For a fair comparison, the number of samples for the single-factor importance samplers are increased until the rendering times are the same as for the bidirectional importance sampler. However, even though the single-factor importance samplers are given the same time and more samples, the bidirectional importance sampler outperforms them in visual quality of the rendered image. This is visible in figures 5.2 to 5.5, where the number of samples per pixel is given per rendered image. These figures show the result of using bidirectional importance sampling (Joint), luminance based impor-tance sampling (Lum) and BRDF based imporimpor-tance sampling (BRDF).

As shown in figure 5.2, with a fairly low frequency lighting environment, the Hebe scene works well for bidirectional and BRDF-based importance sampling but not for luminance based importance sampling. From figure 5.3 the same conclusion can be drawn for the car scene, although some uniform noise can be seen with the BRDF-based importance sampling. For the box scene shown in figure 5.4, the BRDF-based importance sampler performs poorly since the lighting is high frequent. The plate scene is a difficult case with both high frequent lighting and BRDFs. We can see in figure 5.5 that the bidirectional importance sampler performs well, while the BRDF-based importance sampler breaks down and the luminance-based importance samplers is catching up slowly.

5.4.1 Distribution of Samples

As described in 4.3.4, a visualization application can for a selected pixel show how the selected samples were distributed. This gives a better under-standing on how the distribution changes between the different approaches of importance sampling: bidirectional or single-factor based. A simple plane with the Ward Anisotropic BRDF was rendered with distant, direct envi-ronmental lighting from the HDR Probe captured in Grace Cathedral, San Francisco. The resulting distribution of samples for the center pixel are shown in 5.6, together with a visualization of the light cut bounding boxes.

(36)

Results 26

(a) Hebe – 128 samples (b) Hebe Reference

(c) Car – 128 samples (d) Car Reference

(e) Box – 128 samples (f) Box Reference

(g) Plate – 128 samples (h) Plate Reference

(37)

Results 27

(a) Joint 128 (b) BRDF 128 (c) Lum 128 (d) Lum 300

Figure 5.2: Comparison – Hebe

(a) Joint 128 (b) BRDF 128 (c) Lum 128 (d) Lum 280

Figure 5.3: Comparison – Car

(a) Joint 128 (b) BRDF 128 (c) Lum 128 (d) Lum 210

Figure 5.4: Comparison – Box

(a) Joint 128 (b) BRDF 128 (c) Lum 128 (d) Lum 320

(38)

Results 28

(a) Luminance only (b) BRDF only

(c) Bidirectional (d) Bounding boxes

Figure 5.6: Visualization of sample distribution. Selected samples are high-lighted in red. In (d), the cut node bounding boxes are shown.

(39)

Chapter 6

Discussion

This final chapter of the thesis, will discuss the advantages and downsides of the implementation and the proposed methods. Moreover, related work will be presented in relation to this thesis. Finally some suggestions for future work are given.

6.1

Conclusion

The implemented solution to the problem description of this thesis clearly demonstrates the advantages of bidirectional importance sampling, as seen in chapter 5. Without any serious effort put in optimization, the application still renders high quality images in an acceptable time frame. It is also shown that the method works for both distant environmental lighting and local lighting with indirect illumination, a feature that has not been available in previous importance sampling work.

In other work within bidirectional importance sampling, such as [6], the importance function can be generated much faster than in this thesis. This is because of the common approach to parametrize the lighting and use 2D image functions to rapidly construct the importance function. How-ever, since this requires a structured set of light samples, it cannot be done with indirect illumination since the sample points are unstructured in those scenarios.

6.1.1 Noise

The images produced with the importance sampler, or any other Monte Carlo method, tend to be a bit noisy with a low number of samples. Even if the bidirectional method helps, there is still some noise left in the output images. This is often caused by the random number generator, since the final light samples that are picked can differ across neighboring pixels. A solution to this is to use the Quasi-Monte Carlo approach, which uses a fixed

(40)

Discussion 30

number sequence that is much more static than the common pseudo random number generators. One common sequence for this purpose is the Halton sequence [20]. Given an integer counter (i.e. 1 for the first sample, 2 for the second etc.), it mirrors the number over the decimal place so that 1 becomes 0.1 and so on. Using another prime number base can increase the appeared randomness; if base 2 is used, the sequence 1, 2, 3 would be translated to: 0.1, 0.25, 0.75.

This fixed numbering system gives a smoother result since the same light sources will be picked across neighboring pixels. However, it is not correct in a statistical sense and is therefore not used in this thesis.

More samples will naturally reduce the noise. It also helps to supersam-ple, i.e. render the image in a higher resolution and then scale it down using for example bi-cubic interpolation.

6.2

Related Work

There are many proposed methods within importance sampling in computer graphics [4, 5, 6, 7, 15, 21]. However, most of them only deal with environ-ment mapping where samples are taken on the hemisphere. This thesis presents a method that is also useful in local lighting scenes where the po-tential samples are placed on the scene geometry itself to allow for indirect illumination.

6.3

Future Work

The proposed method of using a light cut as a guide for importance sampling can be useful in other situations than the one implemented for this thesis. For example, it could be useful in renderings with subsurface scattering, which includes an extension of the BRDF to handle light interaction within translucent surfaces. In fact, the general idea of the tree and its cut guiding an importance function could be used for any Monte Carlo scenario, not only within computer graphics.

As for the implementation, a lot of work could be done to speed up the execution of the pipeline. The most obvious strategy for this is to transport the whole pipeline to the GPU. A GPU-based rendering system using importance sampling is presented in [21]. Unfortunately, they do not incorporate the important visibility factor of the rendering equation and they are also limited to distant environmental lighting.

In 2007, NVIDIA released CUDA, a platform for general purpose pro-gramming of the GPU. CUDA and similar platforms makes it easier to implement arbitrary algorithms such as ray tracing on the GPU, as seen in [22]. However, the Computer Research Graphics Group at UMass had no available CUDA modules that could be used to solve the problem description

(41)

Discussion 31

of this thesis. Even with the CUDA platform available, it is the author’s opinion that a porting of this work to the GPU would suffice for another thesis.

On the CPU side, a more optimized ray tracer could increase the effi-ciency of the shadow rays being sent. The ray tracer used in this thesis was based on an un-optimized ray tracer from [8, 9]. Using a kd-tree instead of a BVH as an acceleration structure would probably be a good start, since it would require less ray-plane intersection tests.

(42)

Bibliography

[1] P. Debevec and J. Malik. Recovering High Dynamic Range Radiance Maps from Photographs. Proceedings of the 24th annual conference on Computer graphics and interactive techniques. ACM SIGGRAPH, 1997. [2] J. Kajiya. The Rendering Equation. Proceedings of the 13th annual conference on Computer graphics and interactive techniques. ACM SIG-GRAPH, 1986.

[3] E. Veach. Robust Monte Carlo Methods for Light Transport Simulation. Ph.D. dissertation. Stanford University, 1997.

[4] T. Kollig and A. Keller. Efficient Illumination by High Dynamic Range Images. Proceedings of the 14th Eurographics workshop on Rendering. ACM, 2003.

[5] V. Ostromoukhov, C. Donohue and P. Jodoin. Fast Hierarchical Im-portance Sampling with Blue Noise Properties. ACM Transactions on Graphics. ACM, 2004.

[6] P. Clarberg, W. Jarosz, T. Akenine-M¨oller and H. Wann Jensen. Wavelet Importance Sampling: Efficiently Evaluating Products of Complex Func-tions. ACM Transactions on Graphics. ACM, 2005.

[7] D. Burke, A. Ghosh and W. Heidrich. Bidirectional Importance Sam-pling for Illumination From Environment Maps. ACM SIGGRAPH 2004 Sketches. ACM, 2004.

[8] O. Akerlund, M. Unger and R. Wang. Precomputed Visibility Cuts for Interactive Relighting with Dynamic BRDFs. 15th Pacific Conference on Computer Graphics and Applications. IEEE Computer Society, 2007. [9] E. Cheslack-Postava, R. Wang, O. Akerlund and F. Pellacini. Fast, Real-istic Lighting and Material Design using Nonlinear Cut Approximation. UMass Technical Report. University of Massachusetts, 2007.

[10] Z. Devir and R. Zohar. Optimized Matrix Library for use with the Intel PentiumR 4 Processor’s Streaming SIMD Extensions (SSE2).R

Intel Developer Services. Intel, 2003. 32

(43)

BIBLIOGRAPHY 33

[11] N. Metropolis and S. Ulam. The Monte Carlo Method. Journal of the American Statistical Association, Vol. 44, No. 247. American Statistical Association, 1949.

[12] B. Walter, S. Fernandez, A. Arbree, K. Bala, M. Donikian and D. Greenberg. Lightcuts: A Scalable Approach to Illumination. The 32nd International Conference on Computer Graphics and Interactive Tech-niques. ACM SIGGRAPH, 2005.

[13] M. Deering, S. Winner, B. Schediwy, C. Duffy and N. Hunt. The Tri-angle Processor and Normal Vector Shader: a VLSI System for High Performance Graphics. Proceedings of the 15th annual conference on Computer graphics and interactive techniques. ACM SIGGRAPH, 1988. [14] M. Stone. A Field Guide to Digital Color. A K Peters, Ltd., 2003. [15] J. Lawrence, S. Rusinkiewicz and R. Ramamoorthi. Efficient BRDF

Importance Sampling Using A Factored Representation. International Conference on Computer Graphics and Interactive Techniques. ACM SIGGRAPH, 2004.

[16] E. Lafortune and Y. Willems. Using the Modified Phong Reflectance Model for Physically Based Rendering. Technical Report, CW 197. De-partment of Computing Science, K.U. Leuven, 2004.

[17] B. Walter. Notes on the Ward BRDF. Technical Report PCG-05-06. Cornell Program of Computer Graphics, 2005.

[18] M. Matsumoto and T. Nishimura. Mersenne Twister: A 623-dimensionally Equidistributed Uniform Pseudo-random Number Gener-ator. ACM Transactions on Modeling and Computer Simulation. ACM, 1998.

[19] A. Williams, S. Barrus, R. Keith Morley and P. Shirley. An Efficient and Robust Ray-Box Intersection Algorithm. ACM SIGGRAPH 2005 Courses. ACM, 1995.

[20] W. Morokoff and R. Caflisch. Quasi-Random Sequences and Their Discrepancies. SIAM Journal on Scientific Computing, 1994.

[21] M. Colbert and J. Krivanek. GPU-based Importance Sampling. GPU Gems 3. Addison-Wesley Professional, 2007.

[22] K. Zhou, Q. Hou, R. Wang, B. Guo. Real-Time KD-Tree Construction on Graphics Hardware. Technical Report. Microsoft Research Asia, 2008.

References

Related documents

pedagogue should therefore not be seen as a representative for their native tongue, but just as any other pedagogue but with a special competence. The advantage that these two bi-

Data obtained allows for important insights in terms of understanding both the place of reputational concerns in the decision-making process in regards to opening a

The thesis is based on three empirical studies in which particular attention is paid to detailing the impact of geographic factors on various daily travel activities (paper I);

The thesis is based on three empirical studies in which particular attention is paid to detailing the impact of geographic factors on various daily travel activities (paper

The initial proposal distributions (model’s covariance matrix or limited bootstrap) appeared different from the true uncertainty, with degrees of freedom higher than the number

In order to determine which designed distribution that results in estimations with lowest variance and least computational time, the different distributions are

To compute the perceptual BRDF metric framework in equation 3.5 on BRDFs in MERL do- main, one must perform a change of variable which gives rise to a scale factor. The variable

The music college something more than the place for training music technical skills but the building by itself preform as instrument, as a platform for experimenting with