Volume Visualization with Ray Casting
Volume Rendering render an image a volume ✦ CT, X-ray, PET, MRI scans ✦ Clouds ✦ Compressible fluids volume represented by 3D cell grid
Volume Rendering Typical sizes 128x128x x256x256 Display approaches Extract surfaces Ray trace
Ray Casting Generate image directly from density data Cast ray through density volume Accumulate colors as ray passes through semi-transparent cells
Accumulate illuminated densities Density: D(t) = D(x(t), y(t), z(t)) illumination: I(x,y,z) L R I(t)D(t)P(Cos ) Phase function: P t1t1 t2t2
I(t) Radiation from light source Attenuated, shadowed by volume Only needed where internal shadows are important e.g., clouds, fire, smoke
Attenuation along a ray converts density to attenuation R t1t1 t2t2
Outgoing light light reflected in view direction from light source incoming light filtered by the voxel light emitted by the voxel
Ray casting algorithm For every pixel in output image shoot ray into volume at evenly spaced ray locations, obtain color and opacity by interpolation merge color and opacities front to back back to front
Visualization pipeline Shade volume data compute local gradient -> voxel normal produce RGB intensity for every voxel determine opacity of each voxel application dependent e.g. X-ray absorption coefficient Ray cast volume
Voxel values C(X) - shade a(X) - opacity Cout = Cin(1-a(Xi))+c(Xi)a(Xi) Often parallel projection is used to simplify calcs
Packages AVS: Application Visualization System IBM Data Explorer (DX) Data Visualizer
Display issues How to represent: Temporal information Non-spatial information Multi-dimensional information
Examples
Speed-ups Hierarchical spatial enumeration adaptive termination
Hierarchical Spatial Enumeration
Traversing Volume
Examples