Presentation is loading. Please wait.

Presentation is loading. Please wait.

Ray-casting in VolumePro™ 1000

Similar presentations


Presentation on theme: "Ray-casting in VolumePro™ 1000"— Presentation transcript:

1 Ray-casting in VolumePro™ 1000
Yin Wu, Vishal Bhatia, Hugh Lauer, Larry Seiler

2 VolumePro™ 1000 Summary Second generation real-time volume rendering accelerator Ray-casting at 109 samples per second Ray-per-pixel image quality Translucent & opaque embedded polygons 8-, 16-, & 32-bit voxels (up to four fields) Geometry-based space leaping, early ray termination

3 The Challenge in Ray-casting Performance vs. Image Quality
Shear-Warp Traverse & resample data in memory order. Warp needed for final image. Fast Efficient memory access VolumePro 500 Image Quality 2nd resampling No embedded geometry Full Image order Traverse & resample data in pixel order Image Quality No 2nd resampling Embedded geometry Performance Memory accesses similar to random access.

4 VolumePro 1000 Ray-casting
Rays through pixels on image plane Image quality equiv. to full image order No 2nd resampling

5 VolumePro 1000 Ray-casting
Rays through pixels on image plane Samples organized in planes parallel to faces of the volume Traverse & process data in memory order Maximize memory performance

6 xy-image order — 2 parts (aka shear-image order)
Voxel processing part Traverse data slice-by-slice in memory order Read voxels for each slice of samples Voxel-oriented processing (e.g., gradient estimation) Store in on-chip buffers Sample processing part Define sample points where rays intersect slices Traverse & interpolate on-chip buffer in pixel order Sample-oriented processing e.g., illumination, filtering, depth testing, compositing Output to image

7 VolumePro 1000 ray-casting (Additional optimizations)
Section: rays assoc. with tile of image plane Minimize on-chip buffer space All slices of a section processed before next section Enables early ray termination Mini-block and stamp organized memory Burst accesses to 222 voxels or 22 pixels From VolumePro 500 Skewed across eight memory channels Parallel access to 8 adjacent mini-blocks or stamps in any dimension From VolumePro 500, Cube-4 (SUNY Stony Brook)

8 Block Diagram Sequencer Pipelines 250 MHz PCI bus Interface 33-66 MHz
Voxels (organized as mini-blocks) 16-node SIMD processor Sequencer Voxel processing PCI bus Interface MHz control On-chip Slice buffers Memory Interface eight channels 16-bit DDR SDRAM ( MHz) Sample processing Sample processing control Pixels (organized as stamps)

9 Technical summary Four 250 MHz pipelines, 109 samples per second
Trilinear interpolations on seven channels Four colors or voxel fields Three gradient components Classification of (up to) four voxel fields Phong illumination calculation 25-30 individual visibility tests Alpha correction, gradient magnitude modulation Perspective rendering (in Shear-Warp)

10 What next? Is 109 samples/second enough? Major items yet to be done
1 megapixel at 15 fps  ~66 samples/ray (average) Not very many, even with aggressive space leaping Major items yet to be done Content-based space-leaping Faster memory, pipelines, and Sequencer Perspective volume rendering More programmability

11 Pretty Pictures

12

13

14 Supplementary Slides

15 Embedding Surfaces in Volumes
Allows inserting pointers, medical prostheses, or geological data markers into the volume Also supports arbitrary clipping regions, all in real time Each ray is cast in multiple segments, between surfaces specified by depth buffers Surface rendering performed in 3D graphics chip using OpenGL Front clip bounds Trans- lucent surface So how do we do it? First, we render the polygon data using OpenGL or Direct3D on the standard 3D graphics chip. This produces one or more layers of depth and image data. The example at the right shows an opaque background behind a closed translucent surface that produces a front layer and a back layer. A fourth depth layer specified a portion of the volume that we want to clip out. Opaque background

16 Embedding Surfaces in Volumes
Allows inserting pointers, medical prostheses, or geological data markers into the volume Also supports arbitrary clipping regions, all in real time Each ray is cast in multiple segments, between surfaces specified by depth buffers Surface rendering performed in 3D graphics chip using OpenGL Next, we start compositing samples along the rays, until they reach another depth-image layer. We then composite the surface colors into the rays...

17 Embedding Surfaces in Volumes
Allows inserting pointers, medical prostheses, or geological data markers into the volume Also supports arbitrary clipping regions, all in real time Each ray is cast in multiple segments, between surfaces specified by depth buffers Surface rendering performed in 3D graphics chip using OpenGL ... And continue compositing samples along the rays until they reach the next surface.

18 Embedding Surfaces in Volumes
Allows inserting pointers, medical prostheses, or geological data markers into the volume Also supports arbitrary clipping regions, all in real time Each ray is cast in multiple segments, between surfaces specified by depth buffers Surface rendering performed in 3D graphics chip using OpenGL Finally, when all of the rays have reached the opaque background, we can stop ray-casting. TURN ON DEMO: TEAPOT with LOBSTER, play with CROP PLANES


Download ppt "Ray-casting in VolumePro™ 1000"

Similar presentations


Ads by Google