Volume visualization visualization ii msim 842 cs 795 895
This presentation is the property of its rightful owner.
Sponsored Links
1 / 49

Volume Visualization Visualization II MSIM 842, CS 795/895 PowerPoint PPT Presentation


  • 112 Views
  • Uploaded on
  • Presentation posted in: General

Volume Visualization Visualization II MSIM 842, CS 795/895. Instructor: Jessica Crouch. Volume Viz Problem:. Data points fill a 3D volume You can only display one 2D image at a time Naïve rendering of a volume will just let you see the surface

Download Presentation

Volume Visualization Visualization II MSIM 842, CS 795/895

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Volume visualization visualization ii msim 842 cs 795 895

Volume VisualizationVisualization IIMSIM 842, CS 795/895

Instructor:

Jessica Crouch


Volume viz problem

Volume Viz Problem:

  • Data points fill a 3D volume

  • You can only display one 2D image at a time

  • Naïve rendering of a volume will just let you see the surface

  • How can you visualize the volume data in a way that lets you understand the internal structure of the data?


Structured vs scattered data

Structured vs. Scattered Data

  • The best approach will depend on the characteristics of the data

  • Data points arranged in rows, columns, and layers (3D image) can be referred to as voxels (volumetric-pixels)

  • Data points that follow a non-gridded pattern are called “scattered”

Wikipedia image


Volume viz data dimensionality

Volume Viz & Data Dimensionality

  • Each data point has

    • 3D coordinates (x,y,z), specifying a position in the volume

      and one of the following:

      • Scalar – a single number, 0D data

      • Vector – a list of numbers, 1D data

      • Tensor – a matrix or ND array of numbers, for N>1


Data examples

Data examples

  • Scalar Data

    • CT Scan → x-ray opacity for each voxel

    • PET Scan → positron radiation for each voxel

    • Atmospheric simulation (or measurement) → pollutant concentration

    • Ocean temperature distribution

  • Vector Data

    • Velocity vectors at each voxel

      • Fluid flow (river water, arterial blood, etc.)

    • Displacement vectors at each voxel

      • Provides mapping between different deformed configurations of the same object

  • Tensor data

    • Higher dimensional data is more complicated:

      • Stress and strain matrices

      • Gradients of 3D functions


Simplest case

Simplest Case

  • Let’s consider continuous, scalar, voxel data

    • Geometrically regular arrangement (3D grid)

    • Just 1 data value per voxel

  • Think of CT data (3D x-ray)

  • What would you be interested in seeing?

  • How would you construct a visualization?


Volume visualization visualization ii msim 842 cs 795 895

Scalar Voxel Viz.

  • Simplest possible visualization is to just look at the slices

    • Use color mapping (or grayscale mapping) to see slice values

  • Slices can be useful

  • We can do more interesting things


Scalar voxel viz

Scalar Voxel Viz.

  • Bone voxels will be bright (have large values), other voxels will be dark

  • How could you visualize the surface of the bones?

    • Several alternatives exist, including:

      1. Render an isosurface: Use Marching Cubes Algorithm

      2. Ray Casting: Integrate scalar variable along the view direction

      3. Splatting


Isosurfaces from 3d

Isosurfaces from 3D

  • How to construct a polygonal surface from a 3D dataset?

  • Find points on the isosurface of a scalar variable

    • 3D analog of 2D contour maps

    • You pick a meaningful threshold value

      • Voxels with data values below the threshold sit on one side of the isosurface, voxel with data values above the threshold sit on the other

      • Simplifying assumption is that threshold value = 0

        • To force this, just subtract the desired threshold value from all data points

  • Tessellate points on the isosurface to create a polygonal representation of the surface

    • The “Marching Cubes” algorithm does this

      • This is one of the famous, older (>20 yrs) viz. algorithms

  • Render the tessellated isosurface using normal 3D graphics methods


Isosurfaces opacity

Isosurfaces & Opacity


The visible man image data

The Visible Man: Image Data


Visible man isosurfaces

Visible Man Isosurfaces


Marching cubes considered

Marching Cubes Considered

  • How effective is the visualization perceptually?

    • What can you see?

    • What can’t you see?

  • How is this in terms of efficiency?

    • Phase I

    • Phase II

    • Rendering

  • Compare other approaches…


Ray casting volume data

Ray Casting Volume Data


Review ordinary ray casting

Review Ordinary Ray Casting

  • How does it work?


Ray casting with a voxel

Ray Casting with a Voxel


Ray casting for approximation of light integral

Ray Casting for Approximation of Light Integral


Examples

Examples


Ray casting considered

Ray Casting Considered

  • How effective?

    • How are the images different from those produced by Marching Cubes?

  • How efficient?

  • Another alternative…


Volume splatting

Volume Splatting

  • Ray casting is an image space method

    • Ray are generated per pixel, and travel out into the volume

  • Volume splatting is an object space method

    • Data points in the volume are mapped (splatted) onto the image plane


Splatting a feed forward process

Splatting: A Feed Forward Process

Feed forward: Splatting

Splat!


Splatting feed forward

Splatting (feed-forward)

?


Fill the holes

Fill the holes

We need to fill the pixel values between the

volume projection samples

?


3d kernel for splatting

3D Kernel for Splatting

Need to know the 3D extent of each voxel, and

Then project the extent to the image plane

This is called ‘footprint’


Visibility

Visibility

  • How does occlusion work?

  • Splatting uses back to front compositing

  • Samples in front are added on top of and partially obscure previously splatted (further back) samples


Gaussian kernel

Gaussian kernel

  • A popular kernel is the Gaussian function (think bell curve)

  • Sigma controls the width

  • Gaussians have circular “splat” footprints


Ray casting vs splatting

Ray Casting vs. Splatting

  • What are the differences in the images produced?

    • Think about aliasing

  • Efficiency considerations?

    • In what order are the voxel data points accessed?

      • For ray casting?

      • For splatting?


Summary of techniques

Summary of Techniques

  • Marching cubes:

    • Construct polygonal isosurfaces

    • Render with regular graphics pipeline

  • Ray casting:

    • Image space algorithm

    • Shoot rays from image into volume, integrate color & opacity along each ray

  • Volume splatting:

    • Object space algorithm

    • Project each voxel onto the image plane

      These are good ways of looking directly at the recorded data. What could you do to focus attention on significant features in the data?


Feature extraction

Feature Extraction

  • What is a significant feature?

    • Answer is application dependent

    • Often, regions with a high gradient are significant

  • What is the gradient of a voxel volume?

    • Look at the gradient of a 2D image…


Volume visualization visualization ii msim 842 cs 795 895

Derivative in X direction


Volume visualization visualization ii msim 842 cs 795 895

Derivative in Y direction


Gradient direction vectors

Gradient Direction Vectors

dI/dx:

dI/dy:


Volume gradient

Volume gradient

  • Is a 3x1 vector

    [dI/dx dI/dy dI/dz]

  • Vector points “uphill” in direction of increasing data value

  • Vector length (magnitude) indicates how quickly data values in the neighborhood are changing


Gradient magnitude

Gradient Magnitude

  • Given scalar data, the gradient magnitude can be computed

    • Result is another scalar data set

    • Each voxel value gets the length of the gradient vector computed for the original data

  • Large gradient magnitude values in a region indicate sharp changes in the original data


Gradient magnitude viz

Gradient Magnitude Viz.

  • Sharp changes are often significant

    • May indicate an edge or surface

      • Large gradient in CT data indicate a voxel is on bone surface

    • May indicate where something important is happening

      • Large temperature gradient in atmosphere can indicate a weather “front”

  • Can apply the three visualization methods already discussed to the gradient magnitude data


Other feature extraction methods

Other feature extraction methods

  • Can apply other types of pre-processing to the input data to find areas of interest

    • Search for blobs of a certain size

    • Search for areas with a certain texture or pattern

    • Filter out high frequency noise from input data

  • Create new data set by assigning voxel values based on how well original data matches the search criteria

  • Have to know what you’re looking for, what defines “significant” for a particular application


Still to come

Still to come…

  • Consideration of volume viz. for higher dimensional data

    • Vectors

    • Tensors

    • Time-varying sequences

    • Data with probabilistic uncertainty


Streamlines

Streamlines

Follow the flow of a vector field, tracing the path a particle would take


Tensor glyphs

Tensor Glyphs

  • Ellipsoids, Cuboids, Superquadratics (see right), & other 3D polyhedra and implicit surface shapes

  • For 3x3 matrices, illustrates 3 axes (or eigenvectors)


  • Login