A half-skewed octree for volume ray casting
A hierarchical representation formed by an octree for a volume ray casting is a well-known data structure to skip over transparent regions requiring little preprocessing and storage. However, it accompanies unnecessary comparison and level shift between octants. We propose a new data structure named half-skewed octree, which is an auxiliary octree to support the conventional octree. In preprocessing step, a half-skewed octree selects eight different child octants in each generation step compared with the conventional octree. During rendering, after comparing an octant of the conventional octree with corresponding octant of the half-skewed octree simultaneously at the same level, a ray chooses one of two octants to jump over transparent regions farther away. By this method, we can reduce unnecessary comparison and level shift between octants. Another problem of a conventional octree structure is that it is difficult to determine a distance from the boundary of a transparent octant to opposite boundary. Although we exploit the previously proposed distance template, we cannot expect the acceleration when a ray direction is almost parallel to the octant's boundary. However, our method can solve it without additional operations because a ray selects one octant to leap farther away. As a result, our approach is much faster than the method using conventional octree while preserving image quality and requiring minimal storage.
octree volume ray casting hierarchical representation volume visualization space-leaping