Graphics Reference
In-Depth Information
(a)
(b)
Figure 3.19. (a) Sphere example scene. (b) Top down view of one scan-line of the
volumetric intensity buffer.
Equation (3.5) shows how we calculate a new surface color for the transparent
shader:
SampledIntensity
VLBufferIntensity .
NewColor = OrgColor + VLBufferColor ยท
(3.5)
OrgColor is the original output color of the shader. VLBufferColor is the color
sampled from the volumetric light buffer, and its luminance is referred to as
VLBufferIntensity .The SampledIntensity variable refers to the intensity sampled
from the volume light intensity buffer as described earlier. The fraction of volu-
metric light that occludes the surface is calculated by dividing SampledIntensity
by VLBufferIntensity .The VLBufferColor is scaled by the fraction and added to
the original surface color.
3.7 Limitations
Due to the low depth resolution of our 3D lookup textures, the sampled scat-
tering amount and light intensity values aren't very accurate. Although we got
some good looking results from the current implementation, there are some lim-
itations and artifacts that should be mentioned. Most of them could be solved
by increasing the depth resolution of the 3D textures or using a different way to
store the values over depth as discussed in Section 3.8.1.
3.7.1 Scattering Amount Buffer
Artifacts can be seen when lights, especially at larger distances, pick up wrong
scattering amount values. When moving the camera back and forth through the
scene, the volume light intensity of certain lights could fade in and out because of
this. To keep these artifacts to a minimum, we only use the particles to roughly
define scattering for larger areas. We also make sure we render enough particles
Search WWH ::




Custom Search