Ray Tracing Non-Polygonal Objects: Implementation and Performance Analysis using Embree
Free-form surfaces and implicit surfaces must be tessellated before being rendered with rasterization techniques. However ray tracing provides the means to directly render such objects without the need to first convert into polygonal meshes. Since ray tracing can handle triangle meshes as well, the question of which method is most suitable in terms of performance, quality and memory usage is addressed in this thesis. Bézier surfaces and NURBS surfaces along with basic algebraic implicit surfaces are implemented in order to test the performance relative to polygonal meshes approximating the same objects. The parametric surfaces are implemented using an iterative Newtonian method that converges on the point of intersection using a bounding volume hierarchy that stores the initial guesses. Research into intersecting rays with parametric surfaces is surveyed in order to find additional methods that speed up the computation. The implicit surfaces are implemented using common direct algebraic methods. All of the intersection tests are implemented using the Embree ray tracing API as well as a SIMD library in order to achieve interactive framerates on a CPU. The results show that both Bézier surfaces and NURBS surfaces can achieve interactive framerates on a CPU using SIMD computation, with Bézier surfaces coming close to the performance of polygonal counterparts. The implicit surfaces implemented outperform even the simplest polygonal approximations.
AT THIS PAGE YOU CAN DOWNLOAD THE WHOLE ESSAY. (follow the link to the next page)