35
Direct Volume Rendering (DVR): Ray- casting Mengxia Zhu Fall 2007

Direct Volume Rendering (DVR): Ray-casting

  • Upload
    ken

  • View
    37

  • Download
    0

Embed Size (px)

DESCRIPTION

Direct Volume Rendering (DVR): Ray-casting. Mengxia Zhu Fall 2007. Light: bouncing photons. Lights send off photons in all directions Model these as particles that bounce off objects in the scene Each photon has a wavelength and energy (color and intensity) - PowerPoint PPT Presentation

Citation preview

Page 1: Direct Volume Rendering (DVR): Ray-casting

Direct Volume Rendering (DVR): Ray-castingMengxia Zhu

Fall 2007

Page 2: Direct Volume Rendering (DVR): Ray-casting

Light: bouncing photons Lights send off photons in all directions

Model these as particles that bounce off objects in the scene

Each photon has a wavelength and energy (color and intensity)

When photon bounce, some energy is absorbed, some reflected, some transmitted

If we can model photon bounces we can generate image

Techniques: follow each photon from the light source until All of its energy is absorbed (after too many bounces) It departs the known universe It strikes the image and its contribution is added to

appropriate pixel

Page 3: Direct Volume Rendering (DVR): Ray-casting

Forward Ray Tracing Rays are the path of these photons This method of rendering by following photon path is called

ray tracing Forward ray tracing follows the photon in direction that light

travels (from the source) Big problem with this approach:

Only a tiny fraction of rays will reach the image Extremely slow

Ideal Scenario: We’d like to magically know which rays will eventually

contribute to the image, and trace only those

Direct: No conversion to surface geometry

Page 4: Direct Volume Rendering (DVR): Ray-casting

Backward Ray Tracing The solution is to start from the image and

trace backwards Start from the image and follow the ray until the

ray finds or fail to find a light source

Page 5: Direct Volume Rendering (DVR): Ray-casting

Backward Ray Tracing Basic ideas:

Each pixel gets light from just one direction- the line through the image point and focal point

Any photon contribute to that pixel’s color has to come from this direction

So head in that direction and find what is sending light this way

If we hit a light source-we’re done If we find nothing-we’re done

At the end we’ve done forward ray tracing, but only for rays that contribute to the image

Page 6: Direct Volume Rendering (DVR): Ray-casting

Basic Idea: Ray Casting

Based on the idea of ray tracing •Only consider Primary Ray

•Trace from eat each pixel

as a ray into object space

• Compute color value along the ray, composite

• Assign the value to the pixel

Page 7: Direct Volume Rendering (DVR): Ray-casting

Data Representation

•3D volume data are represented by a finite number of cross sectional slices (hence a 3D raster)•On each volume element (voxel), stores a data value (if it uses only a single bit, then it is a binary data set. Normally, we see a gray value of 8 to 16 bits on each voxel.)

N x 2D arraies = 3D array

Page 8: Direct Volume Rendering (DVR): Ray-casting

Data Representation (2)

What is a Voxel? – Two definitions

A voxel is a cubic cell, whichhas a single value cover the entire cubic region

A voxel is a data pointat a corner of the cubic cellThe value of a point inside the cell is determined by interpolation

Page 9: Direct Volume Rendering (DVR): Ray-casting

Ray Casting Stepping through the volume: a ray is cast into the volume, sampling the

volume at certain intervals

The sampling intervals are usually equi-distant, but don’t have to be

At each sampling location, a sample is interpolated / reconstructed from the grid voxels

popular filters are: nearest neighbor (box), trilinear (tent), Gaussian, cubic spline

Classification: map from density to color, opacity

Composite colors and opacities along the ray path

Page 10: Direct Volume Rendering (DVR): Ray-casting

Basic Idea of Ray-casting Pipeline

c1

c2

c3

Page 11: Direct Volume Rendering (DVR): Ray-casting

Raycasting

color

opacity

1.0

volumetric compositing

object (color, opacity)

Page 12: Direct Volume Rendering (DVR): Ray-casting

Raycasting

color

opacity

Interpolationkernel

1.0

object (color, opacity)

volumetric compositing

Page 13: Direct Volume Rendering (DVR): Ray-casting

Raycasting

color c = c s s(1 - ) + c

opacity = s (1 - ) +

1.0

object (color, opacity)

volumetric compositingInterpolationkernel

Page 14: Direct Volume Rendering (DVR): Ray-casting

Raycasting

color

opacity

1.0

object (color, opacity)

volumetric compositing

Page 15: Direct Volume Rendering (DVR): Ray-casting

Raycasting

color

opacity

1.0

object (color, opacity)

volumetric compositing

Page 16: Direct Volume Rendering (DVR): Ray-casting

Raycasting

color

opacity

1.0

object (color, opacity)

volumetric compositing

Page 17: Direct Volume Rendering (DVR): Ray-casting

Raycasting

color

opacity

1.0

object (color, opacity)

volumetric compositing

Page 18: Direct Volume Rendering (DVR): Ray-casting

Raycasting

color

opacity

object (color, opacity)

volumetric compositing

Page 19: Direct Volume Rendering (DVR): Ray-casting

Trilinear - Interpolationeye

image pixel

viewing ray

voxel

sample point

trilinearinterpolation

Page 20: Direct Volume Rendering (DVR): Ray-casting

Classification/Transfer Function

Maps raw voxel value into presentable entities: color, intensity, opacity, etc.

Raw-data material (R, G, B, , Ka, Kd, Ks, .)

Region of interest: high opacity (more opaque) no interest: translucent or transparent

Often use look-up tables (LUT) to store the transfer function

Page 21: Direct Volume Rendering (DVR): Ray-casting

Levoy – Gradient/Normals

Central difference per voxel

2

2

2

1,,1,,

,1,,1,

,,1,,1

kjikjiz

kjikjiy

kjikjix

vvG

vvG

vvG

X+1y-1,

Y+1

z-1

Page 22: Direct Volume Rendering (DVR): Ray-casting

Levoy - Shading

Phong Shading + Depth Cueing

))()((21

nsd

pap HxNkLxNk

xdkk

CkCxC

Cp = color of parallel light source

ka / kd / ks = ambient / diffuse / specular light coefficient

k1, k2 = fall-off constants d(x) = distance to picture plane L = normalized vector to light H = normalized vector for maximum highlight N(xi) = surface normal at voxel xi

Page 23: Direct Volume Rendering (DVR): Ray-casting

Compositing

Front-to-back

back-to-front

(1 )

(1 )s s

s s

C C c

(1 )

(1 )s s

s

C c C

Advantage: early ray termination

Advantage: object approach suitable for hardware implementation

It is the accumulation of colors weighted by opacities

Page 24: Direct Volume Rendering (DVR): Ray-casting

Ray Traversal Schemes

Depth

IntensityMax

Average

Accumulate

First

Page 25: Direct Volume Rendering (DVR): Ray-casting

Ray Traversal - First

Depth

Intensity

First

Page 26: Direct Volume Rendering (DVR): Ray-casting

Ray Traversal - Average

Depth

Intensity

Average

Average: produces basically an X-ray picture

Page 27: Direct Volume Rendering (DVR): Ray-casting

Ray Traversal - MIP

Depth

IntensityMax

Max: Maximum Intensity Projectionused for Magnetic Resonance Angiogram

Page 28: Direct Volume Rendering (DVR): Ray-casting

Ray Traversal - Accumulate

Depth

Intensity

Accumulate

Accumulate opacity while compositing colors: make transparent layers visible!Levoy ‘88

Page 29: Direct Volume Rendering (DVR): Ray-casting

Volume Rendering PipelineAcquired values

Data preparation

Prepared values

classificationshading

Voxel colors

Ray-tracing / resampling Ray-tracing / resampling

Sample colors

compositing

Voxel opacities

Sample opacities

Image Pixels

Page 30: Direct Volume Rendering (DVR): Ray-casting

VTK Ray Casting Example The given data represents a mummy

preserved for a long time. So the skin is dried and not very crisp when compared to the data set given in Project 3. The  dried skins iso value was found to be around 70 to 90. The skull iso value was around 100 to 120. In order to visualize this data set a opacity transfer function and a color transfer function are constructed. The opacity for values ranging from 0 - 50 is chosen to be 0.0 and 55 - 80 is chosen to be 0.1 (semi translucent) and finally the bone values ranging from 90 - 120 is given a complete opaque value of 1.0. The colors are chosen in such a way that the skin range has a light blue and the bone has a complete white and all other values have a color value of 0.0.

www.cs.utah.edu/.../sci_vis/prj4/REPORT.html

Page 31: Direct Volume Rendering (DVR): Ray-casting

VTK Ray Casting Example create the maximum

intensity projection of the image. This looks more like an x-ray of the mummy. I used the inbuilt method in VTK called vtkVolumeRayCastMIPFunction . The opacity transfer function plays a major role in this technique and the color transfer function is used to adjust the contrast and get good looking images.

www.cs.utah.edu/.../sci_vis/prj4/REPORT.html

Page 32: Direct Volume Rendering (DVR): Ray-casting

Adaptive Termination

The goal of adaptive termination is to quickly identify the last sample along a ray that significantly changes the color of the ray. We define a significant color change as one in which C_out – C_in > Epsilon for some small Epsilon > 0. Thus, Once opacity first exceeds 1-Epsilon, the color will not change significantly. This is the termination criteria.

Higher values of Epsilon reduce rendering time, while lower values of Epsilon reduce image artifacts producing a higher quality image.

Page 33: Direct Volume Rendering (DVR): Ray-casting

Four Steps Summary The volume ray casting algorithm comprises : Ray casting. For each pixel of the final image, a ray of sight is shot ("cast")

through the volume. At this stage it is useful to consider the volume being touched and enclosed within a bounding primitive, a simple geometric object — usually a cuboid — that is used to intersect the ray of sight and the volume.

Sampling. Along the part of the ray of sight that lies within the volume, equidistant sampling points or samples are selected. As in general the volume is not aligned with the ray of sight, sampling points usually will be located in between voxels. Because of that, it is necessary to trilinearly interpolate the values of the samples from its surrounding voxels.

Shading. For each sampling point, the gradient is computed. These represent the orientation of local surfaces within the volume. The samples are then shaded, i. e. coloured and lighted, according to their surface orientation and the source of light in the scene.

Compositing. After all sampling points have been shaded, they are composited along the ray of sight, resulting in the final colour value for the pixel that is currently being processed. The composition is derived directly from the rendering equation and is similar to blending acetate sheets on an overhead projector.

http://en.wikipedia.org/wiki/Volume_ray_casting

Page 34: Direct Volume Rendering (DVR): Ray-casting

Exercises

Page 35: Direct Volume Rendering (DVR): Ray-casting

References

This set of slides references slides used by Prof. Torsten Moeller (Simon Fraser), Prof. Han-Wei Shen (Ohio State), Prof. Jian Huang (UTK).

Prof. Karki at Louisiana State University Prof. Frank Pfenning at Carnegie Mellon

University