next up previous contents index
Next: Pre-Integration Up: Color Computations Previous: Linear Interpolation of Luminance   Contents   Index


Gaussian Attenuation

When performing scientific volume visualization, most systems simply use 1D transfer functions. That is, the volume defines a field of scalars in space, and the volume rendering feeds these scalars into a 1D transfer function that returns the luminance and attenuation to use in the volume. The previously reviewed color calculation methods reflect the use of 1D transfer functions.

However, Kniss, Kindlmann, and Hansen [46,47] show that using multidimensional transfer functions with vectors containing a scalar and its first and second derivatives is capable of providing useful renderings that cannot be performed with only 1D transfer functions. Furthermore, Kniss and colleagues [50] and Tzeng, Lum, and Ma [94] demonstrate that it is possible and useful to apply multidimensional transfer functions to vector data.

Kniss and colleagues [50] show how to build many useful multidimensional transfer functions using the Gaussian function (often known also as the normal distribution). Kniss defined the Gaussian transfer function of a vector of $ d$ dimensions as

$\displaystyle \mathrm{GTF}_{\vec{\mu},\mathrm{\mathbf{K}}}(\vec{v}) = \exp\left...
...mathrm{\mathbf{K}}^{\mathrm{T}} \mathrm{\mathbf{K}} (\vec{v}-\vec{\mu}) \right)$ (45)

where $ \vec{v}$ is the input vector, $ \vec{\mu}$ is mean of the distribution, and $ \mathrm{\mathbf{K}}$ is a rotational matrix. A traditional Gaussian function has a scaling term of $ 1/\left((2\pi)^{d/2}\vert\mathrm{\mathbf{K}}^{-1}\mathrm{\mathbf{K}}^{-\mathrm{T}}\vert\right)$, which scales the function such that the area under the curve is 1. However, this property is not useful for transfer functions and Kniss therefore drops it.

Kniss interpolates the attenuation as

$\displaystyle \tau (t) = \tau \mathrm{GTF}_{\vec{\mu},\mathrm{\mathbf{K}}}\left(\vec{v}_1 + t(\vec{v}_2 - \vec{v}_1)\right)$ (46)

Kniss then plugs Equation 1.30 into the volume rendering integral proposed by Max, Hanrahan, and Crawfis [64]. I also discuss this integral in Section 1.3.4. I give the equation for the integral, Equation 1.18, on page [*]. Plugging Equation 1.30 into Equation 1.18, we get

$\displaystyle I(D) = I_0 e^{-\tau D\int_0^1 \mathrm{GTF}_{\vec{\mu},\mathrm{\ma...
...athrm{\mathbf{K}}}\left(\vec{v}_1 + t(\vec{v}_2 - \vec{v}_1)\right) dt} \right)$ (47)

Kniss and colleagues [49] solve the integral

$\displaystyle \int_0^1 \mathrm{GTF}_{\vec{\mu},\mathrm{\mathbf{K}}}\left(\vec{v}_1 + t(\vec{v}_2 - \vec{v}_1)\right) dt$ (48)

The solution they give is

$\displaystyle \frac{\sqrt{\pi}}{2} \frac{S}{\Vert\vec{d}\Vert} \left(\mathrm{erf}(B) - \mathrm{erf}(A)\right)$ (49)

where

$\displaystyle A = \frac{\vec{d}\cdot\vec{v}'_1}{\Vert\vec{d}\Vert}, \qquad B = ...
...\vec{d}\Vert} = A + \Vert\vec{d}\Vert, \qquad S = e^{-\Vert\vec{v}'_1\Vert+A^2}$    

$\displaystyle \vec{d} = \vec{v}'_2 - \vec{v}'_1, \qquad \vec{v}'_1 = \mathrm{\m...
...c{v}_1-\vec{\mu}), \qquad \vec{v}'_2 = \mathrm{\mathbf{K}}(\vec{v}_2-\vec{\mu})$    

Once Equation 1.32 is computed (using Equation 1.33), computing the rest of Equation 1.31 is trivial. Of course, Equation 1.31 assumes a constant luminance. Kniss uses a weighted sum to simulate luminance interpolated on Gaussian curves; however, this approximation can lead to the same color bleeding demonstrated in Figure 1.12 on page [*].


next up previous contents index
Next: Pre-Integration Up: Color Computations Previous: Linear Interpolation of Luminance   Contents   Index
Kenneth D Moreland 2004-07-16