Presentation on theme: "7.1 Vis_04 Data Visualization Lecture 7 3D Scalar Visualization Part 2 : Volume Rendering- Introduction."— Presentation transcript:
7.1 Vis_04 Data Visualization Lecture 7 3D Scalar Visualization Part 2 : Volume Rendering- Introduction
7.2 Vis_04 Volume Rendering n This is a quite different mapping technique for visualization of 3D scalar data (compared with isosurfacing) n Aims to relate volume to a partially opaque gel material - colour and opacity at a point depending on the scalar value n By controlling the opacity, we can: – EITHER show surfaces through setting opacity to 0 or 1 – OR see both exterior and interior regions by grading the opacity from 0 to 1 [Note: opacity = 1 - transparency]
7.3 Vis_04 Example - Forest Fire From Numerical Model of Forest Fire, NCAR, USA
7.4 Vis_04 Medical Imaging n Major application area is medical imaging n Different scanning techniques include: – CT (Computed Tomography) – MRI (Magnetic Resonance Imaging) n Three-dimensional images constructed from multiple 2D slices Scanners give average value for a region - rather than value at a point Interslice gap Slice
7.5 Vis_04 Examples of Brain Scans Computerized Tomography Magnetic Resonance Imaging SPECT
7.6 Vis_04 Example - Medical Imaging Rendered by VolPack software CT scan data 256x256x226
7.7 Vis_04 Data Classification – Assigning Opacity to CT data n CT will identify fat, soft tissue and bone – Each will have known absorption levels, say f fat, f soft_tissue, f bone CT value Opacity f soft_tissue 0 1 This transfer function will highlight soft tissue
7.8 Vis_04 Data Classificatiion – Assigning Opacity to CT Data n To show all types of tissue, we assign opacities to each type and linearly interpolate between them CT value Opacity f soft_tissue 0 1 f fat f bone
7.9 Vis_04 Data Classification - Constructing the Gel - CT Data CT number opacity This is known as opacity transfer function In practice, the boundaries between materials are of key importance - hence a two-stage algorithm used: (i) Calculate as above (ii) Scale by gradient of function to highlight boundaries * = |grad f | grad f = [df/dx,df/dy,df/dz] (f) ? So what is opacity in homogeneous areas ?
7.10 Vis_04 Data Classification - Constructing the Gel - CT Data n Colour classification is done similarly white red yellow Air Fat Soft Tissue Bone CT number Known as colour transfer function
7.11 Vis_04 Data Classification - Constructing the Gel - Temperature Data n Volume rendering is also useful for other data - eg CFD temperature n Opacity transfer function: possibly increase with temperature n Colour transfer function: blue (0,0,1) red (1,0,0) temperature
7.12 Vis_04 Data Classification in IRIS Explorer n The ColourMap tool in IRIS Explorer can be used to assign colour and transparency to data
7.13 Vis_04 Example Storm cloud data rendered by IRIS Explorer – Isosurface & volume rendering
7.14 Vis_04 Ray Casting to Render the Volume 1 Assign colour and opacity to data values – Classification process assigns gel colour to the original data 2 Apply light to volume – Lighting model will give the light reflected to the viewer at any point in volume - if we know the normal – Imagine an isosurface shell through each data point - surface normal is provided by gradient vector (see lecture 6) – Thus we get colour reflected at each data point
7.15 Vis_04 Casting the Rays and Taking Samples eye point data volume image plane ray entry point exit point sample points one unit apart (colour and opacity by interpolation) 3. For each pixel in image a) cast ray from eye through pixel into volume, taking samples at regular unit intervals b) measure colour reflected at each sample in direction of ray c) composite colour from all samples along ray, taking into account the opacity of gel it passes through - en route to the eye
7.16 Vis_04 Compositing the Samples along a Ray - One Sample opaque background, emitting I 0 eye point I0I0 I* Intensity - I 1 Opacity - I* = I 0 (1 - ) + I 1 Imagine block of gel, one unit wide around sample point
7.17 Vis_04 Compositing the Samples along a Ray - Two Samples opaque background eye point I0I0 I* Intensity - I 1 Opacity - I* = I 0 (1 - ) + I 1 Intensity - I 2 Opacity - 2 I** I** = I* (1 - 2 ) + I 2 2 = I 0 (1 - 1 )(1 - 2 ) + I 1 1 (1 - 2 ) + I 2 2
7.18 Vis_04 Compositing the Samples along a Ray n The process continues for all samples, yielding a final intensity, or colour, for the ray - and this is assigned to the pixel – try it for a third sample, then you should be able to deduce a general formula I = n i=0 I i i n j=i+1 (1 - j ) n Note that if one compositing step is done for each ray in turn, then the next step, and so on, the image will be created in a sweep from back to front, showing all the data (even behind opaque parts)
7.19 Vis_04 Front to Back Compositing Compositing can also work front-to-back: Intensity I n Opacity n eye point I* I* = n I n Intensity I n Opacity n eye point I** I** = I* + (1 - *) n-1 I n-1 Intensity I n-1 Opacity n-1 * = n - cumulative opacity ** = * + (1- *) n-1
7.20 Vis_04 Front-to-Back Compositing - Early Termination n The advantage of front-to-back compositing is that we can stop the process if the accumulated opacity reaches no point in going further n Again, you should be able to deduce the general formula if you look at three samples – can you show that front-to-back and back-to- front compositing give the same answer?
7.21 Vis_04 Maximum Intensity Projection n When performance rather than accuracy is the goal, we can avoid compositing altogether and approximate I by maximum intensity along ray n MIP : Maximum Intensity Projection n Often used in angiography...
7.22 Vis_04 Maximum Intensity Projection n Performance is major issue – lack of shading in image drives need for real-time rotation – fast identification of maximum becomes important image plane volume - analytical maximum in each cell along ray - maximum of samples along ray - skip cells below maximum
7.23 Vis_04 Next Lecture n Parkinson Room 108 n Monday n Hope to have a second lecture on Monday – … room to be announced!