Transcript
Page 1: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

Volume Rendering

Volume ModelingVolume RenderingVolume ModelingVolume Rendering

20 Apr. 2000

Page 2: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

2Computer Graphics 15-462

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 isosurfacef(x,y,z)=c

Same data, renderedas a volume

Page 3: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

3Computer Graphics 15-462

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

Page 4: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

4Computer Graphics 15-462

Contrasts

Surface 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 2D surface, embedded in a 3D space.

• The conversion to geometrical primitives may lose or disguise some data.

• Good for opaque objects, objects with smooth surface.

Volume Rendering

• Data consists of one or more (supposedly continuous) fields in 3D.

• 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.

Page 5: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

5Computer Graphics 15-462

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

Page 6: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

6Computer Graphics 15-462

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

Page 7: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

7Computer Graphics 15-462

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 256x256x64 CT scan

• That volume is rendered to produce a final image.

transferfunctiondata

volumes

samplevolume rendering final

image

Page 8: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

8Computer Graphics 15-462

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.)

Page 9: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

9Computer Graphics 15-462

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.

Page 10: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

10Computer Graphics 15-462

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 VolVis

Page 11: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

11Computer Graphics 15-462

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.

Page 12: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

12Computer Graphics 15-462

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

Page 13: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

13Computer Graphics 15-462

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 3D

Nearest Neighbor Trilinear Interpolation

Page 14: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

14Computer Graphics 15-462

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

Page 15: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

15Computer Graphics 15-462

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 + 3D texture– Build a 3D 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

Viewpoint

3D RGBA Texture

Draw polygons back to front

Page 16: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

16Computer Graphics 15-462

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

head orand

not

Page 17: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

17Computer Graphics 15-462

Another CSG example

(VolVis again)

Page 18: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

18Computer Graphics 15-462

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

Page 19: Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

19Computer Graphics 15-462

Pictures

colliding galaxies


Top Related