next up previous contents index
Next: Linear Interpolation of Attenuation Up: Ray Integration Previous: Ray Integration   Contents   Index


Linear Interpolation of Luminance

Of all the ray integration methods reviewed in Section 1.2, only the work of Williams and colleagues [105] (reviewed in Subsection 1.2.3) linearly interpolates the luminance. However, their solution is computationally intensive (see Appendix 1.3 for a sample implementation). In this chapter, I present ray integration methods that also linearly interpolate the luminance, but can do so with far less computation. I do this by grouping terms in the volume rendering integral.

Let us start with the general volume rendering integral, Equation 1.2.

$\displaystyle { I(D) = I_0 e^{-\int_0^D \tau (t) dt} + { \int_0^D L(s)\tau (s) e^{-\int_s^D \tau (t) dt} ds } }$ (53)

We plug in a linear form for $ L(s)$, $ L(s) =
{L}_{\,\mathrm{b}}(1-\frac{s}{D}) + {L}_{\,\mathrm{f}}\frac{s}{D}$, and then group terms containing the parameters for luminance ( $ {L}_{\,\mathrm{b}}$ and $ {L}_{\,\mathrm{f}}$) obtaining

$\displaystyle I(D) = { I_0 e^{-\int_0^D \tau (t) dt} + \int_0^D \left({L}_{\,\m...
... + {L}_{\,\mathrm{f}} \frac{s}{D}\right)\tau (s) e^{-\int_s^D \tau (t) dt} ds }$    

\begin{multline*}
I(D) = { I_0 e^{-\int_0^D \tau (t) dt}
+ {{L}_{\,\mathrm{b}...
...}} \int_0^D \frac{s}{D}\tau (s)
e^{-\int_s^D \tau (t) dt}} ds }
\end{multline*}

We can further resolve the integrals through integration by parts.

\begin{multline*}
I(D) = { I_0 e^{-\int_0^D \tau (t) dt}
+ {L}_{\,\mathrm{b}} ...
... - \int_0^D \frac{1}{D} e^{-\int_s^D \tau (t) dt} ds } \right) }
\end{multline*}

\begin{multline}
I(D) = { I_0 e^{-\int_0^D \tau (t) dt}
+ {L}_{\,\mathrm{b}} \...
... 1
- \frac{1}{D} \int_0^D e^{-\int_s^D \tau (t) dt} ds \right) }
\end{multline}

There is a significant amount of repetition of terms in Equation 1.2. We define the following two terms, each of which appear twice.

$\displaystyle \zeta_{D,\tau (t)}$ $\displaystyle \equiv e^{-\int_0^D \tau (t) dt} \index{zeta~($\zeta$)}\index{$\zeta$}$ (54)
$\displaystyle \Psi_{D,\tau (t)}$ $\displaystyle \equiv \frac{1}{D} \int_0^D e^{-\int_s^D \tau (t) dt} ds \index{Psi~($\Psi$)}\index{$\Psi$}$ (55)

Substituting Equations 1.3 and 1.4 into Equation 1.2 results in

$\displaystyle I(D) = { I_0 \zeta_{D,\tau (t)} + {L}_{\,\mathrm{b}} \left( \Psi_...
...D,\tau (t)} \right) + {L}_{\,\mathrm{f}} \left( 1 - \Psi_{D,\tau (t)} \right) }$ (56)

Given $ \zeta_{D,\tau (t)}$ and $ \Psi_{D,\tau (t)}$, Equation 1.5 is a simple enough form to be computed in real time on a graphics processor. The following sections discuss the computation of $ \zeta_{D,\tau (t)}$ and $ \Psi_{D,\tau (t)}$.


next up previous contents index
Next: Linear Interpolation of Attenuation Up: Ray Integration Previous: Ray Integration   Contents   Index
Kenneth D Moreland 2004-07-16