# Volume Rendering Volume Modeling Volume Rendering 20 Apr

- Slides: 19

Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

Volume Modeling & Rendering • Some data is more naturally modeled as a volume, not a surface • You could always convert the volume to a surface, but that’s not always best • Volume rendering: render the volume directly Ray-traced isosurface f(x, y, z)=c Computer Graphics 15 -462 Same data, rendered as a volume 2

Why Bother with Volume Rendering? • Isn’t surface modeling & rendering easier? • Show all your data – more informative – less misleading (the isosurface of noisy data is unpredictable) • Constructive Solid Geometry (CSG) is natural • Simpler and more efficient than converting a very complex data volume (like the inside of someone’s head) to polygons and then rendering them Computer Graphics 15 -462 3

Contrasts Surface Rendering Volume Rendering • Surface rendering is the "usual" type of rendering. • Data is converted to geometrical primitives (e. g. triangles), which are then drawn. • Everything you see is a 2 D surface, embedded in a 3 D space. • The conversion to geometrical primitives may lose or disguise some data. • Good for opaque objects, objects with smooth surface. • Data consists of one or more (supposedly continuous) fields in 3 D. • A Transfer Function maps the data into a volume of RGBA values. • This volume is rendered directly, like a blob of colored jello. • Data is seen more directly; less likely to be hidden. • Works well for complex surfaces. Computer Graphics 15 -462 4

Applications • medical – Computed Tomography (CT) – Magnetic Resonance Imaging (MRI) – Ultrasound • engineering & science – Computational Fluid Dynamics (CFD) – aerodynamic simulations – meteorology – weather prediction – astrophysics – simulate galaxies • Computer Graphics – Participating media – Texels Computer Graphics 15 -462 5

Brief History of Volume Visualization • • 1970’s modeling & rendering with 3 -D grids and octrees 1984 ray casting volume models 1986 3 -D scan conversion of lines, polygons into 3 -D grid 1987 marching cubes algorithm (convert volume model to surface model) • 1988 direct volume rendering with painter’s algorithm • 1989 splatting • 1990’s volume rendering hardware Computer Graphics 15 -462 6

Volume Rendering Pipeline • Data volumes come in all types: tissue density (CT), relaxation time of certain molecules (MRI), windspeed, pressure, temperature, value of implicit function. • Data volumes are used as input to a transfer function, which produces a sample volume of colors and opacities as output. – Typical might be a 256 x 64 CT scan • That volume is rendered to produce a final image. data volumes transfer function Computer Graphics 15 -462 sample volume 7 rendering final image

Transfer Functions • The transfer function takes (multiple) scalar data values as input, and outputs RGBA • It gets applied to every voxel in the volume “model” • It can be very simple (a color lookup table) or very complicated (implementing CSG, voxel texturing, etc. ) Computer Graphics 15 -462 8

Rendering • Usually one just integrates color through the volume (ray casting) • Recursive ray tracing is also possible – But it gets confusing pretty quickly (shadows, filtered light, reflections, etc) • For lighting we need surfaces! – We can use the magnitude of the local gradient to check for surfaces (for example, bone is denser than fat on CT scans) – And we can use the (negative of the) gradient direction as a lighting normal! – Some, all, or none of the voxels will have surface lighting. • And we need material properties! –Either assume all the data is one material type, –Or use a separate set of segmentation data to identify voxel materials. Computer Graphics 15 -462 9

Some Details • Regular x-y-z data grids are easiest and fastest to handle, but algorithms exist for handling irregular grids like finite element models, where the voxels (volume elements) are not all parallelepipeds. – Resample it – or just deal with it – Finite element data, ultrasound data • Geometrical primitives can be handled by "rasterizing" them into data grids. This model was rasterized and rendered with Vol. Vis Computer Graphics 15 -462 10

Accumulating Opacity • By convention, opacity (alpha) ranges from 0. 0 to 1. 0, 1. 0 being completely opaque. • Multiple layers of material are composited according to their opacity. • An ideal, continuous material takes the limit of this process as it goes to an infinite number of infinitely thin layers (exponentials). • The local gradient of opacity can be used to detect surfaces, and as the normal for the lighting equation. Computer Graphics 15 -462 11

Ray Casting Volumes • Just integrate color and opacity along the ray • Simplest scheme just takes equal steps along ray, sampling opacity and color • Grids make it easiest to find the next cell • It’s simple to include volumes as primitives in a ray tracer – clouds, fog, smoke, fire done this way Computer Graphics 15 -462 12

Trilinear Interpolation • • How do you compute RGBA values which are not at sample points? Nearest neighbor (point sampling) yields blocky images Trilinear interpolation is better, but slower Just like texture mapping – You can even mipmap in 3 D Nearest Neighbor Computer Graphics 15 -462 Trilinear Interpolation 13

Splatting • Wonderfully simple • Working back-to-front (or front-to-back), draw a “splat” for each chunk of data • Easy to implement, but not as accurate as ray casting • works reasonably for non-gridded data closeup of a splat Computer Graphics 15 -462 14

Other Techniques • Shear-Warp (Lacroute and Levoy) – requires a grid – sort of like Bresenham for volumes – very fast with no hardware acceleration, but implementation is tricky • Polygons + 3 D texture – Build a 3 D texture, including opacity – Draw a stack of polygons from back to front, with that texture – Very efficient on machines with hardware acceleration that supports opacity 3 D RGBA Texture Viewpoint Draw polygons back to front Computer Graphics 15 -462 15

CSG is Easy • The transfer function can be used to mask a volume or merge volumes • You are still confined to the grid, of course not head and Computer Graphics 15 -462 or 16

Another CSG example (Vol. Vis again) Computer Graphics 15 -462 17

Acceleration Techniques • • • Limit yourself to what you can do in cache. . . …and do multiple blocks if necessary Octrees Quit integration early- that last bit is slowest Error measures Parallelism Computer Graphics 15 -462 18

Pictures colliding galaxies Computer Graphics 15 -462 19