Volume Rendering & Shear-Warp Factorization Joe Zadeh January 22, 2002 CS395 - Advanced Graphics
Volume Rendering (Part II)
3D Radiology Lab, Stanford
Start with Slices (usually) Stanford
Classification What does this voxel represent? Classification via probability Assign (R,G,B, ) Create Isosurfaces
Marching Cubes Lorensen and Cline
Watt, pg 385 IMAGE OBJECT
Image Order: Ray Casting Cast set of parallel rays Remain Traveling Two Issues –Find voxels through which the ray passes –Find a value for the voxel NOT RAYTRACING!!!
Image Order: Casting Image Watt, pg 386
Image Order: Compositing with Resampling Watt, pg 387
Image Order: Resampling (Shear) then Compositing Watt, pg 388
Object Order: Voxel Projection Splatting
Watt, pg 389
The Paper “Fast Volume Rendering Using a Shear-Warp Factorization of the Viewing Transform” SIGGRAPH ‘94
The Authors Philippe Lacroute –Computer Systems Laboratory, Stanford –PhD Dissertation with same title –SGI for 3 years Marc Levoy –Computer Science Dept, Stanford –1996 SIGGRAPH Achievement Award for Volume Rendering
History of the Stanford Bunny O’Brien, Hodgins: “Animating Fracture”
Input Data
Output Data
Image Order vs. Object Order Image Order (ray-casting) Redundant Traversals of Spatial Data Early Ray Termination Object Order (splatting) Traverse through complete spatial data Only Traverse Once
The Shear-Warp Revolution Takes the good of both Object and Image Order Algorithms
Lacroute, Levoy
3 Steps “Factorization of the viewing matrix into a 3D shear parallel to the slices of volume data” “a projection to form a distorted intermediate image” “and a 2D warp to produce the final image”
In a Nutshell Shear (3D) Project (3D 2D) Unwarp (2D)
The Shear (Parallel) Lacroute, Levoy
The Shear (Perspective) Lacroute, Levoy
Sheared Object Space Intermediate Coordinate System Simple mapping from object oriented system All viewing rays are parallel to the third axis
Properties of Sheared Object Space 1.Pixel scanlines of intermediate are parallel to voxel scanlines 2.All voxels in a slice scaled by same factor. 3.(Parallel) Every voxel slice has same scale factor (voxel pixel is one-to-one)
Algorithm, again Transform volume to sheared object space by translation and resampling Project volume into 2D intermediate image in sheared object space –Composite resampled slices front-to-back Transform intermediate image to image space using 2D warping
Three Shear-Warp Algorithms Parallel Projection Perspective Projection Fast Classification (SW Parallel Projection first described by Cameron and Undrill, 1992)
Parallel Projection Rendering Recall: Voxel scanlines in sheared volume are aligned with Pixel scanlines in intermediate Both can be traversed in scanline order Simultaneously
Compress Voxel Scanlines Run-length encoding Skip transparent voxels RTAAAASDEEEEE = RT*4A SD*5E Effectiveness depends heavily on image type
Compress Intermediate Image Recall: Splatting doesn’t account for occlusion Solution: Keep run-length encoding of opacity while creating the intermediate image If a pixel exceeds an opacity threshold, we know we don’t have to go to deeper slices (I.e. ray termination)
Lacroute, Levoy
For the Uncompressed Recall: All voxels in a given slice are scaled by the same factor Other rendering algorithms require a different scaling weight for each voxel Use Bilinear Interpolation and backward projection –Two voxel scanlines single intermediate scanline
Warping We now have composited intermediate image Warp: Affine image warper with bilinear filter We now have our image
Some Costs Run-length encoded volume –Preprocessing created –View Independent Three encodings (x,y,z) –Still less data than original volume because omits transparency
Lacroute, Levoy
256x256x225 on SGI Indigo R4000 Lacroute, Levoy
Perspective Projection Majority of Volume Rendering Parallel (’94) Perspective mostly useful in radiation beam planning Viewing rays diverge, complicating sampling
Perspective Projection Algorithm Almost exactly like Parallel In addition to translation during shear, scale as well; then composite. Tends to create a many-to-one mapping from voxels to pixels Slower in calculating: volumes and intermediate scanlines not traversed at same rate
Fast Classification Algorithm Recall: Previous two algorithms require intense preprocessing classification step Not acceptable when experimenting with different opacities Solution: Classification opacity via scalar function
The Algorithm Lacroute, Levoy
A bit more detail For some block of volume, find extrema of parameters to opacity function If function returns transparent opacity, discard scanline portion Subdivide scanline and repeat recursively until size of portion is smaller than a threshold
Further Analysis : 5x speed increase over traditional ray-casting (.5 sec) : 10x speed increase (1 sec) General Shear-Warp: O(n) Classification with Render: O(n 2 )
Pitfalls of Shear-Warp Two resampling steps –No noticable degradation Uses 2D reconstruction filter to resample the volume data –Not really applicable
Futher Research Algorithm is parallelizable Real-Time Rendering on Shared Multiprocessors (approx 10 fps) [SGI Challenge 16 Processor multiprocessor, 256x256x223 voxel] Volpack
Hardware Implementation