Title: 2IV10 Computergrafiek set 1-inleiding
12IV10 Computergrafiekset 1-inleiding
2Computergrafiek
- Doel
- Kennis over en ervaring met basisconcepten 2D en
3D computergrafiek - Vorm colleges, instructies
- Beoordeling tentamen, opdracht
3Colleges
- 15 stuks (max.)
- Overzicht van stof
- Details (m.n. algoritmes en wiskunde)
- Uitleg instructie-opgaven
- Vragen!
- Demos
4Instructies
- Andrei Jalba en Stef van den Elzen
- Oefeningen en opdracht
- Vragen!
5Tussentoets
- Halverwege (wordt nog bekend gemaakt)
- Tijdens instructie
- Toetsing feedback beheersing stof
- 1 bonuspunt tentamen
6Studiemateriaal
- Boek Donald Hearn, M. Pauline Baker, Computer
Graphics with OpenGL, 3rd edition, Pearson
Prentice Hall, ISBN 0-13-0120238-3
(paperback). - Studeerwijzer
- Sheets
- Oefeningen instructies
- www.win.tue.nl/vanwijk/2IV10
7College 1
8Daarom!
- Leuk!
- Alomtegenwoordig
- Visueel systeem biedt
- Parallel input
- Parallel processing
- Computergrafiek ideaal voor mens-machine
communicatie
9Toepassingen
- Graphs and charts
- Computer-Aided Design
- Virtual Reality
- Data Visualization
- Education and training
- Computer Art
- Movies
- Games
- Graphical User Interfaces
HB 12-33
10Business graphics
HB 12-33
11Computer-Aided Design
- AutoDesk
- IAME 2-stroke race kart engine
12Visualisatie
Wetenschappelijke visualisatie Clip Golden
Age of Scientific Computing http//www.sci.utah.ed
u/
HB 12-33
13Gaming
HB 12-33
14Serious gaming
- VSTEP Rotterdam
- www.vstep.nl
15Animatie
beweging
HB 12-33
16Hardware
- Snelle ontwikkeling
- Historie zie boek
- Nu grafische kaart, LCD-scherm
17Hardware
- 24 scherm configuratie, Virginia Tech
18Toekomst?
- Head mounted displays?
- Parachute trainer
- US Navy
19Toekomst?
- Oprolbaar scherm, Philips
20Toekomst?
21Schematisch
Beeld af
Model
Beeld
22Ook
Computer Graphics
Model
Beeld
Pattern Recognition
Image Processing
23Onderwerpen
- Inleiding
- 2D basisalgoritmes
- Transformaties
- Viewing
- Geometrisch modelleren
- Zichtbare oppervlakken
- Belichting
- Interactie
24Van model naar beeld
Model
World
View
NDC
Display
Coördinaten en transformaties
HB 2-869-71
25Van model naar beeld
Model
World
View
NDC
Display
Cylinder
Local or modeling coordinates
Geometrisch modelleren
HB 2-869-71
26Van model naar beeld
Model
World
View
NDC
Display
Positioneer cylinders in scene World coordinates
HB 2-869-71
27Van model naar beeld
Model
World
View
NDC
Display
Kijk naar cylinders Viewing coordinates
Zichtbare oppervlakken, belichting
HB 2-869-71
28Van model naar beeld
Model
World
View
NDC
Display
Beeld af Normalized Device Coordinates
1
0
1
HB 2-869-71
29Van model naar beeld
Model
World
View
NDC
Display
Beeld af op display Device Coordinates
0
1024
768
Interactie
HB 2-869-71
30Twee smaken computergrafiek
- Vector graphics
- Beeld verzameling lijnen, polygonen, cirkels,
- Geometrisch model
- Exact, schaalbaar
- Raster graphics
- Beeld rooster van beeldpunten (pixels)
- Display
- Realistische beelden,
31Graphics software
- Special-purpose packages
- Photoshop, Powerpoint, AutoCAD, StudioMax, Maya,
- Computer-Graphics Application Programming
Interfaces (CG API) - Windows API, OpenGL, VRML, Java3D, Direct3D,
HB 2-869-73
32CG API
- Set van graphics functies, te gebruiken vanuit
programmeertaal - Toegang en afschermen hardware
- Standaardisatie
C, C, Java, Delphi,
CG API
Drivers
Fortran, Pascal,
Display
Input dev.
Display
Input dev.
1975
2000
33Functies
- Graphics Output Primitives
- Lijn, polygoon, bol,
- Attributes
- Kleur, lijndikte, textuur,
- Geometric transformations
- Modelling, Viewing
- Belichting
- Input functions
HB 2-869-73
34Software standards
- GKS, PHIGS, PHIGS (1980-)
- GL (Graphics Library, SGI)
- OpenGL (early 1990s)
- Direct3D (MS), Java3D, VRML,
- Excel, Mathematica, MatLab,
HB 2-869-73
35OpenGL
- 3D (en 2D)
- Snel
- Hardware, language, OS, company independent
- OpenGL architecture review board
- Breed ondersteund
- Low-level (right level!)
- Standaard graphics terminologie
HB 2-869-73
36Performance
- OpenGL is snel genoeg
- Afhankelijk van complexiteit scene
- Afhankelijk van gebruik van API
- Afhankelijk van hoeveelheid communicatie met
kaart (bus is soms bottleneck)
bus
CPU
Graphics card
37Intro OpenGL
- Paar basisprincipes
- Geen tentamenstof
- Wel opdracht
38GLU en GLUT
- OpenGL basisfuncties
- GLU(T) OpenGL Utility (Toolkit) libraries
- Koppeling met windowing system
- Inputfuncties
- Handige hulpfuncties voor viewing en geometrie
- glutFunctie()
HB 2-973-80
39OpenGL syntax
- Functies
- glFunctie glBegin, glClear, glVertex
- Constanten
- GL_CONSTANT GL_2D, GL_LINE
- Datatypes
- GLtype GLbyte, GLint, GLfloat
HB 2-973-80
40Voorbeeld
- glClearColor(1.0,1.0,1.0,0.0)// Achtergrondkleur
- glMatrixMode(GL_Projection) // Zet
transformatie - glLoadIdentity
- gluOrtho2D(0, 200, 0, 150)
- glClear(GL_COLOR_BUFFER_BIT) // Wis achtergrond
- glColor3f(1.0, 0.0, 0.0) // Zet kleur
- glBegin(GL_LINES) // Teken lijn
- glVertex2i(180, 15) // - eerste punt
- glVertex2i(10, 145) // - tweede punt
- glEnd // Klaar met lijn
- glFlush // Verstuur
HB 2-980
41OpenGL output functies
- glBegin(GL_iets)
- glVertex()
- glVertex()
-
- glEnd
- glVertex234isfd
- 234 2D, 3D, 4D
- isfd integer, short, float, double
- Bijv glVertex2i(100, 25)
HB 3-389
42Output primitives 1
- GL_POINTS reeks punten
- GL_LINES reeks lijnsegmenten
- GL_LINE_STRIP polyline
- GL_RECT rechthoek
- GL_POLYGON polygoon
HB 3
43Output primitives 2
- GL_TRIANGLES reeks driehoeken
- GL_TRIANGLE_STRIP
- GL_TRIANGLE_FAN
HB 3
44Output primitives 3
- GL_QUADS reeks vierhoeken
- GL_QUAD_STRIP
HB 3
45Basis wiskunde voor CG
- Coördinaten
- Punten en vectoren
HB A-1
46Coördinaten
- 2D Cartesische coördinaten
x
y
(x,y)
(x,y)
y
x
Standaard Scherm (output,
input)
HB A-1
47Poolcoördinaten
y
(x,y)
r
?
x
HB A-1
483D coördinaten 1
- 3D Cartesische coördinaten
(x,y,z)
z
(x,y,z)
z
x
y
x
y
Rechtshandig Linkshandig
HB A-1
493D coördinaten 2
(x,y,z)
z
y
x
?
HB A-1
503D coördinaten 3
(x,y,z)
z
f
r
y
x
?
HB A-1
51Punten en vectoren 1
- Punt positie in 2D of 3D ruimte
- Notatie P (HB), ook P, p, p en p
- (x,y,z) (HB), ook (x1, x2, x3), (Px, Py, Pz)
- Vector Gericht lijnsegment, verschil tussen twee
punten - Notatie V (HB), ook V, v, v en v
HB A-2
52Punten en vectoren 2
y
P2
y2
P1
y1
x
x1
x2
HB A-2
53Punten en vectoren 3
HB A-2
54Punten en vectoren 4
- Richting van een vector richtingshoeken.
- Ook genormaliseerde vector, of
- eenheidsvector V
z
g
b
y
x
a
HB A-2
55Vectoren optellen
- Kop-staart methode, componentsgewijs optellen
y
y
W
VW
W
V
V
x
x
HB A-2
56Scalar-vector vermenigvuldiging
- Schalen, componentsgewijs vermenigvuldigen
y
y
2V
V
x
x
HB A-2
57Vector vermenigvuldiging 1
- Inwendig product, scalair product ofwel dot
product - Product van parallelle componenten
W
V
q
W cos q
V
HB A-2
58Vector vermenigvuldiging 2
HB A-2
59Vector vermenigvuldiging 3
- Uitwendig product, vector product ofwel cross
product. - n loodrecht op V en W
V?W
W
q
V
n
HB A-2
60Vector vermenigvuldiging 4
- Uitwendig product (makkelijker te onthouden)
HB A-2
61Vector vermenigvuldiging 5
HB A-2
62Vector vermenigvuldiging 6
- Inproduct
- scalar
- vectoren loodrecht?
- cos
- projecteren,
- Uitproduct
- vector
- vector loodrecht op
- sin
- oppervlak,
HB A-2
63Oefening 1
- Gegeven een lijn L L(t) P Vt .
- Gevraagd Spiegel een punt Q ten opzichte van
deze lijn.
64Stappen bij dit soort opgaven
- Schrijf op wat je weet
- Reken het uit
- Controleer het resultaat
65Oefening 2
- Gegeven een driehoek in 3D met hoekpunten P, Q en
R, waarbij de hoek PQR recht is. - Gevraagd Roteer de driehoek om de lijn PQ over
een hoek a . Wat is de nieuwe positie R van R?
66Gebruik
- Niet
- arccos, arcsin
- yf(x)
- Wel
- inproduct, uitproduct
- coördinaat onafhankelijke definities
- matrix vector algebra