In this section, we analyze the accuracy of the various methods for computing the volume rendering integral outlined in this dissertation. I measure the absolute deviation of the light intensity computed with each approximation from the true value of the associated model. Because the basic function of the receptors in the human eye is to measure light intensity, minimizing this deviation is important for good image quality. However, the human visual system is a complicated structure that can adapt well to changes in intensity, so the absolute deviation may not be proportional to the actual error perceived. We shall consider perceptive errors in the following section.
To quantify the error, I solve the volume rendering integral for a set of parameters offline using the numerical solving capabilities of Mathematica [108] and compare those to computations performed on the actual graphics card. I used a Quadro FX 3000 graphics card for the GPU calculations.12
The volume rendering integral with linearly varying properties relies on five parameters. Rather than present an exhaustive report of errors on all combinations of these parameters, I show the combinations where the error is the greatest. All the approximations reviewed or presented in this dissertation are correct when the luminance and attenuation parameters are constant, whereas the errors of these approximations are maximal when the color and attenuation are both changing rapidly.
![]() |
![]() |
![]() |
| (a) Average Luminance and Attenuation. | (b) Partial Pre-Integration. | (c) Linear Luminance and Attenuation. |
![]() |
![]() |
![]() |
| (a) Average Luminance and Attenuation. | (b) Partial Pre-Integration. | (c) Linear Luminance and Attenuation. |
![]() |
![]() |
![]() |
| (a) Average Luminance and Attenuation. | (b) Partial Pre-Integration. | (c) Linear Luminance and Attenuation. |
![]() |
![]() |
![]() |
| (a) Average Luminance and Attenuation. | (b) Partial Pre-Integration. | (c) Linear Luminance and Attenuation. |
For all ranges of ray segment length, Average Luminance and Attenuation has the poorest performance. Furthermore, the error gets larger with longer ray segments. As the segment length gets large, the maximum error approaches one-half of the full color range.
Partial Pre-Integration has consistently lower error overall. Furthermore, the error grows slowly with the length of the ray segment. Its accuracy is limited only by the quantization errors of its lookup table.
The accuracy of Linear Luminance and Attenuation from [105] is close to the precision of the 32-bit floating-point variables on which it is calculated. This accuracy is marginally higher than that of Partial Pre-Integration. However, visual discrepancies between the two methods are unlikely, and, as we saw in Section 1.1, the Linear Luminance and Attenuation method takes over ten times as long as Partial Pre-Integration.
![]() |
![]() |
![]() |
| (a) Average Luminance and Opacity. | (b) Linear Luminance, Average Opacity. | (c) Linear Luminance and Opacity Approx. |
![]() |
![]() |
![]() |
| (a) Average Luminance and Opacity. | (b) Linear Luminance, Average Opacity. | (c) Linear Luminance and Opacity Approx. |
![]() |
![]() |
![]() |
| (a) Average Luminance and Opacity. | (b) Linear Luminance, Average Opacity. | (c) Linear Luminance and Opacity Approx. |
The accuracy of Average Luminance and Opacity is poor. The accuracy of Linear Luminance, Average Opacity is no higher in the worst case. As before, the error gets larger with longer ray segments. The Linear Luminance and Opacity method improves the error by almost an order of magnitude.