Volume Raycasting mit OpenCL
This German paper was written entirely at the University of Duisburg-Essen in 2011 for a 3D modeling masters course in applied computer science. We publish this paper, thus, interested people can acquire a first impression of the topic "volume raycasting". In addition to writing this paper, we developed a functioning open-source OpenCL raycaster. A video of this raycaster is available: http://www.youtube.com/watch?v=VMMsQnf4zEY. Additionally, we archived and published the complete source code of the raycaster in the Google Code Archive: http://code.google.com/p/gputracer/. If this is no longer the case, those who are interested can also write an email to the author, hence, we can provide the source code. This paper provides an introduction and overview of the topic "volume ray casting with OpenCL". We show how volume data can be loaded, manipulated, and visualized by modern GPUs in real time. In addition, we present basic algorithms and data structures that are necessary for building such a raycaster. Then, we describe how we built a rudimentary raycaster using OpenCL and .NET C#. Furthermore, we analyze different gradient operators (CentralDifference, Sobel3D and Zucker-Hummel) for surface detection and show an evaluation of these with respect to their performance. Finally, we present optimization techniques (hitpoint refinement, adaptive sampling, octrees, and empty-space-skipping) for improving a raycaster.
READ FULL TEXT