Realistic Rendering

Our interest in this topic is about ray-tracing algorithms specialized for NURBS surfaces. The basic problem in a ray-tracing surface algorithm is the ray/patch intersection.

If the surface is trimmed, it follows a step to determine whether the intersection point lies inside or outside a trimmed region using a 2D Point Membership Classification algorithm.

During our research we have implemented and compared two methods for ray/patch intersection and we proposed a new one; all these algorithms are able in the xcrayt system. For more details about the original methods and our proposal see the references in the following.

Realistic Rendering example (400x400, 38Kb).
Realistic Rendering example (800x800, 245Kb).

Our ray tracing implementation exploits a certain number of optimization techniques in order to speed up performance, such as subdividing a 3D scene into a uniform grid of voxels, subdividing the NURBS surfaces in rational Bezier patches, further subdividing each rational Bezier patch until a given flat tolerance is reached and introducing a second level of subdivision of the surface bounding boxes.