Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal:...

28
RHPCS, ABB 131-G RHPCS, ABB 131-G Email: [email protected] Email: [email protected] Phone: 905-525-9140 x 22540 Phone: 905-525-9140 x 22540 Visualization and 3D Visualization and 3D Graphics Graphics Weiguang Guan Weiguang Guan

Transcript of Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal:...

Page 1: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

RHPCS, ABB 131-GRHPCS, ABB 131-GEmail: [email protected]: [email protected]: 905-525-9140 x 22540Phone: 905-525-9140 x 22540

Visualization and 3D Visualization and 3D GraphicsGraphics

Weiguang GuanWeiguang Guan

Page 2: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

OutlineOutline

■ OverviewOverview■ Introduction to 3D graphics and Introduction to 3D graphics and

visualizationvisualization■ OpenGLOpenGL■ VTK (Visualization Toolkit)VTK (Visualization Toolkit)

Page 3: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

OverviewOverview

■ Goal: Knowledge and skill to Goal: Knowledge and skill to visualize research data of various visualize research data of various formsforms

■ Content: 3D graphics programing Content: 3D graphics programing usingusing◆ OpenGL (low-level graphics library)OpenGL (low-level graphics library)◆ VTK (Higher-level graphics library)VTK (Higher-level graphics library)

■ Preliminary knowledgePreliminary knowledge◆ C/C++,C/C++, tcl/tk tcl/tk ◆ Basics of computer graphicsBasics of computer graphics

✦ 3D transformation 3D transformation ✦ Illumination modelIllumination model

Page 4: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

OverviewOverview

■ Web resourcesWeb resources◆ www.opengl.orgwww.opengl.org◆ www.vtk.orgwww.vtk.org◆ www.cmake.orgwww.cmake.org

■ BooksBooks◆ Computer Graphics, Principles and Computer Graphics, Principles and

Practice, Second Edition, James D. Practice, Second Edition, James D. Foley, et al, Addison Wesley, 1990.Foley, et al, Addison Wesley, 1990.

◆ The OpenGL Programming Guide - The The OpenGL Programming Guide - The Redbook, fifth editionRedbook, fifth edition..

Page 5: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

OverviewOverview

◆ The OpenGL Reference Manual - The The OpenGL Reference Manual - The Bluebook, fourth editionBluebook, fourth edition

◆ The Visualization Toolkit: An Object-The Visualization Toolkit: An Object-oriented Approach to 3D Graphics, 3rd oriented Approach to 3D Graphics, 3rd edition.edition.

◆ The Visualization Toolkit User’s GuideThe Visualization Toolkit User’s Guide

■ Schedule (6wk x 3) = 18 hoursSchedule (6wk x 3) = 18 hours◆ OpenGL (3wk x 3 = 9 hours)OpenGL (3wk x 3 = 9 hours)◆ VTK (3wk x 3 = 9 hours)VTK (3wk x 3 = 9 hours)◆ Lecture-to-lab ratio 1:4Lecture-to-lab ratio 1:4◆ 6 projects (60%) + final exam (40%)6 projects (60%) + final exam (40%)

Page 6: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

RHPCS, ABB 131-GRHPCS, ABB 131-GEmail: [email protected]: [email protected]: 905-525-9140 x 22540Phone: 905-525-9140 x 22540

Introduction to 3D Graphics and Introduction to 3D Graphics and VisualizationVisualization

Weiguang GuanWeiguang Guan

Page 7: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

OutlineOutline

■ Examples of visualization/3D Examples of visualization/3D graphicsgraphics

■ 3D graphics primer 3D graphics primer ■ Visualization primerVisualization primer

Page 8: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Examples of visualization/3D Examples of visualization/3D graphicsgraphics

Wirefram

e

Page 9: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Examples of visualization/3D Examples of visualization/3D graphicsgraphics

Shaded S

urfaces

Page 10: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Examples of visualization/3D Examples of visualization/3D graphicsgraphics

Shaded S

urfaces with T

exture mapped

Page 11: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Examples of visualization/3D Examples of visualization/3D graphicsgraphics

Fogging effect

Page 12: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Examples of visualization/3D Examples of visualization/3D graphicsgraphics

Volum

e rendering (density volume)

Page 13: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Examples of visualization/3D Examples of visualization/3D graphicsgraphics

Volum

e rendering (3D m

edical images)

Page 14: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

3D Graphics Primer3D Graphics Primer

■ What is computer graphicsWhat is computer graphicstransforms graphics primitives (points, lines, transforms graphics primitives (points, lines,

polygons, etc) into pictures or animationspolygons, etc) into pictures or animations

■ Essentials in 3D graphicsEssentials in 3D graphics

Page 15: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

3D Graphics Primer3D Graphics Primer

◆ 3D scene (composed of objects)3D scene (composed of objects)✦ Geometric shape/location/orientationGeometric shape/location/orientation✦ Surface material properties (ambient, diffuse, Surface material properties (ambient, diffuse,

specular, shininess, emission)specular, shininess, emission)

◆ Lights (one or more)Lights (one or more)✦ Point light sourcePoint light source (position, ambient, diffuse, (position, ambient, diffuse,

specular, etc)specular, etc)✦ Spot light source (+ spot direction, spot cut-off, Spot light source (+ spot direction, spot cut-off,

etc)etc)✦ Parallel light sourceParallel light source (distant point light source) (distant point light source)✦ Ambient lightAmbient light (contained in point/spot light (contained in point/spot light

sources)sources)

◆ ViewerViewer✦ Position Position ✦ Orientation Orientation ✦ Upward directionUpward direction

Page 16: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

3D Graphics Primer3D Graphics Primer

■ 3D transformation3D transformation◆ ScalingScaling

[x’, y’, z’][x’, y’, z’]tt = s [x, y, z] = s [x, y, z]tt

◆ RotationRotation[x’, y’, z’][x’, y’, z’]tt = R = R3x33x3 [x, y, z] [x, y, z]tt

where Rwhere R3x33x3 is an orthogonal matrix. is an orthogonal matrix.

◆ TranslationTranslation[x’, y’, z’][x’, y’, z’]tt = [x, y, z] = [x, y, z]tt + [dx, dy, dz] + [dx, dy, dz]tt

Page 17: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

3D Graphics Primer3D Graphics Primer

◆ Homogeneous coordinatesHomogeneous coordinates[x, y, z][x, y, z]tt [x, y, z, 1] [x, y, z, 1]tt [wx, wy, wz, w] [wx, wy, wz, w]tt

◆ Unified transformation Unified transformation [w’x’, w’y’, w’z’, w’][w’x’, w’y’, w’z’, w’]tt = M = M4x44x4

[wx, wy, wz, w][wx, wy, wz, w]tt

11000000

00ss0000

0000ss00

000000ss✦ ScalingScaling

MMSS = =

✦ TranslationTranslation

MMTT = =

✦ RotationRotation

MMRR = =

11000000

00iihhgg

00ffeedd

00ccbbaa

11000000

dzdz110000

dydy001100

dxdx000011

Page 18: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

3D Graphics Primer3D Graphics Primer

◆ Transformation combinationTransformation combinationOrder of transformations mattersOrder of transformations matters

Rotation Rotation Translation Translation Translation Translation RotationRotation

MM = = MMT T MMR R MM = = MMR R MMT T

Page 19: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

3D Graphics Primer3D Graphics Primer

■ Illumination model Illumination model (Phong’s)(Phong’s)

RRcc = R = Racac + R + Rdcdc + R + Rscsc + + EEcc

where where c =r, g, bc =r, g, b

a: ambienta: ambient

d: diffused: diffuse

s: speculars: specular

R: reflected lightR: reflected light

E: Emitted lightE: Emitted light

αβ

sin sin ββ----ββcos cos ααcos cos αα--ααRRscscRRdcdcRRacac

Page 20: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

3D Graphics Primer3D Graphics Primer

■ Camera ModelCamera Model◆ Eye Coordinate Eye Coordinate

systemsystem✦ PositionPosition✦ OrientationOrientation✦ Upward directionUpward direction

◆ FrustumFrustum✦ Left/Right clipping Left/Right clipping

planesplanes✦ Bottom/Top Bottom/Top

clipping planesclipping planes✦ Near/Far clipping Near/Far clipping

planesplanes

Page 21: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

3D Graphics Primer3D Graphics Primer

■ RenderingRendering◆ Positioning objects in 3D spacePositioning objects in 3D space◆ ClippingClipping◆ Mapping onto viewportMapping onto viewport◆ Rasterization and anti-aliasingRasterization and anti-aliasing

Page 22: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

3D Graphics Primer3D Graphics Primer

■ FramebufferFramebuffer◆ Color buffer (single or double)Color buffer (single or double)◆ Depth buffer (or z-buffer)Depth buffer (or z-buffer)

0000000000000000

0000000000000000

1111111111111111

0000000000000000

0000000000000000

0000000000000000

0000000000000000

0000000000000000

1111111111111111

1111111111111111

1111111111111111

1111111111111111

0000000000000000

0000000000000000

0000000000000000

Red, Green, Blue

2222222222222222

2222222222222222

4444444444444444

5555555555555555

5555555555555555

Depth

Page 23: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Visualization PrimerVisualization Primer

■ What is visualizationWhat is visualizationtransforms data into graphical primitivestransforms data into graphical primitives

■ Why visualizationWhy visualizationTo perceive and understand structures To perceive and understand structures

contained in datacontained in data

■ TerminologyTerminology◆ Data visualizationData visualization◆ Scientific visualizationScientific visualization◆ Information visualizationInformation visualization

Page 24: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Visualization PrimerVisualization Primer

■ Multi-disciplinary fieldMulti-disciplinary field◆ Computer graphics Computer graphics

Geometric description Geometric description rendered images rendered images

◆ ImagingImagingReal world Real world samplings of curtain properties, samplings of curtain properties,

e.g., absorption of x-ray in CT imaging, e.g., absorption of x-ray in CT imaging, proton density in MRI, velocity, momentum, proton density in MRI, velocity, momentum, photo-radioactivity, etcphoto-radioactivity, etc

◆ Computer visionComputer visionImages (photos) Images (photos) Geometric description Geometric description

Page 25: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Visualization PrimerVisualization Primer

■ Data to be visualizedData to be visualized◆ Geometric dataGeometric data

Point, line, curve, polygon, curved surfacePoint, line, curve, polygon, curved surface

◆ Discrete sampled data from device or Discrete sampled data from device or simulationsimulation✦ Dimensionality: 1D, 2D, Dimensionality: 1D, 2D, 3D3D + time + time✦ Sampling topology: Sampling topology: structuredstructured/unstructured/unstructured✦ Sampling geometry: Sampling geometry: regularregular, rectilinear, , rectilinear,

curvilinearcurvilinear✦ Number of quantities: Number of quantities: scalarscalar (1), vector (1), vector

(>1), tensor (9) (>1), tensor (9)

Page 26: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Visualization PrimerVisualization Primer

■ Volume visualization --- visualization Volume visualization --- visualization of 3D array of data of 3D array of data ◆ Volume rendering: volume viewed as Volume rendering: volume viewed as

translucent gel that emits and occludes translucent gel that emits and occludes lights.lights.✦ Internal structures are displayedInternal structures are displayed✦ Difficult to understandDifficult to understand

◆ Surface rendering: extract surfaces Surface rendering: extract surfaces from volume, then apply traditional from volume, then apply traditional computer graphics technique to display computer graphics technique to display them.them.✦ Only surfaces are displayedOnly surfaces are displayed✦ Easy to understandEasy to understand

Page 27: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

Visualization PrimerVisualization Primer

■ Volumetric data Volumetric data Geometric data Geometric dataIso-surfacing algorithm that extracts Iso-surfacing algorithm that extracts

surface in a volume defined by an iso-surface in a volume defined by an iso-valuevalue

■ Geometric data Geometric data Volumetric data Volumetric dataVoxelization, a process to discretize a Voxelization, a process to discretize a

geometric description.geometric description.

Page 28: Visualization and 3D Graphics - McMaster Universityguanw/course/vis3D.pdf · Overview Goal: Knowledge and skill to visualize research data of various forms Content: 3D graphics programing

The End ofThe End of

Introduction to 3D Graphics Introduction to 3D Graphics and Visualizationand Visualization