Title: - 3D ??? ???? ??
1Lecture 3
- ? 1 ?. ??? ???? ???? ??
-
- - 3D ??? ???? ??
- - OpenGL API ??
2?? ??
- 3D ??? ???? ??? ?????
- 3D ??? ???? ??? ??
- OpenGL API ?? ??
- 2?? ??? ???? ??
- 3?? ????? ??? ??? ?? ??
- 2?? ??? ???? ? 1
- ??? ??? ?? ???
- 2?? ??? ???? ? 2
- ??? ?? ?????
3????? ?????
- ???? ????? ?? ??
- ??? ????? ??? ????? GUI ?????
??? ????? ?????
4?? ????? ?????(API)
- ??? ????? ?? ??
- API? ?? ?????
??? ???? ?? ?? ?????? ??
5?? ????? ?????(API)
- ?????? ????? ?? ???? ??? ? ??? ??? ???
- ?? ??? ??? OpenGL, PHIGS, GKS-3D ?? API ?? ??? ??
- ??, ???, ??, ?? ???? ?? ?? ??? ??
6???? ??
7De facto (industry) ???
- QuickDraw (Apple)
- Xlib (X-window)
- GL (SGI), OpenGL
- DirectDraw, Direct3D (MS)
- Renderman (Pixar)
- Java3D
8API? ???
- 3D ???? ???? ????? ?? ??? ??? ???? ?? ??? ?? API
??? ???? - ??
- ?? ???? ??? ?? ??(??? ??? ??)? ??
- ???
- ???? ???? ??, ??, ????, ???
- ??
- ??, ??, ?, ???? ??
- ??? ??
- ?? ??, ?? ??, ?? ?? ?
9? ?
- API?? ???? ?? ??
- ?, ??, ???, ???, ??? ?
- API? ?? ??, ?? ????? ??
- OpenGL? ??? ??
glBegin(GL_POLYGON) glVertex3f(0.0, 0.0,
0.0) glVertex3f(0.0, 1.0, 0.0)
glVertex3f(0.0, 0.0, 1.0) glEnd()
10??? ??
- ????? ??? ??
- ??
- ?? ??? ??? ??
- ??
- ?? ??? ???? ?? ?????? ??
- ?? ??
- ???? ?? ??? ?? ??
- ?? ?
- ???? ??? ??
- ??? ???? ?? ??
11??? ?? ? ?? ??? ??
- ??? ??
- ??? ????? ??? ?? pp. 35 ?? ??
- ?? ??? ??
- ??? ???? ??? ??
???? ?? ??
12OpenGL? ??? ??
- glOrtho(.)
- gluLookAt(cop_x,cop_y,cop_z, at_x,
at_y, at_z, ...) - gluPerspective(field_of_view, )
13?? ?? ??
- ??
- ??, ??, ? ? ??? ?? ??
- ???? ???? ?? ??(pointer light)? ?? ?? (monochrome
light)? ?? - ?? ??
- ??? ??(??)? ??
- ?? ??, ?? ??, ?? ?? ?
- ??? ?? ??? API? ???? ?-?? ????? ??? ???
14??? ????
- ? ??? pp 219 ?? ??
- OpenGL? ???? ??? ??? ?? ??? ???? ??
- 3D ????? ???? ??? ? ??? ???? ????? ??
- 1 ? ?? ??? (wire frame image)
- 3 ?? ??? (?? ?? ????? ???)
- 4 ?? ??, ?? ???(flat shading) ??
- 5 ??? ??? ??(smooth shading)
- 6 ?? ??(texture mapping) ??
- 7 ???(fractals)
- 8 ?? ?? ??
15??? ???
?? ??? (2???? ??)
16??, ?? ??? ??
17???
?? ??
18????
193D ??? ?? ????
- ?? ??? ??
- ?? ??(Ray-tracing) ??
- ???-??? ??
20???-??? ????
- ???-??? ????
- ???? ???? ??? ? ??
- ??? ??? ???, ??? ??? ?? ???
- ??? ???????? ??
- ??? ??? ????, ?? ?????? ??
????
???
???
The modeling-rendering pipeline
21??? ??? ??
- ?? ??? ???
- Von Neumann ??? ?? ??? ??
- ?? ?????? ??
- ???? ??? ? ?? ??
?? ???? ???
22????? ???
- ????? ???
- ?? ?? ??
- ??? ?? ??? ???? ?? ??
- ????? ???? ???? ??? ???? ????? ???? ??
Display-processor ??
23????? ??
- ?? ??? ?????
- ??? ?? ??? ????? ??? ??
- ?? ??? ??? ???? ??
24?? ?????(Geometry Pipeline)
Geometric pipeline
25? ?(Transformation)
- ?? ?? ??? ??? ??? ??
- ??? ??? gt ???? ??? gt ??? ???
- ??? ??
- ??? ??? ??? ???? ??
26? ?(Clipping)
- ?? ??? ?? ???? ?? ??? ??? ? ? ??
- ?? ??? 90? ??
- ??? ??? ??? ???? ??? ??
- ?? ??? ?? ?? ???(Clipping Retangle)
- ???? ???? ?? ??? ????? ????? ?? ?????? ???? ? ??
- ?? ??? ??? ????? ???? ?? ??
27? ?(Projection)
- 3?? ?? ? 2?? ??? ??
- ?? ??? ??? ????? ??
- ??? ??? ??? ??
- ?? ??? ???? ?? ? ???
28????(Rasterization)
- ??? ???? ??? ?? ?? ????? ??
- ???? ??? 7??? ??
29??? ?? ??
- ? ?? ??? ??
- ???? ??
- ????? ??? ??
- ??? ??(back-end processing)
- ??? ?? ?? ???? ?? ??
- ?? ??? ?? ?? ??
- ??
- ????? ???? ??? ?? ???? ??? ??
- ??? ???? ??? 1?? ??? ?? ??
30OpenGL API (1)
- ??? ???? ???
- ?? ???????? ?? ??? ??
- ???? ????? ???? ????? ?????
- ??? ????? ????? ??
31OpenGL API (2)
- OpenGL API
- ???? ????? ?? ????? ?????
- SGI?? ??? GL API? ?? ????? ????? ???? ??? ???
???(open) API - ????????? OpenGL API? ??? ???? ?????
?????(library)? ???? ?? - SGI???? windows? OpenGL Library ??
- Mesa 3D Library
- 300 ? ?? API ???? ??
- ?????-?? ??(??-??)
- ???? ???
- ????? ???? ???? ???
32OpenGL API (3)
- OpenGL ?? ?? ??(Generic Implementation)
- ??????? ??
33OpenGL API (4)
- OpenGL ?? ???? ??(H/W Implementation)
34OpenGL API (5)
- OpenGL ????? ??
- GL ?? ?????
- GLU GL ?? ?? ??, ?? ?? (U utility)
- GLUT ??? ????? ????? (UT utility toolkit)
X-??? ??? ????? OpenGL ????? ??
35OpenGL API (6)
- ??? ???
- ??? ??, ?? ???, ????? ???? ? ????? ????? ???? ???
?? API? ???? ??? - GLUT(OpenGL Utility Toolkit)
- ??? ????? ?????
- ????? ????? ??? ??? ???? ?????
- ??? ?? ? ??, ?? ?? ??, ???? ?? ?
- ?? SGI?? GLUT version 3.7? ??
- (http//reality.sgi.com/opengl/glut3/glut3.html
)
36OpenGL API (7)
- ???(Data Type)
- ?? ????? ??? OpenGL ??? ?? ????? ?? ???? ??
OpenGL ??? ???? ??
OpenGL?? ??? ?? ?? ?? C ?? ??? ??? ???
Glbytes 8-bit integer Signed char b
Glshort 16-bit integer Short s
Glint, Glsizei 32-bit integer long l
Glfloat, Glclampf 32-bit floating point float f
Gldouble, Glclampd 64-bit floating point double d
Glubyte, Glboolean 8-bit unsigned integer unsigned char ub
Glushort 16-bit unsigned integer unsigned short us
Gluint, Glenum 32-bit unsigned integer unsigned long ui
GLbitfield
37OpenGL API (8)
- ???(Data Type)
- ??? ? ??? C ???? ???? ?? ????
- e.g
- GLshort shorts10
- GLdouble doubles10
38OpenGL API (9)
- ?? ?? ??(Naming Convention)
- OpenGL API ???? ??? ??? ?? ??? ????
- lt?????? ???? ???gt ltcommand? ???? ??gtlt???
??-??gtlt??? ??-??gt - ???? ?? ??? ????? ??, ??? ??, ???? ??? ?? ? ??? ?
? ?? - ? glColor3f(0.5f, 0.5f, 0.5f)
- glRectf(100.0f, 150.0f, 150.0f, 100.0f)
- glCreateWindow(Sample)
- OpenGL??? ????? ??? ???? float? (single-precision
floating point type)? ???? - Windows C/C ????? ??? ???? double??? ????
39OpenGL API (10)
- OpenGL API ??? ??
- ?? ?? ?? ?, ??, ???, ??? ?
- ?? ?? ?, ?? ??, ??? ?
- ???? ?? ??? ??
- ?? ?? ??, ??, ?? ?? ? ?? ??
- ?? ?? ???, ??? ?? ?? ??
- ?? ?? ??? ????? ??, ???, ?? ?? ?
402D CG ???? 1
412D CG ???? 2