3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques ....
Transcript of 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques ....
![Page 1: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/1.jpg)
cs6630 | November 6 2014
Miriah Meyer University of Utah
1
3D GRAPHICS
![Page 2: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/2.jpg)
administrivia . . .
2
![Page 3: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/3.jpg)
3
- lectures and office hours next week !
-new due date for final assignment
![Page 4: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/4.jpg)
last time . . .
4
![Page 5: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/5.jpg)
© Weiskopf/Machiraju/Möller 19
Volume Visualization
• 2D visualization slice images (or multi-planar reformating MPR)
• Indirect 3D visualization isosurfaces (or surface-shaded display SSD)
• Direct 3D visualization (direct volume rendering DVR)
![Page 6: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/6.jpg)
© Weiskopf/Machiraju/Möller 19
Volume Visualization
• 2D visualization slice images (or multi-planar reformating MPR)
• Indirect 3D visualization isosurfaces (or surface-shaded display SSD)
• Direct 3D visualization (direct volume rendering DVR)
![Page 7: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/7.jpg)
Compare
![Page 8: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/8.jpg)
Properties• Preimage of a single scalar value:
• Concept generalizes to any dimension
• Closed except at boundaries
• Nested: isocontours of different isovalues do not cross • Can consider the zero-set case (generalizes) • f(x,y) = v ⇔ f(x,y) - v = 0
• Normals given by gradient vector of f()
![Page 9: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/9.jpg)
Approach to Contouring in 2D• Contour must cross every grid line connecting two
grid points of opposite sign
CS530 - Introduction to Scientific Visualization Oct 7, 2014,
• Idea: primitives must cross every grid line connecting two grid points of opposite sign
Interpolate along grid lines
Contours in 2D
+ -
x
xGet cell Identify grid
lines w/crossFind crossings
Primitives naturally chain together
![Page 10: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/10.jpg)
Case Table
![Page 11: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/11.jpg)
10
![Page 12: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/12.jpg)
today . . .
11
![Page 13: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/13.jpg)
3D Graphics
![Page 14: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/14.jpg)
• The key idea for today:
• Visualization transforms data into primitives that are rendered using (three-dimensional) computer graphics techniques
![Page 15: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/15.jpg)
Graphics Primitives
![Page 16: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/16.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Graphics PrimitivesPoints• Positions in space• 2D, 3D coordinates• 0-dimensional objects
![Page 17: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/17.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Graphics PrimitivesLines• 1-dimensional objects• Polygonal description (”polyline”)
• piecewise linear
![Page 18: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/18.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Graphics PrimitivesLines• 1-dimensional objects• Parametric description
• • e.g., splines
P : t 2 I 7! P (t) 2 IRn
P (t)
![Page 19: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/19.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Graphics PrimitivesSurfaces• 2-dimensional objects (in 3D)• Polygonal description
• Important topologies (special cases)
1
2
3
4
5
6
7
8
triangle fan triangle strip quad strip
![Page 20: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/20.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Graphics PrimitivesSurfaces• 2-dimensional objects• Polygonal description
• typically: triangle mesh (piecewise linear)
![Page 21: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/21.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Graphics PrimitivesSurfaces• 2-dimensional objects• Parametric description
• • bi-quadratic, bi-cubic, Bezier,
splines, NURBS...
P : (u, v) ⇤ I � J ⌅⇥ P (u, v) ⇤ IRn
![Page 22: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/22.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Primitive AttributesColor Normal
Texture coordinates
Opacity
![Page 23: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/23.jpg)
The Graphics Pipeline
![Page 24: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/24.jpg)
The Pipeline
• Objects are kept and manipulated in 3D until the projection step
• After converting to screen space coordinates, additional coloring and texturing can be applied more rapidly
Primitives
Modeling/Transformation
Camera Transformation
Lighting
Projection / Clipping
Rasterization
Texturing http://en.wikipedia.org/wiki/Graphics_pipeline
![Page 25: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/25.jpg)
Modeling/Transformation
• Each 3D primitive is assigned locations in the world coordinate system.
• Transformations can be applied globally or locally to individual objects in this space
• Homogeneous coordinate spaces are used so that we can express translations in 3D. Transformations stored as 4x4 matrices
![Page 26: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/26.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/201433
Camera
View angle
Front clipping plane
Back clipping plane
Focal pointCameraposition
View up
Direction of projectionParallel /
Perspective
Image plane
• Need to specify eye position, eye direction, and eye orientation (or “up” vector)
• This information defines a transformation from world coordinates to camera coordinates
![Page 27: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/27.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Camera• Degrees of freedom
Roll
Focal Point
Azimuth
Elevation
Directi
on of
projec
tion
![Page 28: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/28.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Projections Orthogonal projection
• parallel lines remain parallel• objects do not change size as they get closer• good for checking alignment
![Page 29: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/29.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
ProjectionsPerspective projection
• parallel lines do not necessarily remain parallel
• objects get larger as they get closer
• fly-through realism
![Page 30: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/30.jpg)
Orthographic vs. Perspective Projections
Dianne Hansford
![Page 31: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/31.jpg)
Perspective Projection• Maps points in 4D (where it is easier to define the
view volume and clipping planes) to positions on the 2D display through multiplication and homogenization
![Page 32: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/32.jpg)
Shading
![Page 33: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/33.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Shading• Shading reveals the shape of 3D objects
through their interaction with light• Shading creates colors as a function of:
• surface properties• surface normals• lights
• Rich subject (we are only interested in basics here)
• Surfaces show information, lights show surfaces, shading controls how
![Page 34: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/34.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Phong lighting model (1975)• Specular reflection• Diffuse reflection• Ambient reflection
17
Shading
![Page 35: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/35.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Phong lighting model (1975)• Specular reflection• Diffuse reflection• Ambient reflection
I = ksIs + kdId + kaIa
Light intensity per light source and per color channel
17
Shading
![Page 36: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/36.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Phong lighting model (1975)• Specular reflection• Diffuse reflection• Ambient reflection
I = ksIs + kdId + kaIa
Light intensity per light source and per color channel
17
Shading
relative contributions(material specific)
![Page 37: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/37.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Phong lighting model (1975)• Specular reflection• Diffuse reflection• Ambient reflection
I = ksIs + kdId + kaIa
Light intensity per light source and per color channel
17
Shading
relative contributions(material specific)
![Page 38: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/38.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Phong lighting model (1975)• Specular reflection• Diffuse reflection• Ambient reflection
I = ksIs + kdId + kaIa
Light intensity per light source and per color channel
17
Shading
relative contributions(material specific)
![Page 39: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/39.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/201418
ShadingPhong lighting model: Specular Reflection• mirror-like surfaces• Specular reflection depends on position of the
observer relative to light source and surface normal
⇥l
⇥n⇥r
⇥v� � �
![Page 40: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/40.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/201419
ShadingPhong lighting model: Specular Reflection
⇥l
⇥n⇥r
⇥v� � �
Is = Ii cosn � = Ii cosn < �r,�v >
![Page 41: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/41.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/201420
ShadingPhong lighting model: Diffuse Reflection• Non-shiny surfaces• Diffuse reflection depends only on relative position
of light source and surface normal.
⇥l
⇥n
�
![Page 42: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/42.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/201421
ShadingPhong lighting model: Diffuse Reflection
Id = Ii cos � = Ii cos < �l,�n >
⇥l
⇥n
�
Id = Ii cos ✓ = Ii (~l · ~n)
![Page 43: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/43.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/201422
ShadingPhong lighting model
⇥l
⇥n⇥r
⇥v� � �
sum over all light sourcesambient light
per color channel
I = kaIa +NX
i=1
Ii (kd cos(✓) + ks cosn(�))
![Page 44: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/44.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
ShadingPhong lighting model
http://en.wikipedia.org/wiki/Phong_shading
Ambient Diffuse Specular Phong Reflection
![Page 45: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/45.jpg)
Rasterization
![Page 46: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/46.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Rasterization• Putting shaded polygons on screen
• Transform geometric primitives into pixels
• Lowest level: scan conversion• Bresenham, midpoint algorithms
![Page 47: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/47.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Rasterization• Putting shaded polygons on screen
• Transform geometric primitives into pixels
• Lowest level: scan conversion• Bresenham, midpoint algorithms
![Page 48: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/48.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Rasterization• Putting shaded polygons on screen
• Transform geometric primitives into pixels
• Lowest level: scan conversion• Bresenham, midpoint algorithms
![Page 49: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/49.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Rasterization• Putting shaded polygons on screen
• Transform geometric primitives into pixels
• OpenGL (graphics library) takes care of such operations (under the hood in VTK)
![Page 50: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/50.jpg)
Hidden Surface Removal
• Process of determining which primitives are not visible from a given viewpoint and then removing them from the display pipeline
![Page 51: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/51.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Fundamental AlgorithmsBack-face culling• Determine whether a polygon is visible (and
should be rendered)• Check polygon normal against camera
viewing direction: remove polygons that are pointing away!
< ⌃v,⌃n >> 0?
![Page 52: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/52.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Fundamental AlgorithmsBack-face culling• Determine whether a polygon is visible (and
should be rendered)• Check polygon normal against camera
viewing direction: remove polygons that are pointing away!
< ⌃v,⌃n >> 0?If some objects do not show up/are black in your visualization: check your normals!
![Page 53: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/53.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Fundamental AlgorithmsZ-buffer algorithm• Maintain a z-buffer of same resolution as
frame buffer• During scan conversion compare z-coord of
pixel to be stored with z-coord of current pixel in Z-buffer
• If new pixel is closer, store value in frame buffer and new z-coord in Z-buffer
![Page 54: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/54.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Fundamental AlgorithmsZ-buffer algorithm
![Page 55: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/55.jpg)
Painter’s Algorithm• Does not require rasterization, instead sorts
primitives from back to front and draws them in order
http://en.wikipedia.org/wiki/Painter%27s_algorithm
![Page 56: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/56.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Fundamental AlgorithmsAlpha blending / compositing• Approximate visual appearance of semi-
transparent object in front of another object• Implemented with OVER operator
Text
![Page 57: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/57.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Fundamental AlgorithmsAlpha blending / compositing• Approximate visual appearance of semi-
transparent object in front of another object• Implemented with OVER operator
Text
cb = (1,0,0)ab = 0.9
cf = (0,1,0)af = 0.4
c = af*cf + (1 - af)*ab*cba = af + (1 - af)*ab
c = (0.54,0.4,0)a = 0.94
![Page 58: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/58.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/2014
Fundamental AlgorithmsAlpha blending / compositing• Approximate visual appearance of semi-
transparent object in front of another object• Implemented with OVER operator
Text
cb = (1,0,0)ab = 0.9
cf = (0,1,0)af = 0.4
c = af*cf + (1 - af)*ab*cba = af + (1 - af)*ab
c = (0.54,0.4,0)a = 0.94
Alpha blending is used in volume rendering and depth peeling.
![Page 59: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/59.jpg)
12 Operators In Total
• cP = FAcA + FBcB
• Various F functions dictate how to blend
• Always assumes color-associated values (alway is premultiplied into the color)
Porter & Duff, 1984
![Page 60: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/60.jpg)
Shading and Illumination
![Page 61: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/61.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/201427
Back to ShadingFlat shading
(Color constant per polygon)
![Page 62: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/62.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/201428
Back to ShadingGouraud shading (1971)
• Shade vertices first, then interpolate* colors
(*) More on interpolation in coming weeks...
![Page 63: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/63.jpg)
CS530 - Introduction to Scientific VisualizationCS 530 - Introduction to Scientific Visualization - 08/27/201429
Back to ShadingPhong shading• Interpolate normals and
shade every pixel separately
Note: Phong lighting model ≠ Phong shading
![Page 64: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/64.jpg)
Global Illumination• Phong shading is quick, but only has single interactions and
doesn’t really model light
• Global illumination can be achieved ray tracing — casting rays from the eye that reflect, create shadows, scatter, etc.
• Can also cast rays from light sources (photon mapping)
See Kajiya, Blinn, and many more…
![Page 65: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/65.jpg)
Zhang and Ma, 2013
Banks and Beason, 2007
![Page 66: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/66.jpg)
Nonphotorealistic Rendering (NPR)
Ebert and Rheingans, 2000
Gooch and Gooch
![Page 67: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/67.jpg)
Nonphotorealistic Rendering (NPR)
Lu and Ebert, 2005
![Page 68: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/68.jpg)
Texture Mapping
• Idea: Use image data to make up for lack of complexity in the modeling process
• Pixels get additional coordinate information (texture coordinates) which index an image.
• Graphics pipelines are specifically designed to take of advantage of this concept, with fast access to memory and builtin interpolation, texture mapping units
• 3D textures are a common way to accelerate volume rendering (more on this soon)
http://www.wolfram.com/mathematica/new-in-8/enhanced-2d-and-3d-graphics/
![Page 69: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/69.jpg)
L19: Volume Rendering
68
REQUIRED READING
![Page 70: 3D GRAPHICSsci.utah.edu/~miriah/cs6630/lectures/L18-graphics.pdfcomputer graphics techniques . Graphics Primitives. CS530 - Introduction to Scientific VisualizationCS 530 - Introduction](https://reader035.fdocuments.in/reader035/viewer/2022062505/5e894c07686ab57d1b28acd8/html5/thumbnails/70.jpg)
ii
ii
ii
ii
Arrange Spatial Data
Chapter 8
8.1 The Big Picture
For datasets with spatial semantics, the usual choice for arrangeis to use the given spatial information to guide the layout. In thiscase, the choices of express, separate, order, and align do not applybecause the position channel is not available for directly encodingattributes. The two main spatial data types are geometry, whereshape information is directly conveyed by spatial elements thatdo not necessarily have associated attributes, and spatial fields,where attributes are associated with each cell in the field. (See Fig-ure 8.1.) For scalar fields with one attribute at each field cell, thetwo main visual encoding idiom families are isocontours and directvolume rendering. For both vector and tensor fields, with multipleattributes at each cell, there are four families of encoding idioms:flow glyphs that show local information, geometric approaches thatcompute derived geometry from a sparse set of seed points, textureapproaches that use a dense set of seeds, and feature approacheswhere data is derived with global computations using informationfrom the entire spatial field.
8.2 Why Use Given?
The common case with spatial data is that the given spatial po-sition is the attribute of primary importance because the centraltasks revolve around understanding spatial relationships. In thesecases, the right visual encoding choice is to use the provided spa-tial position as the substrate for the visual layout, rather than tovisually encode other attributes with marks using the spatial posi-tion channel. This choice may seem obvious from common sensealone. It also follows from the effectiveness principle, since the
181