Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000.

19
Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000

Transcript of Volume Rendering Volume Modeling Volume Rendering Volume Modeling Volume Rendering 20 Apr. 2000.

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