Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive...

19
Helwig Hauser 1 Two-level Volume Rendering Helwig Hauser and Lukas Mroz (VRVis Research Center) Gian-Italo Bischi (University of Urbino) M. Eduard Gröller (Vienna Univ. of Techn.) Two-level Volume Rendering – fusing MIP and DVR

Transcript of Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive...

Page 1: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 1Two-level Volume Rendering

Helwig Hauserand Lukas Mroz

(VRVis Research Center)

Gian-Italo Bischi(University of Urbino)

M. Eduard Gröller(Vienna Univ. of Techn.)

Two-level Volume Rendering –fusing MIP and DVR

Page 2: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 2Two-level Volume Rendering

IntroductionVolume Rendering:

Goal: insight into 3D dataChallenge: rendering projectionGood solutions: DVR, MIP, etc.(different advantages)Best approach depends on:

Data, structure of dataUser, visualization goals(regular goal: focus’n’context vis.)

Logical: combinations of texs.,like hybrid-rendering (surfs./DVR)

Page 3: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 3Two-level Volume Rendering

Two-level Volume RenderingBasic Idea:

Prerequisite: segmentation into objectsLocal rendering, object-by-objectGlobal combination of representatives

Obj. 1 Obj. 2 Obj. 3 Obj. 2

DVR MIPMIP MIP DVR

DVR (five values only)

Viewing ray

local rend.

global rend.

local bufferglobal buffer

Page 4: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 4Two-level Volume Rendering

Two-level Vol.-Rend. – ExampleBones, vessels: DVR

rather binary transfer functionsgood 3D impression

Skin: MIPrarely occludinguseful context

Page 5: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 5Two-level Volume Rendering

Comparing DVR and MIPDVR:

strong influence: “thickness”spec. of TFs.: difficultpractical use: like surf. rend.3D impression, but occlusion

MIP:clear, sharp images (flat?!), one struct. of interest onlygood for complex objectsview-point variations neededwasting visual bandwidth?

Page 6: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 6Two-level Volume Rendering

Application: MIP for contextFocus and Context:

well-known from information visualizationoften part of user goal (orientation)context should not distract, occlude view

Features of MIP:1 voxel thick everywhere ⇒ easy-to-control transparencyconcentrates on values of importance (proper transfer function needed)

Page 7: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 7Two-level Volume Rendering

DVR vs. 2lVR 1/3All: DVR Skull, skin: MIP;

Vessels: DVR

Page 8: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 8Two-level Volume Rendering

DVR vs. 2lVR 2/3All: DVR Bones, skin: MIP;

Arteries: DVR

Page 9: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 9Two-level Volume Rendering

DVR vs. 2lVR 3/3All: DVR Context: MIP;

Organs: DVR

Page 10: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 10Two-level Volume Rendering

Dynamical System VisualizationOriginal Application:

game theory, econometricsdiscrete dynamical systems (maps)focus on:

attractorsbasins of attractionspatial inter-relation of basinscritical surfaces

Page 11: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 11Two-level Volume Rendering

Two-level Volume RenderingOuter basin: MIP Attractor: MIP

Page 12: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 12Two-level Volume Rendering

Interactive Rendering 1/2Shear-warp rendering:

no inter-voxel interpolation ⇒ fast!intermediate plane: two buffers(local, global) bi-linear warp

Reversed storage scheme:objects: stack of slices (varying z)slice: list of voxels (explicit x, y, etc.)re-ordering within slice: arbitrary clippingpreprocessing, 3 copies of data: x, y, z

Page 13: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 13Two-level Volume Rendering

Interactive Rendering 2/2renderListEntry[pvd,obj,z]:

list of all voxels of obj. objwhich share depth value z(principal viewing dir. pvd)object-opacity, z, clipping

Features:free space leaping,free clipping planes

Quantized Gradients ⇒ LUT for shadingJava-Impl. on PC (AMD Athlon 600)

x,y,...firstlastendz,α, ...

voxel data

clipped

active

renderListEntry

Page 14: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 14Two-level Volume Rendering

Further ExtensionsColor ≈ basin vicinity Opacity ≈ basin vicinity

Page 15: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 15Two-level Volume Rendering

Live demo

by Lukas Mroz

Page 16: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 16Two-level Volume Rendering

SummaryNew approach to fuse different volume rendering techniquesTwo-level approach: rendering locally and globally in parallelUseful application: focus’n’contextInteractive Implementation:

Reversed Storage SchemeShear-Warp Factorization, no interpolationQuantized Gradients~256³ ⇔ ~170ms (600MHz PC)

Page 17: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 17Two-level Volume Rendering

ConclusionsFocus’n’context: important for scientific visualization!DVR good for low-frequency objects, 3D,but: over-loaded imagesMIP good for complex objects & context,but: flat without anims.Two-level Volume Rendering: arbitrary local rendering (nonphotorealistic rend.)No optimal approach per se,interaction very important for visualization

Page 18: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 18Two-level Volume Rendering

AcknowledgementsThanx go to:

BandViz (FWF-funded project #P12811)Helmut Doleisch, Thomas TheußlVisMed (FFF-funded project)Innsbruck Univ. Hospital (medical datasets)

and thank you for your attention!

Page 19: Two-level Volume Rendering€¦ · Helwig Hauser Two-level Volume Rendering 13 Interactive Rendering 2/2 renderListEntry[pvd,obj,z]: list of all voxels of obj. obj which share depth

Helwig Hauser 19Two-level Volume Rendering

The end