Rendering Realistic Cloud Effects for Computer Generated Films
Total Page:16
File Type:pdf, Size:1020Kb
Brigham Young University BYU ScholarsArchive Theses and Dissertations 2011-06-24 Rendering Realistic Cloud Effects for Computer Generated Films Cory A. Reimschussel Brigham Young University - Provo Follow this and additional works at: https://scholarsarchive.byu.edu/etd Part of the Computer Sciences Commons BYU ScholarsArchive Citation Reimschussel, Cory A., "Rendering Realistic Cloud Effects for Computer Generated Films" (2011). Theses and Dissertations. 2770. https://scholarsarchive.byu.edu/etd/2770 This Thesis is brought to you for free and open access by BYU ScholarsArchive. It has been accepted for inclusion in Theses and Dissertations by an authorized administrator of BYU ScholarsArchive. For more information, please contact [email protected], [email protected]. Rendering Realistic Cloud Effects for Computer Generated Production Films Cory Reimschussel A thesis submitted to the faculty of Brigham Young University in partial fulfillment of the requirements for the degree of Master of Science Michael Jones, Chair Parris Egbert Mark Clement Department of Computer Science Brigham Young University August 2011 Copyright © 2011 Cory Reimschussel All Rights Reserved ABSTRACT Rendering Realistic Cloud Effects for Computer Generated Production Films Cory Reimschussel Department of Computer Science, BYU Master of Science This work addresses the problem of rendering clouds. The task of rendering clouds is important to film and video game directors who want to use clouds to further the story or create a specific atmosphere for the audience. While there has been significant progress in this area, other solutions to this problem are inadequate because they focus on speed instead of accuracy, or focus only on a few specific properties of rendered clouds while ignoring others. Another common shortcoming with other methods is that they are not integrated into existing rendering pipelines. We propose a solution to this problem based on creating a point cloud to represent the cloud volume, then calculating light scattering events between the points. The key insight is blending isotropic and anisotropic scattering events to mimic realistic light scattering of anisotropic participating media. Rendered images are visually plausible representations of how light interacts with clouds. Keywords: clouds, rendering, Mie function, light scattering Table of Contents Table of Contents ........................................................................................................................... iii List of Tables ............................................................................................................................. iv List of Figures ............................................................................................................................. v Chapter 1: Introduction ................................................................................................................... 1 Contribution ................................................................................................................................ 3 Chapter 2: Related Work ................................................................................................................ 7 Modeling ..................................................................................................................................... 7 Animation ................................................................................................................................... 8 Rendering .................................................................................................................................... 9 Chapter 3: Methods ....................................................................................................................... 11 Features ..................................................................................................................................... 11 Data Structures .......................................................................................................................... 12 Point Cloud ........................................................................................................................... 13 Scattering Function ............................................................................................................... 14 Brickmap ............................................................................................................................... 15 Rendering Algorithm ................................................................................................................ 15 Generating the point cloud .................................................................................................... 16 Simulating light scattering .................................................................................................... 17 Main Function ................................................................................................................... 17 Worker Function ............................................................................................................... 20 Final Rendering ..................................................................................................................... 23 Chapter 4: Results ......................................................................................................................... 25 Chapter 5: Analysis / Discussion .................................................................................................. 30 Future Work .............................................................................................................................. 32 References ..................................................................................................................................... 34 Appendix: Implementation Details ............................................................................................... 36 iii List of Tables Table 1 Data Variables.................................................................................................................. 13 Table 2 C++ Executable Input and Output ................................................................................... 43 Table 3 Shader createPointCloud Input and Output ..................................................................... 44 Table 4 Shader readPointCloud Input and Output ........................................................................ 45 iv List of Figures Figure 1 Clouds rendered using our method ................................................................................... 1 Figure 2 Conceptual visualization of the Mie scattering function .................................................. 5 Figure 3 Mie scattering function plots .......................................................................................... 15 Figure 4 Steps in our cloud renderer ............................................................................................. 16 Figure 5 Creation and initialization of two points in a cloud. ...................................................... 17 Figure 6 Mie to Isotropic Scattering ............................................................................................. 19 Figure 7 Accumulation of light scattered from three points to a nearby point. ............................ 23 Figure 8 The values of after the scattering passes have completed. ........................................ 26 Figure 9 Renderings of the scattering process. ............................................................................. 27 Figure 10 Clouds rendered with different lighting colors ............................................................. 28 Figure 11 Clouds rendered with different features ....................................................................... 29 Figure 12 The different contributions to the bunny cloud rendered separately ............................ 31 Figure 13 Algorithm Setup ........................................................................................................... 37 Figure 14 rmanSSRenderPass settings.......................................................................................... 40 Figure 15 rmanSSDiffusePass settings ......................................................................................... 41 Figure 16 rmanSSMakeBrickmapPass settings ............................................................................ 41 Figure 17 readPointCloudSG settings ........................................................................................... 43 v Chapter 1: Introduction Figure 1 Clouds rendered using our method We address the problem of rending clouds. Clouds are difficult to render because they are composed of water vapor droplets which scatter light as the light passes through the volume of the cloud. The problem is even more difficult because water scatters light with different intensities in different directions, also known as anisotropy—and in some cases this anisotropy results in visually significant effects. Film directors use cloud effects to tell stories. Clouds can be used to quickly set the scene in a film or game. Directors use the ominous thunderhead, the glowing sunset or the lazy cumulous 1 floating through the summer sky to evoke a feeling in the audience. For live action film, a director might have to wait several days to shoot clouds in the right atmospheric conditions. CG film directors have the advantage