Download presentation
Presentation is loading. Please wait.
Published byMerilyn King Modified over 9 years ago
1
Parallel MDOM for Rendering Participating Media Ajit Hakke Patil – Daniele Bernabei Charly Collin – Ke Chen – Sumanta Pattanaik Fabio Ganovelli
2
Our goal: rendering participating media Such a medium can: Absorb Scatter Emit light For example: Smoke Cloud Fire Marble
3
Our goal: rendering participating media Interaction between light and the medium is modeled through the Radiative Transfer Equation (RTE):
4
Related work RTE solvers mainly classified as: – Stochastic : Monte Carlo methods [Pattanaik et al. 1993, Jensen et al. 1998] – trace a number of random photon paths in the medium and follow their interaction to determine a solution for any given medium. Bidirectional path tracing [Lafortune et al. 1996, Pauly et. al. 2000] – extends the MC approach by tracing random paths starting from both light and view points. – Deterministic: Zonal Method [Rushmeier et. al. 1987, Silion 1995] – a radiosity-like solution for light transport in uniform scattering media. Sillion improves this method to include a hierarchical radiosity approach. DOM [Chandrasekhar 1960] – Employs spatial and angular discretization of the domain and solves RTE using an iterative method.
5
DOM Spatial and angular discretization of the domain. Each grid element captures the scattered light in a finite set of discrete ordinate directions. The arrows along the grid element boundaries represent one of many light propagation directions.
6
Related work
7
Other GPU based volumetric scattering methods: – Diffusion approximation based: Lattice Boltzmann solution. [Bernabei et. al] Works well for homogeneous media. – DOM based approaches: GPU port of Fattal’s LPM method [Gruson et. al] Cannot handle directional light sources as it is based on regular DOM.
8
MDOM – The Modified Discrete Ordinate Method (MDOM) is the computationally efficient version of the DOM where the final solution to radiative intensity field is broken into a direct (Idir) and an indirect component (Idif) Helps in overcoming the ray effect present in traditional DOM allows visualization of only the single scattering approximation Its deterministic and iterative nature makes it suitable for parallelization.
9
satisfies And its solution is expressed as Direct Component satisfies We use DOM to solve it: Where: Indirect Component
10
MDOM approach and challenges Our goal is to compute the source function terms (G m ) at each voxel for each DOM direction m. We do so in 2 steps, – the direct source contributions are added by ray marching light rays – And the indirect contributions are added by solving the indirect DOM eq. iteratively. Finally, for rendering we use the integral form of RTE. Challenges: – For high rendering quality results, DOM requires finer angular and spatial discretizations. So, the memory requirements for a DOM based solution are very high and often exceed the memory available on the GPU
11
Our method MDOM based parallel, scalable and interactive pipeline. Provide streaming mechanism for transferring data between the CPU and the GPU
12
Direct component computation
18
For big volumes, streaming is needed. This is done through 4 tables: Block request table Block dirty table Block index table Block memory pool
19
Direct component computation GPUCPU Write the scattering information for requested blocks March the rays and: Write an source update Request new blocks Sorts of the update tables Write the source information for requested blocks Update the source values Read the updated source values
20
Indirect component computation
21
We reduce the storage requirements of the DOM by detaching the propagation angular resolution from the storage angular resolution. Where With a phase function normalization factor, to maintain energy conservation:
22
Indirect component computation How do we update the source function G in each voxel? Incoming Outgoing The updated radiance inside a voxel is: At each voxel: – Determine radiance at each incoming face – Compute the outgoing radiance at each outgoing face – Compute the average radiance at the center of the voxel – Update the source function at the center of the voxel
23
Indirect component computation Outgoing radiance is a linear combination of incoming radiances: Similarly, the average radiance is: And the source is updated :
24
Indirect component computation Parallelization is done by carefully chosing the propagation directions Propagate all the directions in an octant simultaneously: “Wavefront propagation” Each scattering iteration consists of the propagation of eight wavefronts: one for each corner of the volume
25
Indirect component computation Parallelization is done by carefully chosing the propagation directions Propagate all the directions in an octant simultaneously: “Wavefront propagation” Each scattering iteration consists of the propagation of eight wavefronts: one for each corner of the volume image courtesy: https://parasol.tamu.edu/dsmft/research/sweeps/ https://parasol.tamu.edu/dsmft/research/sweeps/
26
Indirect component computation Streaming is achieved using a nested wavefront approach: Wavefront of blocks further decomposed into wavefront of voxels on the GPU. Use global interfaces for storing outgoing radiances at block boundaries Use shared memory on a GPU multiprocessor to store outgoing radiances for voxels not on block boundary
27
Visualization Volume ray marching Use the integral form of the RTE: I E will be substituted by the background color. Anti-aliasing using jittering and tri-linear interpolation. On-demand streaming is used, similar to the direct computation
28
Results Ground truth (several hours) Our method (68 secs) Diffusion method (10 FPS)
29
Results GPU LPM 996 propagation directions Our method 120 propagation directions
30
Results Multiple scattering Single scattering
31
Results
32
Thank you
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.