X-ray based inspection often relies on triangular meshes, for example to inspect objects that were manufactured from CAD models. In this work, we present three complementary implementations of X-ray mesh projectors, obtained by adapting state-of-the-art rendering techniques to the simulation of X-ray imaging. The first technique is rasterization, where the interaction of each triangle with the X-ray beam is simulated in parallel using the NVIDIA CUDA toolkit. The second approach is ray tracing, where the interaction of each ray with the mesh is simulated in parallel using the NVIDIA OptiX framework. Both recursive and non-recursive versions of ray tracing are described. The simulated XCT setup is described in terms of a cone beam projection geometry that is compatible with the corresponding geometry in the ASTRA toolbox. All three projectors were benchmarked on a series of tests with varying resolution of both the mesh and the detector. The rasterizer exhibited the best computation time in most benchmark scenarios, coupled with the best scalability w.r.t. both the mesh size and the detector size. However, the recursive ray tracing approach offers more capabilities towards implementing additional optical effects such as refraction.
|