Ray tracing: Bresenham's algorithm vs Siddon

I am developing a back-planning tool for radiation therapy based on a pencil-beam approach. An important step in these methods (especially when calculating dose) is ray tracing from many sources, and one of the most used algorithms is Siddon one (there is a good short description here http://on-demand.gputechconf.com/gtc/2014/poster /pdf/P4218_CT_reconstruction_iterative_algebraic.pdf ). Now I will try to simplify my question:

The input data is a CT (three-dimensional matrix with values) image and some source positions around the image. You can imagine a cube and many points around, all at the same distance, but different orientation angles, from where the rays of radiation emanate. Each ray will pass through the volume and a value is assigned to each voxel according to the distance from the source. The advantage of Siddon's algorithm is that the length is computed during an iterative ray tracing process. However, I know that Bresenham's algorithm is an efficient way to estimate the path from one point to another in a matrix. Thus, the length from a source to a specific voxel can easily be calculated as the Euclidean distance of two points, even during the Bresenham iterative process.

So knowing that both methods are pretty old already and effective, is there a definitive advantage to using Siddon instead of Bresenham? I may be missing an important detail here, but I find it strange that in these dose calculation procedures, Bresenham is not really an option, and always Siddon acts as the gold standard.

Thanks for any comment or response!

Good day.

+3


source to share


1 answer


It seems to me that in most medical ray tracing applications, you want not only the distance from the source to a specific voxel, but the length of the intersection of that path with each individual voxel in its path. Now, Bresenham gives you voxels along the way, but not the intersection lengths, while Siddon does.



+1


source







All Articles