# 基于点缓存全局光照技术的研究

Abstract : As the development of animation industry, there are more and more requirements for the realistic rendering. Global illumination (GI) is an significant part of realistic rendering, and it has been focused by researchers for many years. Not only the lighting directly from the light sources but also the lighting reflected by other objects in the scene is required to be computed, so it's complicated to solve the GI problem that can be described as the rendering equation. Several algorithms can be used to solve this problem, such as Monte Carlo based ray tracing, photon mapping, many lights based approaches, point based global illumination and so on. This thesis is about Point Based Global Illumination (PBGI). PBGI is a popular rendering algorithm in movie and motion picture productions. This algorithm provides a diffuse global illumination solution by caching radiance in a mesh-less hierarchical data structure during a pre-process, while solving for the visibility over this cache, at rendering time, for each receiver, using a microbuffer, which is a localized depth and color buffer inspired from real time rendering environments. As a result, noise free ambient occlusion, indirect soft shadows and color bleeding effects are computed efficiently for high resolution image output and in a temporally coherent fashion. PBGI has attracted increasing attention nowadays because of its efficiency and noise free quality. However, there are still some problems, such as it can not simulation non-diffuse light transport, that makes it have limited applications. My thesis aims to solve these issues in PBGI and extend it to support more light transport path. Based on the spatial coherency, we propose a factorized solution of PBGI to make it more efficient by reusing the tree cut and the microbuffers. In PBGI, each receiver traverse the point cloud tree independently, but we observe that the similar receivers have the similar tree cut, that means there is redundancy during the traversal process. A similar model of the receivers is proposed at first, and then it is used to cluster the receivers. The point cloud tree is traversed for a cluster instead of for each receiver, and a cluster tree cut is obtained. The far nodes in the cluster tree cut are shared directly by all the receivers in this cluster without further traversing, while the near nodes are traversed for each receiver independently. A cluster microbuffer is proposed to solve for the visibility of the far nodes, while the receiver specific microbuffer is used to solve for the visibility of the near nodes and the refined nodes. The final microbuffer by combining these two microbuffers is convolved with the bidirectional reflection distribution funcion (BRDF) of the receiver to get the final indirect illumination. Our algorithm offers a significant rendering speed-up for a negligible and controllable approximation error and it inherits the temporal coherence of PBGI. We also propose a wavelet based solution to PBGI to compute the non-diffuse light transport.As only the diffuse lighting of the point is baked in PBGI, it can not simulate the non-diffuse light transport, such as caustics. PBGI tree nodes uses spherical harmonics (SH) to represent outgoing radiance. Unfortunately, even using a larger number of coefficients, SH are not able to capture high frequencies efficiently, which translates in our case to non-diffuse reflections or refractions. Consequently, caustics stemming from metals, plastics, glass and other reflective or refractive materials are not handled with classical PBGI frameworks. Even when ignoring the performance issue induced by a larger number of SH coefficients, ringing artifacts quickly appear. Compared with SH, haar wavelets support non-linear approximation, so the the representation is compact. So we propose to represent the outgoing radiance of the non-diffuse point with wavelet coefficients by sampling according to a cube map firstly and wavelet transforming each face of this cube map. The coefficients are further encoded hierarchically in the point cloud tree to decrease the memory usage, that means the coefficients themselves are wavelet transformed, generating two kinds of coefficients: node approximation coefficients and node detail coefficients. The node approximation coefficients are stored for the low level nodes (close to the root), and the node detail coefficients are stored for the high level nodes. To avoid storing the entire list of nodes vectors at any intermediate state, we compute this compressed representation during a post-order depth-first traversal of the PBGI tree. Further more, according to the artifacts problem that appears when there is high frequency BRDF or lighting in the scene, we propose to use the importance driven microbuffer. The importance function that includes the incoming lighting importance and the BRDF importance is used to drive the microbuffer, that means when one pixel has high frequency information (lighting or BRDF), it will be subdivided. Finally, our rendering algorithm allows to handle non-diffuse light transport, reproducing caustics with a similar quality to bidirectional path tracing for only a fraction of the computation time, with an intuitive control on the approximation error. Based on the previous two algorithms, we propose a view-tree based approach to compute the multiple bounces reflection. In PBGI, the indirect illumination of each point in the point cloud needs to be evaluated by traversing the point cloud tree and splatting the nodes in the tree-cut, so each point is treated a receiver. We propose to organize all the receivers into a view tree, and the point cloud tree is traversed for the view tree instead of for each receiver. The view tree approach is based on the observation some nodes in the point cloud tree contribute similarly to all the points in other nodes, that means we don¡¯t need to traverse for these points respectively but only for the node that contains these points. This is an extension to the factorized PGBI from one level (cluster) to a hierarchical structure (tree). Another problem for multiple bounces computation is how to evaluate the outgoing radiance from the incoming radiance efficiently. As the outgoing radiance needs to be computed for each sampling direction, the time complexity is $O(n^4)$, where $n\times n$ represents the resolution of the hemisphere or square according to which the incoming direction and the outgoing direction are sampled. The wavelet representation is sparse that improves the performance, so we decide to wavelet transform the incoming radiance and the BRDF and multiply them in the frequency domain. We propose a novel outgoing radiance computation model by doing product between 4D BRDF wavelet coefficients and 2D incoming radiance wavelet coefficients. Finally, the point cloud tree with multiple bounces reflection stored is used to offer a preview rendering of the scene by utilizing the GPU computing efficiently. We can support scenes that include diffuse materials and all frequency glossy materials with a changing camera. My thesis improves and extends the PGBI algorithm so that it can be used in more applications.
Keywords :
Document type :
Theses
Domain :

https://hal.inria.fr/tel-01252659
Contributor : Beibei Wang <>
Submitted on : Thursday, January 7, 2016 - 8:21:00 PM
Last modification on : Wednesday, January 30, 2019 - 2:42:02 PM
Long-term archiving on: : Thursday, November 10, 2016 - 9:48:50 PM

### Identifiers

• HAL Id : tel-01252659, version 1

### Citation

Beibei Wang. 基于点缓存全局光照技术的研究. Computer Science [cs]. Shandong University, 2014. Chinese. ⟨tel-01252659⟩

Record views