# A Comprehensive Survey of Isocontouring Methods: Applications, Limitations and Perspectives
## 5 Ray Tracing Algorithms
\begin{table}
\begin{tabular}{l c c c c c c} \hline \hline
**Authors** & **Year** & **Structured** & **Unstructured** & **Quality** & **2D** & **3D** \\ \hline [PERSON] & [45] & 1998 & \(\bullet\) & & visual inspection & \(\bullet\) & \(\bullet\) \\ [PERSON] & [47] & 1998 & \(\bullet\) & & visual inspection & \(\bullet\) & \(\bullet\) \\ [PERSON] \& [PERSON] [PERSON] & [48] & 1999 & \(\bullet\) & & visual inspection & \(\bullet\) \\ [PERSON] et al. & [49] & 2000 & \(\bullet\) & & comparison with MC & & \(\bullet\) \\ [PERSON] et al. & [50] & 2011 & \(\bullet\) & & & \(\bullet\) \\ [PERSON] & [51] & 2022 & \(\bullet\) & & visual inspection & & \(\bullet\) \\ \hline \hline \end{tabular}
\end{table} 
Table 3: Summary of surface nets algorithms. In this context, it can be stated that the technique of ray tracing is the subject of current research work, with the first preliminary work in this field having been carried out by [PERSON] [56] and intensified in the 1980s, especially by [PERSON] [57]. At that time, the potential of the method was already recognized, but it was hindered by the intensive computational effort required. For this reason, the initial research work in this field focused on developing approaches to reduce the computational cost. For example, [PERSON] and [PERSON] present, in [58], a simplified method to reduce the computational effort and introduce an incremental transversal algorithm; see Figure 11. The idea is to first identify the voxel in which the ray origin lies and then determine the value at which the ray passes the boundary of the first vertical voxel. An identical step is performed for the other spatial direction. The minimum of both calculated values then indicates the extent to which it is possible to move along the beam without leaving the voxel. In their work, the authors [PERSON] et al. show how the isosurface of an object can be determined using the ray tracing method on the basis of analytical approaches [59]. The ray under consideration is interpreted as a vector. Each cell is checked to determine whether its data range is bounded by a defined isovalue. If this is the case, an analytical calculation is  
Figure 11: Grid traversed by a ray based on [58]; ray visits voxels from \(a\) to \(j\). Figure 10: Qualitative illustration of the ray tracing method based on [55]. performed to determine the ray parameter \(t\) that defines the intersection point. The entire procedure is then carried out for all cells. To validate the procedure, the authors apply the method developed to the Visible Woman data set [60]. [PERSON] and [PERSON] present, in [61], a ray tracing method to visualize the polygonal isosurface of the visible part of the isosurface. In the first phase, coarse visibility tests are performed to identify the visible cells. The visible parts of the extracted triangles are then resolved and processed by the graphics hardware. The possible integration of implicit kd-trees ([62], p. 99) for the determination of the isosurface and simultaneous rendering is presented by [PERSON] et al. in [63]. Here, Figure 12 illustrates the method. The idea of the approach essentially consists of two parts: on the one hand, a kd-tree contains information about which isosurfaces are contained and a modified transversal algorithm runs through the kd-tree and also implicitly classifies whether the corresponding node contains the defined isovalue. This also allows large empty areas to be skipped more quickly, which is also adressed by [PERSON] et al. in [64]. Therefore, the method presented has the advantage that it requires less memory than conventional methods. An extension of the approach can be found in [65]. Further applications of kd-trees can be found in [66; 67; 1, 68], for example. Another alternative for the efficient handling of large data sets is the use of so-called octree-based, hierarchical data structures. As indicated in their name, octrees describe the recursive decomposition of a space into eight sub-volumes (or four cells in the two-dimensional case).