The requirements listed in the previous section have a number of implications on the choice of techniques that are useful. As hardware-accelerated techniques cannot be used, the choice of algorithms is limited to software algorithms. Shear-warp does not provide sufficient image quality, which basically reduces the choice to either a splatting or a raycasting approach. It has been shown that current splatting and raycasting approaches have distinct advantages and disadvantages. While splatting can efficiently skip empty space, raycasting performs better for high pixel content [32]. Considering the fact that the highest performance for splatting can only be reached if the graphics hardware is exploited for footprint rasterization and that raycasting is generally better suited for parallelization, the basic algorithm of our volume visualization system will be an image-order raycasting approach. The kind of datasets which will be primarily used with our system do not profit from perspective projection. Since orthogonal viewing allows many optimizations, our system will only support parallel projection. The system will support voxels of up to 12 bits, as this is the common format for medical datasets. Due to performance issues, the voxels have to be aligned to byte boundaries, which leaves 4 bits. These 4 bits will be used to store segmentation information, which allows up to 16 different objects. Gradients will not be pre-computed and stored in memory, as it is common practice. Instead, they will be computed on-the-fly during rendering. Gradients require a considerable amount of memory. Storing gradients as uncompressed single precision floating-point values would require bytes additional memory for every voxel. Even using gradient quantization, still requires at least 10 to 12 additional bits at each voxel for sufficient quality, which would double memory usage. Furthermore, using pre-computed gradients does not allow to quickly change the gradient estimation method at run-time without recomputing gradients for the entire dataset. Since demands for both high quality and interactive viewing exist, an effective scheme for automatic adaption is required. During classification and viewing parameter changes, the system has to transparently adapt rendering parameters to achieve interactive frame rates.