180 likes | 377 Views
Ray-casting in VolumePro™ 1000. Yin Wu, Vishal Bhatia, Hugh Lauer, Larry Seiler. VolumePro™ 1000 Summary. Second generation real-time volume rendering accelerator Ray-casting at 10 9 samples per second Ray-per-pixel image quality Translucent & opaque embedded polygons
E N D
Ray-casting inVolumePro™ 1000 Yin Wu, Vishal Bhatia, Hugh Lauer,Larry Seiler
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 • …
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. The Challenge in Ray-castingPerformance vs. Image Quality
VolumePro 1000 Ray-casting • Rays through pixels on image plane • Image quality equiv. to full image order • No 2nd resampling
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
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
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 222 voxels or 22 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)
Voxelprocessing Voxelprocessing Voxelprocessing Voxelprocessing Sequencer 16-node SIMD processor Sampleprocessing Sample processing Sample processing Sample processing Block Diagram Pipelines 250 MHz Voxels (organized as mini-blocks) PCI bus Interface33-66 MHz control On-chip Slice buffers Memory Interfaceeight channels16-bit DDR SDRAM (266-333 MHz) control Pixels (organized as stamps)
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)
What next? • Is 109 samples/second enough? • 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
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 Opaquebackground
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
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
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