Ray tracing is used to render photorealistic images in computer graphics. We work on real time ray tracing of static, dynamic and deformable scenes composed of polygons as well as higher order surfaces. This has been made possible with the recent advances in GPU hardware and computing resources. We have developed various algorithms that perform real time ray tracing of various kinds of scenes by constructing efficient acceleration structures on the GPU as well as algorithms that work without constructing any explicit structure.
| Projects involving Ray Tracing using CUDA:: |
1. Parallel Divide and Conquer Ray Tracing
Divide and Conquer Ray Tracing is a recent technique in which ray tracing is performed without constructing any explicit acceleration structure.
We have developed a parallel version of the algorithm that runs entirely on the GPU using efficient parallel primitives like sort and reduce. Our approach suits the GPU well, with a low memory footprint. Our implementation outperforms the serial CPU algorithm for both primary and secondary ray passes.
|
|
|
2. Hybrid Ray Tracing and Path Tracing of Bezier Surfaces Using A Mixed Hierarchy
We present a scheme for interactive ray tracing of Bezier bicubic patches using Newton iteration. We use a mixed hierarchy representation as the acceleration structure. This has a bounding volume hierarchy above the patches and a fixed depth subpatch tree below it. This helps reduce the number of ray-patch intersections that needs to be evaluated and provides good initialization for the iterative step, keeping the memory requirements low. We use Newton iteration on the generated list of ray patch intersections in parallel. Our method can exploit the cores of the CPU and the GPU with OpenMP on the CPU and CUDA on the GPU by sharing work between them according to their relative speeds. A data parallel framework is used with a list of rays, which is transformed to a list of ray-patch intersections by traversal and then to intersections and a list of secondary rays by root finding.
Shadow and reflection rays can be handled exactly in the same manner as a result. We also show how our method extends easily to generate soft shadows using area light sources and path tracing by tracing a large number of rays per pixel.
|
3. Ray Tracing Dynamic Scenes on the GPU
We present fast ray tracing of dynamic scenes with primary
and shadow rays. We present a GPU-
friendly strategy to bring coherency to shadow rays, based on previous
work on grids as acceleration structures.
We introduce indirect mapping of threads to rays to improve the performan
ce of ray tracing on the GPU for the
traversal and intersection steps. We also construct a light frustum in a sph
erical space for shadow rays. A grid
structure is constructed each frame for the light frustum and traversed coh
erently. This involves careful mapping of
the primary ray information to the light space and balancing the work load of th
e threads. Using the finegrained
parallelism of GPU, we reorder the shadow rays to make them coherent a
nd process multiple thread blocks to
each cell to balance the work load. Spherical mapping is key to handling ligh
t sources placed anywhere in the
scene by reducing the triangle count and improving performance in shad
ow checking. In addition it also allows us
to introduce spotlights in raytracing. In practice, we attain interactive perform
ance for moderately large models
which change dynamically in the scene.
|
|
|
4. Ray Tracing Implicit Surfaces in Real-Time
We present a ray-tracing procedure to render general implicit surfaces efficiently on
the GPU. Though only the fourth or lower order surfaces can be rendered using analytical roots, our
adaptive marching points
algorithm can ray trace arbitrary implicit surfaces without multiple roots, by sampling the ray at selected points till a root is found.
Adapting the sampling step size based on a proximity measure and a horizon measure delivers high speed. The sign test can handle
any surface without multiple roots. The Taylor test that uses ideas from interval analysis can ray trace many surfaces with complex
roots. Overall, a simple algorithm that fits the SIMD architecture of the GPU results in high performance.
|
5. Ray Casting Deformable Models on CUDA
We explore the problem of real time ray casting
of large deformable models (over a million
triangles) on large displays (a million pixels) on
an off-the-shelf GPU. We build a GPU-efficient
three-dimensional data structure for this purpose
and a corresponding algorithm that uses it for
fast ray casting. We also present fast methods to
build the data structure on the SIMD GPUs, including
a fast multi-split operation. We achieve real-time
ray-casting of a million triangle model onto a million
pixels on current generation hardware.
|
|
1. Srinath Ravichandran and P. J. Narayanan:
Parallel Divide and Conquer Ray Tracing. In: Technical Briefs at SIGGRAPH Asia 2013
2. Rohit Nigam and P. J. Narayanan:
Hybrid Ray Tracing & Path Tracing of Bezier Surfaces using a Mixed Hierarchy In: ACM ICVGIP 2012
3. Sashidhar Guntury and P. J. Narayanan:
Ray Tracing Dynamic Scenes on the GPU using Grids In: IEEE Transactions on Visualization and Computer Graphics 2012
4. Sashidhar Guntury and P. J. Narayanan:
Ray Tracing Dynamic Scenes with Shadows on the GPU In: Eurographics Symposium on Parallel Graphics and Visualization 2010
5. Jag Mohan Singh and P. J. Narayanan:
Real-time Ray Tracing of Implicit Surfaces on the GPU In: IEEE Transactions on Visualization and Computer Graphics 2010
6. Suryakant Patidar and P. J. Narayanan:
Ray Casting Deformable Models In: ACM ICVGIP 2008
Srinath Ravichandran
Rohit Nigam
|
Sashidhar Guntury
Jag Mohan Singh
|
Suryakant Patidar
Prof. P.J. Narayanan
|
Last Modified: Thu Sep 12, 17:00:10 IST 2013