3D Volume Visualization. Volume Graphics Maintains a 3D image representation that is close to the...

Preview:

Citation preview

3D Volume Visualization3D Volume Visualization

Volume GraphicsVolume Graphics

Maintains a 3D image representation that is close to the underlying fully-3D object (but discrete)

경계표면 (Boundary Surface) 뿐만 아니라 그 내부 정보까지 표현하고 렌더링하는데 유리

N x 2D arraies = 3D array

Input Data: 3D Images (Volumetric Image)Input Data: 3D Images (Volumetric Image)

it is a 3D array of point samples, called voxels (volume elements)

the point samples are located at the grid points

the process of generating a 2D image from the 3D volume is called volume rendering

Data AcquisitionData Acquisition

Scanned Data CT MRI Ultrasound Electron Microscopy

Simulated Data

Volume Visualization MethodsVolume Visualization Methods

Volume Rendering Ray casting

Isosurface Extraction triangulation

Volume Rendering (Basic Idea)Volume Rendering (Basic Idea)

Based on the idea of ray tracing

• Trace from each pixel as a ray into object space

• Compute and accumulate color/opacity value along the ray

• Assign the value to the pixel

Transfer FunctionTransfer Function

Maps voxel data values to optical properties

Color/opacity map

Emphasize or classify features of interest in the data

RaycastingRaycasting

color

opacity

1.0

volumetric compositing

object (color, opacity)

RaycastingRaycasting

color

opacity

Interpolationkernel

1.0

object (color, opacity)

volumetric compositing

RaycastingRaycasting

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

opacity = s (1 - ) +

1.0

object (color, opacity)

volumetric compositingInterpolation

kernel

RaycastingRaycasting

color

opacity

1.0

object (color, opacity)

volumetric compositing

RaycastingRaycasting

color

opacity

1.0

object (color, opacity)

volumetric compositing

RaycastingRaycasting

color

opacity

1.0

object (color, opacity)

volumetric compositing

RaycastingRaycasting

color

opacity

1.0

object (color, opacity)

volumetric compositing

RaycastingRaycasting

color

opacity

object (color, opacity)

volumetric compositing

Volume Ray MarchingVolume Ray Marching

1. Raycast – once per pixel

2. Sample – uniform intervals along ray

3. Interpolate – trilinear interpolate, apply transfer function

4. Accumulate – integrate optical properties

Composition (alpha blending)Composition (alpha blending)

3D Texture Based Volume Rendering3D Texture Based Volume Rendering

Use Image-space axis-aligned slicing plane:

the slicing planes are always parallel to the view plane

IsosurfaceIsosurface

Isosurface (i.e. Level Set ) : C(w) = { x | F(x) - w = 0 }( w : isovalue , F(x) : real-valued function , usually 3D volume data )

isosurfacing

얼굴 CT 볼륨 영상밀도함수 F(x,y,z)

얼굴 피부 등위면w = 피부 밀도값

두개골 등위면w = 뼈 밀도값

등위면 추출F(x,y,z)=w

Marching CubesMarching Cubes

[Lorensen and Cline, ACM SIGGRAPH ’87]

Goal Input : 2D/3D/4D imaging data (scalar) Interactive parameter : isovalue selection Output : Isosurface triangulation

isosurfacing

Surface Intersection in a CubeSurface Intersection in a Cube

assign ZERO to vertex outside the surface

assign ONE to vertex inside the surface

Note: Surface intersects those cube edges where one

vertex is outside and the other inside the surface

Surface Intersection in a CubeSurface Intersection in a Cube

There are 2^8=256 ways the surface may intersect the cube

Triangulate each case

Marching Cubes TableMarching Cubes Table

Using symmetries reduces 256 cases into 15 cases

<wrong surface>

Surface intersection in a cubeSurface intersection in a cube

Create an index for each case:

Interpolate surface intersection along each edge

Calculating normalsCalculating normals

Calculate normal for each cube vertex:

Interpolate the normals at

the vertices of the triangles:

Problems in Marching CubesProblems in Marching Cubes

May Generate very large meshes Simplification

Can we generate 3D mesh? Interval Volume Tetrahedrization

Computationally Slow Acceleration techniques , CUDA

Ambiguity problem Trilinear isosurface

How to select isovalue? Contour spectrum

Problems in Marching CubesProblems in Marching Cubes

How to preserve sharp features? Dual contouring

Hard to deal with extremely large volume data Parallel Out-of-core

Segmenting Isosurface Components? Contour Tree

Volume Structure Contour Tree , Morse Complex

ComparisonComparison

Volume Rendering 투명도 처리를 통해 3D 볼륨 전체를 2D 화면에 보여줌 뚜렷한 경계면이 없는 물체도 효과적으로 나타냄 Transfer function 의 조작에 따라 결과 영상의 quality

가 많이 달라질 수 있으므로 , 숙련된 조작을 필요로 함 .

Isosurface Extraction Triangulation 을 하기 때문에 Surface Mesh 표현법의

장점 (fast rendering, shading, 등 ) 을 가짐 하나의 isosurface 는 볼륨 전체를 나타내는 것이

아니라 선택된 isovalue 값을 가지는 점의 집합만 보여줌 .

Visualization SWVisualization SW

Volume Rover http://www.cs.utexas.edu/~bajaj/cvc/software/volrover.shtml

Transfer function

Recommended