Graphics Reference
In-Depth Information
accomplished by tracing rays through the volumes and adjusting the radiance of
the ray at each voxel boundary. The authors show how this can be done efficiently
using a depth buffer accumulation method.
3.3.6 Ray Marching
The method of traversing rays through a voxel grid is similar to a more direct
form of numerical integration along a path known as ray marching . Each ray
from the environment to the viewpoint is partitioned into small segments, and
the effects of scattering and absorption are computed separately on each segment.
At a particular segment, the in-scattering within the segment is computed and
added to the accumulated value carried in from the previous segment, attenuated
according to the length of the segment ( Figure 3.12 ) . In symbols,
e σ t Δ x
Attenuation between
segments N 1and N
L n 1
Radiance of
segment N 1
where L n is the accumulated (integrated) radiance carried out of segment N .The
process starts at the segment furthest from the viewpoint and sequentially follows
the ray. Upon completion, the last segment carries the final radiance, the approx-
imation to the volume rendering equation. Ray marching can be applied to media
with general scattering properties, while the volume radiosity method is limited to
isotropic scattering. The method also fits in well with surface ray tracing. It is also
well suited to hardware rendering. Various methods for improving the efficiency
have been developed.
The key to accuracy and efficiency in ray marching is the method of segment-
ing the ray. In some media, such as smoke and fog, the scattering varies greatly
L n
Radiance of
segment N
=
Sx n
In-scattering at
segment N
+
·
Segment
Segment
N
N −1
Δ x
Viewpoint
x
x n −1
n
L ( n
−1)
Figure 3.12 The ray marching technique partitions a ray into segments on which the properties of the
medium are assumed constant. The radiance is computed by “marching” the accumulated
radiance from each segment to the next.
 
 
Search WWH ::




Custom Search