advanced computer graphics three dimensional viewing
DESCRIPTION
Advanced Computer Graphics Three Dimensional Viewing. Overview. Viewing a 3D scene Projections Parallel and perspective. Overview. Surface rendering. Overview. Exploded and cutaway views. Overview. 3D and stereoscopic viewing. 3D Viewing Pipeline. MC. DC. Viewport Transformation. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/1.jpg)
Advanced Computer GraphicsAdvanced Computer Graphics
Three Dimensional ViewingThree Dimensional Viewing
![Page 2: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/2.jpg)
OverviewOverview
• Viewing a 3D scene
• Projections– Parallel and perspective
![Page 3: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/3.jpg)
OverviewOverview
• Surface rendering
![Page 4: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/4.jpg)
OverviewOverview
• Exploded and cutaway views
![Page 5: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/5.jpg)
OverviewOverview
• 3D and stereoscopic viewing
![Page 6: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/6.jpg)
3D Viewing Pipeline3D Viewing Pipeline
ModelingTransformation
ViewingTransformation
ProjectionnTransformation
NormalizationTransformation
and Clipping
ViewportTransformation
MC
WC
VC PC
NC
DC
![Page 7: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/7.jpg)
Viewing CoordinatesViewing Coordinates
• Generating a view of an object in 3D is similar to photographing the object.
• Whatever appears in the viewfinder is projected onto the flat film surface.
• Depending on the position, orientation and aperture size of the camera corresponding views of the scene is obtained.
![Page 8: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/8.jpg)
Specifying The View CoordinatesSpecifying The View Coordinates
• For a particular view of a scene first we establish viewing-coordinate system.
• A view-plane (or projection plane) is set up perpendicular to the viewing z-axis.
• World coordinates are transformed to viewing coordinates, then viewing coordinates are projected onto the view plane.
xw
zw
yw
xv
zv
yv
P0=(x0 , y0 , z0)
![Page 9: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/9.jpg)
Specifying The View CoordinatesSpecifying The View Coordinates
• To establish the viewing reference frame, we first pick a world coordinate position called the view reference point.
• This point is the origin of our viewing coordinate system. If we choose a point on an object we can think of this point as the position where we aim a camera to take a picture of the object.
![Page 10: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/10.jpg)
Specifying The View CoordinatesSpecifying The View Coordinates
• Next, we select the positive direction for the viewing z-axis, and the orientation of the view plane, by specifying the view-plane normal vector, N.
• We choose a world coordinate position P and this point establishes the direction for N.
• OpenGL establishes the direction for N using the point P as a look at point relative to the viewing coordinate origin.
xw
zw
yw
xv
zv
P0
P
N
xv
yv
![Page 11: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/11.jpg)
Specifying The View CoordinatesSpecifying The View Coordinates
• Finally, we choose the up direction for the view by specifying view-up vector V.
• This vector is used to establish the positive direction for the yv axis.
• The vector V is perpendicular to N.• Using N and V, we can compute a
third vector U, perpendicular to both N and V, to define the direction for the xv axis.
xw
zw
yw
xv
zv
yv
P0
P
N
V
![Page 12: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/12.jpg)
Specifying The View CoordinatesSpecifying The View Coordinates
To obtain a series of views of a scene , we can keep the the view reference point fixed and change the direcion of N. This corresponds to generating views as we move around the viewing coordinate origin.
P0
V
N
N
![Page 13: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/13.jpg)
Transformation From World To Transformation From World To Viewing CoordinatesViewing Coordinates
Conversion of object descriptions from world to viewing coordinates is equivalent to transformation that superimpoes the viewing reference frame onto the world frame using the translation and rotation.
xw
yw
zw
xv
yv
zv
![Page 14: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/14.jpg)
Transformation From World To Transformation From World To Viewing CoordinatesViewing Coordinates
First, we translate the view reference point to the origin of the world coordinate system
xw
yw
zw
xv
yv
zv
![Page 15: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/15.jpg)
Transformation From World To Transformation From World To Viewing CoordinatesViewing Coordinates
Second, we apply rotations to align the xv,, yv and zv axes with the world xw, yw and zw axes, respectively.
xw
yw
zw
xv
yv
zv
xv
yv
zv
![Page 16: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/16.jpg)
Transformation From World To Transformation From World To Viewing CoordinatesViewing Coordinates
If the view reference point is specified at word position (x0, y0, z0), this point is translated to the world origin with the translation matrix T.
1000
100
010
001
0
0
0
z
y
x
T
![Page 17: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/17.jpg)
Transformation From World To Transformation From World To Viewing CoordinatesViewing Coordinates
• The rotation sequence requires 3 coordinate-axis transformation depending on the direction of N.
• First we rotate around xw-axis to bring zv into the xw
-zw plane.
1000
00
00
0001
CosSin
SinCosxR
![Page 18: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/18.jpg)
Transformation From World To Transformation From World To Viewing CoordinatesViewing Coordinates
Then, we rotate around the world yw axis to align the zw and zv axes.
1000
00
0010
00
CosSin
SinCos
yR
![Page 19: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/19.jpg)
Transformation From World To Transformation From World To Viewing CoordinatesViewing Coordinates
The final rotation is about the world zw axis to align the yw and yv axes.
1000
0100
00
00
CosSin
SinCos
zR
![Page 20: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/20.jpg)
Transformation From World To Transformation From World To Viewing CoordinatesViewing Coordinates
The complete transformation from world to viewing coordinate transformation matrix is obtaine as the matrix product
TRRRM xyzvcwc ,
![Page 21: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/21.jpg)
Transformation From World To Viewing Transformation From World To Viewing Coordinates: Coordinates: An Example For 2d SystemAn Example For 2d System
y
x
x′y′
Θ=300
0 2 4 6
0
2
4
6
2
2
P=(5,5)
P0=(4,3)
![Page 22: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/22.jpg)
y
x
x′y′
Θ=300
2 4 6
0
2
4
6
2 2
P
P0
Translation:
100
310
401
T
Transformation From World To Viewing Transformation From World To Viewing Coordinates: Coordinates: An Example For 2d SystemAn Example For 2d System
![Page 23: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/23.jpg)
Rotation
0
2
4
6
y
xx′
y′
2 4 6
P
P0
100
0866.05.0
05.0866.0
R
Transformation From World To Viewing Transformation From World To Viewing Coordinates: Coordinates: An Example For 2d SystemAn Example For 2d System
![Page 24: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/24.jpg)
New coordinates
100
310
401
100
0866.05.0
05.0866.0
.vcwcM
1
232.1
866.1
1
5
5
100
598.0866.0500.0
964.4500.0866.0
1
'
'
y
x
Transformation From World To Viewing Transformation From World To Viewing Coordinates: Coordinates: An Example For 2d SystemAn Example For 2d System
![Page 25: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/25.jpg)
Alternative Method
xTRx
R
v
n
'
100
0866.0500.0
0500.0866.0
)866.0500.0(
)500.0866.0( y
x
x′y′
Θ=300
0
1
2
3
1
1
P
P01 2 3
nv
Transformation From World To Viewing Transformation From World To Viewing Coordinates: Coordinates: An Example For 2d SystemAn Example For 2d System
![Page 26: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/26.jpg)
ProjectionsProjections
• Once WC description of the objects in a scene are converted to VC we can project the 3D objects onto 2D view-plane.
• Two types of projections:
-Parallel Projection
-Perspective Projection
![Page 27: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/27.jpg)
Classical ViewingsClassical Viewings
• Hand drawings : Determined by a specific relationship between the object and the viewer.
![Page 28: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/28.jpg)
Parallel ProjectionsParallel Projections
Coordinate Positions are transformed to the view plane along parallel lines.
P1
P2 P′2
P′1
View
Plane
![Page 29: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/29.jpg)
Parallel ProjectionsParallel Projections
• Orthographic parallel projection The projection is perpendicular to the view plane.
• Oblique parallel projecion The parallel projection is not perpendicular to the view plane.
![Page 30: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/30.jpg)
Orthographic Parallel ProjectionOrthographic Parallel Projection
![Page 31: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/31.jpg)
Oblique Parallel ProjectionOblique Parallel Projection
– The projectors are still ortogonal to the projection plane– But the projection plane can have any orientation with
respect to the object.– It is used extensively in architectural and mechanical design.
![Page 32: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/32.jpg)
Oblique Parallel ProjectionOblique Parallel Projection
• Preserve parallel lines but not angles– Isometric view : Projection plane is placed
symmetrically with respect to the three principal faces that meet at a corner of object.
– Dimetric view : Symmetric with two faces.– Trimetric view : General case.
![Page 33: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/33.jpg)
Oblique Parallel ProjectionOblique Parallel Projection
• Preserve parallel lines but not angles– Isometric view : Projection plane is placed
symmetrically with respect to the three principal faces that meet at a corner of object.
– Dimetric view : Symmetric with two faces.– Trimetric view : General case.
![Page 34: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/34.jpg)
Perspective ProjectionsPerspective Projections
• First discovered by Donatello, Brunelleschi, and DaVinci during Renaissance
• Objects closer to viewer look larger• Parallel lines appear to converge to single
point
![Page 35: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/35.jpg)
Perspective ProjectionsPerspective Projections
In perspective projection object positions are transformed to the view plane along lines that converge to a point called the projection reference point (or center of projection)
![Page 36: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/36.jpg)
Perspective ProjectionsPerspective Projections
• In the real world, objects exhibit perspective foreshortening: distant objects appear smaller
• The basic situation:
![Page 37: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/37.jpg)
When we do 3-D graphics, we think of the screen as a 2-D window onto the 3-D world:
How tall shouldthis bunny be?
Perspective ProjectionsPerspective Projections
![Page 38: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/38.jpg)
The geometry of the situation is that of similar triangles. View from above:
d
P (x, y, z) X
Z(0,0,0)x′ = ?
Perspective ProjectionsPerspective Projections
View plane
(xp, yp)
![Page 39: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/39.jpg)
Desired result for a point [x, y, z, 1]T projected onto the view plane:
dzdz
y
z
ydy
dz
x
z
xdx
z
y
d
y
z
x
d
x
',','
',
'
Perspective ProjectionsPerspective Projections
![Page 40: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/40.jpg)
• When a camera used to take a picture, the type of lens used determines how much of the scene is caught on the film.
• In 3D viewing, a rectangular view window in the view plane is used to the same effect. Edges of the view window are parallel to the xv-yv axes and window boundary positions are specified in viewing coordinates.
View VolumesView Volumes
![Page 41: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/41.jpg)
View VolumesView Volumes
zv
window
Front Plane
Back Plane
View volume
Parallel ProjectionParallel Projection Perspective Projection
Front Plane
Back Plane
View volume (frustum)
window
Projection Reference Point
![Page 42: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/42.jpg)
ClippingClipping
• An algorithm for 3D clipping identifies and saves all surface segments within the view volume for display.
• All parts of object that are outside the view volume are discarded.
![Page 43: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/43.jpg)
Clipping LinesClipping Lines
Just like the case in two dimensions, clipping removes objects that will not be visible from the scene
The point of this is to remove computational effort
3-D clipping is achieved in two basic steps
– Discard objects that can’t be viewed
• i.e. objects that are behind the camera, outside the field of view, or too far away
– Clip objects that intersect with any clipping plane
![Page 44: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/44.jpg)
Discard ObjectsDiscard Objects
Discarding objects that cannot possibly be seen involves comparing an objects bounding box/sphere against the dimensions of the view volume
– Can be done before or after projection
![Page 45: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/45.jpg)
Clipping Polygon SurfaceClipping Polygon Surface
• To clip a polygon surface, we can clip the individual polygon edges.
• First we test the coordinate extends against each boundary of the view volume to determine whether the object is completely inside or completely outside of that boundary.
• If the object has intersection with the boundary then we apply intersection calculations.
![Page 46: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/46.jpg)
Clipping Polygon SurfaceClipping Polygon Surface
• The projection operation can take place before the view- volume clipping or after clipping.
• All objects within the view volume map to the interior of the specified projection window.
• The last step is to transform the window contents to a 2D view port.
![Page 47: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/47.jpg)
NormalisationNormalisation
The transformed volume is then normalised around position (0, 0, 0) and the z axis is reversed
![Page 48: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/48.jpg)
Dividing Up The WorldDividing Up The World
Similar to the case in two dimensions, we divide the world into regions
This time we use a 6-bit region code to give us 27 different region codes
The bits in these regions codes are as follows:
bit 6
Far
bit 5
Near
bit 4
Top
bit 3
Bottom
bit 2
Right
bit 1
Left
![Page 49: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/49.jpg)
Region CodesRegion Codes
![Page 50: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/50.jpg)
3D Line Clipping Example (cont…)3D Line Clipping Example (cont…)
When then simply continue as per the two dimensional line clipping algorithm
![Page 51: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/51.jpg)
Clipping Polygon SurfaceClipping Polygon Surface
Viev volume
![Page 52: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/52.jpg)
3D Polygon Clipping (cont…)3D Polygon Clipping (cont…)
In this case we first try to eliminate the entire object using its bounding volume
Next we perform clipping on the individual polygons using the Sutherland-Hodgman algorithm we studied previously
![Page 53: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/53.jpg)
OpenGL Projection CommandsOpenGL Projection Commands
![Page 54: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/54.jpg)
OpenGL OpenGL Look-At FunctionLook-At Function
• OpenGL utility function
– VRP: eyePoint (eyex, eyey, eyez)
– VPN: – ( atPoint – eyePoint ) (atx, aty, atz) – (eyex, eyey, eyez)
– VUP: upPoint – eyePoint (upx, upy, upz)
gluLookAt(eyex, eyey, eyez, atx, aty, atz, upx, upy, upz);
look-at positioning
![Page 55: Advanced Computer Graphics Three Dimensional Viewing](https://reader035.vdocuments.us/reader035/viewer/2022062305/56815a6a550346895dc7c1ab/html5/thumbnails/55.jpg)
Projections in OpenGLProjections in OpenGL
• Angle of view, field of view :– Only objects that fit within
the angle of view of the camera appear in the image
• View volume, view frustum :– Be clipped out of scene– Frustum – truncated
pyramid