Massively Parallel Ray Tracing in Scientific Visualization
Carson Brownlee, Chuck Hansen

OpenGL Hijacking with GLuRay

GLuRay is a program which runs on top of existing external visualization applications. Function calls to draw 3D objects are intercepted and instead rendered with our optimized software ray tracer Manta. This allows both high performance software rendering to match the existing display as well as advanced rendering effects for enhanced image quality.

Advanced Rendering Effects

ParaView - Aluminum Ball Impact

VAPOR - Stellar Magnetism

Magnetic Polar Reversal in a Sun-like Star

  • Streamlines Show Magnetic Fields
  • Ambient Occlusion Adds Depth Cues
  • Reflections Can Be Added Externally
  • Animation and Streamline Creation is Handled by VAPOR
  • Submitted to SciDAC 2011- Won an OASCR
  • Accelerated Rendering

    GLuRay uses acceleration structures and avoids shading occluded (hidden) geometry. Brute-force OpenGL implementations show linear scaling with triangle counts, while our program shows logarithmic scaling when rendering hundreds of millions of triangles allowing for interactive visualization of over 5 fps up to 128 million triangles.

    GLuRay scales O(log(n)) with respect to geometry count. ParaView/VisIt/VAPOR/EnSight and other visualization applications use O(n) rendering algorithms natively which scale linearly with geometry count. As triangle counts grow into the tens or hundreds of millions, GLuRay provides large runtime speedups.

  • Over 300x faster than Software Mesa
  • OpenGL translation introduces very little overhead
  • OpenGL implementations are often brute-force
  • ParaView uses a single display list for acceleration
  • Each rendered frame only requires a few matrix transforms