???? ?? ?? (??-????, gluLookAT? ??) - PowerPoint PPT Presentation

1 / 71
About This Presentation
Title:

???? ?? ?? (??-????, gluLookAT? ??)

Description:

( ) (5 21 ) : 5 ( ) ( - , gluLookAT ... – PowerPoint PPT presentation

Number of Views:25
Avg rating:3.0/5.0
Slides: 72
Provided by: youngh2
Category:

less

Transcript and Presenter's Notes

Title: ???? ?? ?? (??-????, gluLookAT? ??)


1
?? ??(???)
  • ?? ?? (5?21 ?) 5?
  • ?? (??? ??? ??? ??)
  • ???? ?? ?? (??-????, gluLookAT? ??)
  • ??? ??? (??, ?? ??)
  • ?? ?? ??? ??? ????
  • ?? (5? 28?) Reading Assignment
  • 5.7??? 5.10??? (p239-p255)
  • ??
  • ??
  • ??
  • 5? 14? ?? (?????)

2
? 5 ? ??
  • ??? ? ??(??-????, ?? ? ??)
  • OpenGL API? ??? ??? ???? ?? ?? ?? ??? ?? ????
  • ????? ????? ????? ???.

3
??? ? ??(2?? ??)
  • ??-?? ??
  • ???? ??? ???? ??? ??? ?? ???? ???
  • ?? ?? ??? ??? ??
  • ?? ??
  • ?? ??? ??? ??? ??
  • ???? ?? ?? ??
  • ??? ?? ??? ???? ?? ? ??
  • ??, ?? ??

4
5.1 ??? ??? ??? ??
??
???
?????
???
?? 5.1 ??
5
?? ??? ??
  • ??? ??? ??? ???? ??? ??
  • ??(Object)
  • ???(Viewer, Camera)
  • ??? (Projector) ??
  • ??? ?? (COP, Center of Projection)
  • ??? ?? ?? ??
  • ??? ???? ?? (???? ???)
  • ??? (Projection plane) ??

6
??? ??
  • COP (??? ??)
  • COP? ???. ?? ?? ? ??? ??.
  • ?? ??(Perspective view)
  • DOP (??? ??), Direction of Projection
  • COP? ??? ??? ????, ?? ?? ?? ??????.
  • ?? ??(Parallel view)
  • ?? API??? ?? ??? ?? ?? ??? ????.

7
?? ??
?? 5.2 ????? ???? ??
8
?? ?? ??(Planar geometric projection)
  • ???? ???? ?? ?? ??? ??
  • ?? ??? ?? ??? ??? ????? ??? ????? ???? ???.

9
??? ???? ???
  • ??? ???? ???
  • ?? ?? (Orthographic Parallel Viewing)
  • ?? ?? (Perspective Viewing)
  • ??? ?? (??? ?? ??? ??)
  • ?? ?? ?? ??
  • 1?, 2?, 3? ??

10
5.1.1 ??? ??
????
????
????
????
??
?? 5.3 ??? ???
11
?? ?? ??? ??
12
5.1.2 ?? ??(Orthographic Projection)
?? 5.4 ?? ??
13
?? ??(Orthographic Projection)
  • ?? ?? ???? ????.
  • ?? ?? ?? ???? ???? ??? ?? (principal face) ? ???
    ????.
  • ?? 5.5 3 ?? ?? ?? ?? ???
  • ?? ?????? ???? ??? ??? ??? ? ?? ???? ? ? ??? ???
    ????
  • ??? ?? ????.

14
?? 5.5 ?? ?? ?? ???
?? 5.5 ??? ? ?? ?? ?? ?? ???
15
5.1.3 ?? ??(Axonometric projection)
  • ???? ???? ?????, ???? ??? ?? ?? ???? ??? ? ??.
    ?, ?? ????? ???? ???? ??. (?? 5.6)
  • ?? ???? ????? ??? 3?? ??? ???? ????.(?? 5.7)
  • ?? ??(isometric view) ? ?? ??? ??? ???? ????
  • ?? ??(dimetric view) ? ?? ??? ???? ?? ??
  • ?? ??(trimetric view) ???? ??

16
5.1.3 ?? ??(Axonometric projection)
  • ??? ???? ???. ??? ?? ??? ??
  • ?? ??? 1?? ???,
  • ?? ??? 3?? ???
  • ????? ??? ??? ????, ?? ??? ??.
  • ?? ???? ????.
  • ??? ??? ???? ????? ??? ??? ??? ???? ?? ?? ??? ??
    ?? ???? ????.

17
5.1.3 ?? ??(Axonometric projection)
?? 5.6 (a) ?? ??? ??(b) ??? (c) ???
18
?? 5.7 ?? ???
??
??
??
19
5.1.4 ?? ??(Oblique projection)
  • ?? ???? ?? ??(Parallel Projection)
  • ???? ???? ??? ?? ???.(?? 5.8)
  • ???? ??? ? ?? ?? ????.
  • ???? ??? ?? ?? ?? ??? ????, ??? ??? ? ??? ??? ?
    ? ??.
  • ?? ??? ??? ?????? ?? ???. ?, ?? ?????? ???.

20
5.1.4 ?? ??(oblique projection)
?? 5.8 (a) ????? ?? (b) ??? (c) ???
21
5.1.5 ??(??) ?? (Perspective Projection)
?? 5.9 ????
22
?? ??(Perspective viewing)
  • ??? ?????? ????? ? ??? ????.(????? ??)
  • ????, ????? ? ???? ??? ??? ??? ???.
  • ?? ??? ?????.
  • ??? ??? ??? ?????? ? ??? ?????? ??? ??? ???? ???
    ?????

23
??, ??, ?? ??
  • ??? ? ?? ??? ??? ??? ?? ??? ???? ?? ??? ??? ??,
    ??, ?? ?? (one, two, three point perspective)?
    ????.
  • ???? ? ?? ???? ??
  • ???? ? ?? ???? ??
  • ???? 3?? ? ??? ??? ?? ???? 3 ?? ????? ???.

24
?? 5.10 ??, ??, ?? ??
(a) ?? ?? (b) ???? (c) ?? ??
25
5.2 ???? ????
  • OpenGL? ???? API
  • - GKS-3D, PHIGS? ?? API?? ???.
  • ???? ?? ?? (5.2?)
  • ??? ??? ???? ?? (5.4?)
  • ??-?? ??? ??
  • ??? ??? ??? ???? ? ??
  • ?? ??????? ??? ????? ??? ?.

26
???, ???? ??-????
  • ??? ??? (??? ???, ????)
  • ???? ??? ??? ???? ??? ???.
  • ?? ???, ??? ???(?? ???)
  • ???? ??? ??? ???? ??? z ????.
  • ??? ??? (??? ???)
  • ??-?? ??
  • ??? ???? ??? ?? ????? ??? ?????.
  • Identity matrix? ??? ?? ???? ??? ???? ??? ????.

27
Modeling Transformation
Modeling Coordinates
World Coordinates
Viewing Transformation
Viewing Coordinates
Workstation Transformation
Projection Transformation
Device Coordinates
Projection Coordinates
28
5.2.1 ??? ???? ????
?? 5.11 ?? ??? ??
29
?? 5.12 ???? ?????? ??
(a) ???? (b) ??-?? ??? ?? ?
30
??-????(C)
?? ???(? q)
??? ???(? q)
31
????? ???
  • Camera? ??? ??? ??? ??????
  • Default ??? ???? ?? ???? ??? ???? ??? ????. (????
    ??? ??? ???)
  • ??? ??? ??? ???? ????. ???, ??-?? ??? ?? ????.
  • ? ?? x? ??? ?? ???? ???? ???? ??.
  • ?? 5.13??? ?? ???? ????? ?? ???? ??, y?? ????
    ?????.

32
?? 5.13 ???? ?? ??
glMatrixMode(GL_MODELVIEW) glLoadIdentity() glTr
anslatef(0.0, 0.0, -d) glRotatef(-90.0, 0.0,
1.0, 0.0)
? ???? ???? ?? (1)?? ???? ??? ???? ??? ??? ??
(2)? ???? ?? ?????.
33
???? ?? ??
  • ???? ???? ? ??? ??? ???? ????? ??? ? ?? ??? ??
    ??.
  • ? ??? ??? ???? ????, ??? ???? ?? ?????.
  • ???? Y ?? ???? 45? ??
  • ???? X ?? ???? 35.26? ??
  • ???? ?? ??

34
glMatrixMode(GL_MODELVIEW) glLoadIdentity() glTr
anslatef(0.0, 0.0, -d) glRotatef(35.26,1.0,0.0,0.
0) glRotatef(45,0.0,1.0,0.0)
35
5.2.2 ?? API
PHIGS GKS-3D
View Reference point(VRP) View Plane Normal
(VPN) View-Up Vector (VUP)
?? 5.14 ???? ???
36
? ?? ?? API
  • set_view_plane_normal(nx, ny, nz)
  • VPN? ??? ?, ???? ??? ??
  • set_view_up(ux, uy, uz)
  • VPN? ???? ? ?? ?? ???? ??? ?? ???? ???? ? ??.
  • VUP? ??? ???? ?????.

37
?? 5.15
?? 5.15 ?? ?? ??? ??
38
Viewing-coordinate system(??? ???, u-v-n)
  • VRP (Viewing Reference Point) ??
  • VPN (Viewing Plane Normal) n
  • VUV (View Up Vector) Vup , ???? ???? v? ??
  • uv?n ?? ??.

39
???? ?? ???? ????? ????? ???, ??? p? ????
5.2.1?? ??? ??? ??-?? ??? ???.
40
5.2.3 Look-At ??
OpenGL ?? ??
41
gluLookAt ??
  • gluLookAt(eyex, eyey, eyez, atx, aty, atz, upx,
    upy, upz)
  • - ???? ??? ?? ??-?? ??? ????.
  • ???? ??(? e)? ??(eyepoint)??? ??. (VRP)
  • ???(at point) (? e)
  • VPN e a
  • Up vector? ???? ? ??? ???.

42
5.2.4 ?? ?? API
?? 5.17 ??, ??, ??
43
?? ?? API
  • ?? (Roll) z?? ???? ??
  • ??(pitch) x?? ???? ??
  • ??(yaw) y ?? ???? ??
  • ?? (elevation)
  • ???(azimuth)
  • ??? (twist angle)

44
????
??
???
?? 5.18 ??? ???
45
5.3 ??? ???
?? ??? ????
???? ?? ??? ??? ?? ???? ?? ??? ??
???? ???? ????(??) ????
46
5.3.1 (???) ?? ??
  • ???? ?? ??
  • ???? ?? -z ? ??

47
?? 5.19 ? ?? ???
  • ???? ???? ??
  • ?? ???? ??
  • ???? ??? ??? ??? ??? ??? ?? ? ??.
  • ??? (a) ??? ????.

48
?? 5.20 ????? ? ???
(a) ??? ?? (b) ??? (c) ???
49
??? ??(Nonuniform foreshortening)
z? ?????? ??? ??
50
?? ??
  • ?? ?? (perspective transformation)
  • ? ??(??? ????? ??? ???) ? ? ??. ?? ?? ?? ? ???
    ???? ???.
  • ??? ????? affine ??? ???.
  • ?? ??? (?? w1? ??? ????).

51
?? ????
? ????
M? ? ?
?
52
????(Perspective division)
  • ?? ???? q? w ???? ??? ??? ???? ? q? ?? ? ??.

53
?? 5.21 ?? ?????
??
????
??-??
54
5.3.2 ?? (??) ??(Orthographic)
  • ?? ?? ?? ??? ??? ?? ??? ??? ????.
  • ?? ?? ??? ?? ?? ??? ??? ?? ?? pipeline? ??? ?
    ???, ???? ?????.

55
?? 5.22 ????
?? ????
Z0(???)
56
5.4 OpenGL??? ??
  • ? ??? ??? ??? ????? ??? ??? ?? ??? ?? ??? ?? ????
    ??? ???? ???.
  • ?, ????? ?? ??? ????, ??? ?? ?? ?? ?? ?????? ???
    ???. ?, ??? ???? ?? ??? ????? ???? ???.
  • ???? ???? API(OpenGL ?)? ??? ?? ??? ?? ?? ?????
    ????.

57
?? 5.23 ?? ??? ??
??
58
?? 5.24 ?? ????
???(Frustum)
  • ??? ??? ?? ???? ???? ??? ????? ????.

59
5.4.1 OpenGL??? ??
  • glFrustum(xmin, xmax, ymin, ymax, zmin, zmax)
  • glMatrixMode(GL_PROJECTION)
  • glLoadIdentity()
  • glFrustum(xmin, xmax, ymin, ymax, zmin, zmax)
  • -gt ?? 5.25 ??

60
?? 5.25 ???? ??
glFrustum(xmin, xmax, ymin, ymax, zmin, zmax)
  • Z ?? ?? ??? ??? ??
  • ??? ??? ??? ??? ??

61
?? 5.26 ??? ??? ??
????? ??? ?? ??? ?
gluPerspective(fovy, aspect, near, far)
???(aspect ratio)w/h
62
5.4.2 OpenGL??? ????
  • gluortho(xmin, xmax, ymin, ymax, zmin, zmax)
  • OpenGL?? ???? ???? ?? ?? ????. (?? ?? ??)

63
?? 5.27 ?? ??
gluortho(xmin, xmax, ymin, ymax, zmin, zmax)
64
??
  • ????
  • ?? ?? ??? ??? ?? COP? ???? ??? ??? ????? ??? ??
    ??
  • COP ??? ??? COP ??? ?? ??? ???? ? ??? ??
  • ?? z0 ?? ??? ??? ? ??. 0 ?? ???? ??? ? ??.
  • ????
  • zmax gt zmin ??? ??? ?? ??? ??? ??? ?? ???.

65
5.5 ?? ??
  • ?? ?? ????
  • (hidden-surface-removal algorithm)
  • ??? ????
  • (visible-surface algorithm)
  • ?? ?? ????
  • (object-space algorithm)
  • ???? ???? z-buffer algorithm
  • (image-space algorithm)

66
?? ??
  • ?? ?? (z-buffer)
  • gluInitDisplayMode(GLUT_DOUBLE GLUT_DEPTH
    GLUT_RGB)
  • gluEnable(GL_DEPTH_TEST)
  • glClear(GL_DEPTH_BUFFER_BIT)

67
?? 5.28 z-?? ????
68
5.6 ?? ???? ???
  • 4?? color ???? (cube.c)
  • - ?? ??? ????? ??? ???? ???? ?????.
  • -?? ??? ???.
  • colorview ???? (cubeview.c)
  • ?? ??? ???.
  • ???? ???? x,X,y,Y,z,Z? ???? ???? ????
  • gluLookAT ??? ?? ???? ??? ???? ??? ? ???.

69
  • Void display(void)
  • glClear(GL_COLOR_BUFFER_BIT GL_DEPTH_BUFFER_BI
    T)
  • / Update viewer position in modelview
    matrix/
  • glLoadIdentity()
  • gluLookAt(viewer0,viewer1,viewer2, 0.0,
    0.0,
  • 0.0, 0.0, 1.0, 0.0)
  • / rotate cube /
  • glRotatef(theta0, 1.0, 0.0, 0.0)
  • glRotatef(theta1, 0.0, 1.0, 0.0)
  • glRotatef(theta2, 0.0, 0.0, 1.0)
  • colorcube()
  • glFlush()
  • glutSwapBuffers()

70
  • void keys(unsigned char key, int x, int y)
  • / Use x, X, y, Y, z, and Z keys to move
    viewer /
  • if(key 'x') viewer0- 1.0
  • if(key 'X') viewer0 1.0
  • if(key 'y') viewer1- 1.0
  • if(key 'Y') viewer1 1.0
  • if(key 'z') viewer2- 1.0
  • if(key 'Z') viewer2 1.0
  • display()

71
  • void myReshape(int w, int h)
  • glViewport(0, 0, w, h)
  • / Use a perspective view / glMatrixMode(GL_PROJ
    ECTION) glLoadIdentity()
  • if(wlth)
  • glFrustum(-2.0, 2.0, -2.0 (GLfloat)
    h/(GLfloat) w, 2.0 (GLfloat) h
    /(GLfloat) w, 2.0, 20.0)
  • else
  • glFrustum(-2.0, 2.0, -2.0 (GLfloat) w/
    (GLfloat) h, 2.0 (GLfloat) w /
    (GLfloat) h, 2.0, 20.0)
  • / Or we can use gluPerspective /
  • / gluPerspective(45.0, w/h, -10.0, 10.0) /
    glMatrixMode(GL_MODELVIEW)
Write a Comment
User Comments (0)
About PowerShow.com