2iv10 computergrafiek set 1 inleiding
This presentation is the property of its rightful owner.
Sponsored Links
1 / 66

2IV10 Computergrafiek set 1-inleiding PowerPoint PPT Presentation


  • 58 Views
  • Uploaded on
  • Presentation posted in: General

2IV10 Computergrafiek set 1-inleiding. Jack van Wijk TU/e. Computergrafiek. Doel: Kennis over en ervaring met basisconcepten 2D en 3D computergrafiek Vorm: colleges, instructies Beoordeling: tentamen, opdracht. Colleges. 15 stuks (max.) Overzicht van stof

Download Presentation

2IV10 Computergrafiek set 1-inleiding

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


2iv10 computergrafiek set 1 inleiding

2IV10 Computergrafiekset 1-inleiding

Jack van Wijk

TU/e


Computergrafiek

Computergrafiek

  • Doel:

    Kennis over en ervaring met basisconcepten 2D en 3D computergrafiek

  • Vorm: colleges, instructies

  • Beoordeling: tentamen, opdracht


Colleges

Colleges

15 stuks (max.)

  • Overzicht van stof

  • Details (m.n. algoritmes en wiskunde)

  • Uitleg instructie-opgaven

  • Vragen!

  • Demo’s


Instructies

Instructies

  • Andrei Jalba en Stef van den Elzen

  • Oefeningen en opdracht

  • Vragen!


Tussentoets

Tussentoets

  • Halverwege (wordt nog bekend gemaakt)

  • Tijdens instructie

  • Toetsing & feedback beheersing stof

  • 1 bonuspunt tentamen


Studiemateriaal

Studiemateriaal

  • 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


College 1

College 1

  • Waarom computergrafiek?


Daarom

Daarom!

  • Leuk!

  • Alomtegenwoordig

  • Visueel systeem biedt:

    • Parallel input

    • Parallel processing

  • Computergrafiek: ideaal voor mens-machine communicatie


Toepassingen

Graphs and charts

Computer-Aided Design

Virtual Reality

Data Visualization

Education and training

Computer Art

Movies

Games

Graphical User Interfaces

Toepassingen

H&B 1:2-33


Business graphics

Business graphics

H&B 1:2-33


Computer aided design

Computer-Aided Design

  • AutoDesk

  • IAME 2-stroke race kart engine


Visualisatie

Visualisatie

Wetenschappelijke visualisatie

Clip:

Golden Age of Scientific Computing

http://www.sci.utah.edu/

H&B 1:2-33


Gaming

Gaming

H&B 1:2-33


Serious gaming

Serious gaming

  • VSTEP Rotterdam

  • www.vstep.nl


Animatie

expressie

onscherpte

breuk

water

haar

spiegeling

Animatie

beweging

H&B 1:2-33


Hardware

Hardware

  • Snelle ontwikkeling

  • Historie: zie boek

  • Nu: grafische kaart, LCD-scherm


Hardware1

  • Gigapixel display

  • 50 LCD touchscreens

Hardware

  • 24 scherm configuratie, Virginia Tech


Toekomst

Toekomst?

Head mounted displays?

Parachute trainer

US Navy


Toekomst1

Toekomst?

  • Oprolbaar scherm, Philips


Toekomst2

Toekomst?

  • Microsoft Surface


Schematisch

interactie

Gebruiker

Schematisch

Beeld af

Model

Beeld


2iv10 computergrafiek set 1 inleiding

Ook…

Computer

Graphics

Model

Beeld

Pattern

Recognition

Image

Processing


Onderwerpen

Onderwerpen

  • Inleiding

  • 2D basisalgoritmes

  • Transformaties

  • Viewing

  • Geometrisch modelleren

  • Zichtbare oppervlakken

  • Belichting

  • Interactie


Van model naar beeld

Van model naar beeld

Model

World

View

NDC

Display

Coördinaten en transformaties

H&B 2-8:69-71


Van model naar beeld1

Van model naar beeld

Model

World

View

NDC

Display

Cylinder:

Local or modeling coordinates

Geometrisch modelleren

H&B 2-8:69-71


Van model naar beeld2

Van model naar beeld

Model

World

View

NDC

Display

Positioneer cylinders in scene:

World coordinates

H&B 2-8:69-71


Van model naar beeld3

Van model naar beeld

Model

World

View

NDC

Display

Kijk naar cylinders:

Viewing coordinates

Zichtbare oppervlakken, belichting

H&B 2-8:69-71


Van model naar beeld4

Van model naar beeld

Model

World

View

NDC

Display

Beeld af:

Normalized Device Coordinates

1

0

1

H&B 2-8:69-71


Van model naar beeld5

Van model naar beeld

Model

World

View

NDC

Display

Beeld af op display:

Device Coordinates

0

1024

768

Interactie

H&B 2-8:69-71


Twee smaken computergrafiek

Twee smaken computergrafiek

  • Vector graphics

    Beeld = verzameling lijnen, polygonen, cirkels,…

    Geometrisch model

    Exact, schaalbaar

  • Raster graphics

    Beeld = rooster van beeldpunten (pixels)

    Display

    Realistische beelden,


Graphics software

Graphics software

  • Special-purpose packages

    • Photoshop, Powerpoint, AutoCAD, StudioMax, Maya,…

  • Computer-Graphics Application Programming Interfaces (CG API)

    • Windows API, OpenGL, VRML, Java3D, Direct3D,…

H&B 2-8:69-73


Cg api

CG API

  • Set van graphics functies, te gebruiken vanuit programmeertaal

  • Toegang en afschermen hardware

  • Standaardisatie

C, C++, Java, Delphi,…

CG API

Fortran, Pascal, …

Drivers

Display

Input dev.

Display

Input dev.

1975

2000


Functies

Functies

  • Graphics Output Primitives

    • Lijn, polygoon, bol, …

  • Attributes

    • Kleur, lijndikte, textuur,…

  • Geometric transformations

    • Modelling, Viewing

  • Belichting

  • Input functions

H&B 2-8:69-73


Software standards

Software standards

  • GKS, PHIGS, PHIGS+ (1980-)

  • GL (Graphics Library, SGI)

  • OpenGL (early 1990s)

  • Direct3D (MS), Java3D, VRML,…

  • Excel, Mathematica, MatLab, …

H&B 2-8:69-73


Opengl

OpenGL

  • 3D (en 2D)

  • Snel

  • Hardware, language, OS, company independent

  • OpenGL architecture review board

  • Breed ondersteund

  • Low-level (right level!)

  • Standaard graphics terminologie

H&B 2-8:69-73


Performance

Performance…

  • 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


Intro opengl

Intro OpenGL

  • Paar basisprincipes

  • Geen tentamenstof

  • Wel: opdracht


Glu en glut

GLU en GLUT

  • OpenGL: basisfuncties

  • GLU(T): OpenGL Utility (Toolkit) libraries:

    • Koppeling met windowing system

    • Inputfuncties

    • Handige hulpfuncties voor viewing en geometrie

    • glutFunctie();

H&B 2-9:73-80


Opengl syntax

OpenGL syntax

  • Functies:

    glFunctie: glBegin, glClear, glVertex

  • Constanten:

    GL_CONSTANT: GL_2D, GL_LINE

  • Datatypes:

    GLtype: GLbyte, GLint, GLfloat

H&B 2-9:73-80


Voorbeeld

Voorbeeld

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

H&B 2-9:80


Opengl output functies

OpenGL output functies

glBegin(GL_iets);

glVertex*();

glVertex*();

glEnd;

glVertex[234][isfd]

[234]: 2D, 3D, 4D

[isfd]: integer, short, float, double

Bijv: glVertex2i(100, 25);

H&B 3-3:89


Output primitives 1

Output primitives 1

  • GL_POINTS: reeks punten

  • GL_LINES: reeks lijnsegmenten

  • GL_LINE_STRIP: polyline

  • GL_RECT: rechthoek

  • GL_POLYGON: polygoon

H&B 3


Output primitives 2

Output primitives 2

  • GL_TRIANGLES: reeks driehoeken

  • GL_TRIANGLE_STRIP:

  • GL_TRIANGLE_FAN:

H&B 3


Output primitives 3

Output primitives 3

  • GL_QUADS: reeks vierhoeken

  • GL_QUAD_STRIP:

H&B 3


Basis wiskunde voor cg

Basis wiskunde voor CG

  • Coördinaten

  • Punten en vectoren

H&B A-1


Co rdinaten

Coördinaten

2D Cartesische coördinaten:

x

y

(x,y)

(x,y)

y

x

Standaard Scherm (output, input)

H&B A-1


Poolco rdinaten

Poolcoördinaten

y

(x,y)

r

x

H&B A-1


3d co rdinaten 1

3D coördinaten 1

3D Cartesische coördinaten:

(x,y,z)

z

(x,y,z)

z

x

y

x

y

Rechtshandig Linkshandig

H&B A-1


3d co rdinaten 2

3D coördinaten 2

Cylindercoördinaten:

(x,y,z)

z

y

x

H&B A-1


3d co rdinaten 3

3D coördinaten 3

Bolcoördinaten:

(x,y,z)

z

f

r

y

x

H&B A-1


Punten en vectoren 1

Punten en vectoren 1

  • Punt: positie in 2D of 3D ruimte

  • Notatie: P (H&B), ook P, p, p en p

  • (x,y,z) (H&B), ook (x1, x2, x3), (Px, Py, Pz)

  • Vector: Gericht lijnsegment, verschil tussen twee punten

  • Notatie: V (H&B), ook V, v, v en v

H&B A-2


Punten en vectoren 2

Punten en vectoren 2

y

P2

y2

P1

y1

x

x1

x2

H&B A-2


Punten en vectoren 3

Punten en vectoren 3

Lengte van een vector:

H&B A-2


Punten en vectoren 4

Punten en vectoren 4

Richting van een vector: richtingshoeken.

Ook: genormaliseerde vector, of

eenheidsvector V

z

g

b

y

x

a

H&B A-2


Vectoren optellen

Vectoren optellen

Kop-staart methode, componentsgewijs optellen

y

y

W

V+W

W

V

V

x

x

H&B A-2


Scalar vector vermenigvuldiging

Scalar-vector vermenigvuldiging

Schalen, componentsgewijs vermenigvuldigen

y

y

2V

V

x

x

H&B A-2


Vector vermenigvuldiging 1

Vector vermenigvuldiging 1

Inwendig product, scalair product ofwel dot product

Product van parallelle componenten

W

V

q

|W| cos q

|V|

H&B A-2


Vector vermenigvuldiging 2

Vector vermenigvuldiging 2

Inwendig product:

H&B A-2


Vector vermenigvuldiging 3

Vector vermenigvuldiging 3

Uitwendig product, vector product ofwel cross product.

n loodrecht op V en W

VW

W

q

n

V

H&B A-2


Vector vermenigvuldiging 4

Vector vermenigvuldiging 4

Uitwendig product (makkelijker te onthouden):

H&B A-2


Vector vermenigvuldiging 5

Vector vermenigvuldiging 5

Uitwendig product:

H&B A-2


Vector vermenigvuldiging 6

Vector vermenigvuldiging 6

Inproduct:

  • scalar

  • vectoren loodrecht?

  • cos

  • projecteren,…

  • Uitproduct:

  • vector

  • vector loodrecht op…

  • sin

  • oppervlak,…

H&B A-2


Oefening 1

Oefening 1

  • Gegeven een lijn L: L(t) = P + Vt .

  • Gevraagd: Spiegel een punt Q ten opzichte van deze lijn.


Stappen bij dit soort opgaven

Stappen bij dit soort opgaven

  • Schrijf op wat je weet

  • Reken het uit

  • Controleer het resultaat


Oefening 2

Oefening 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?


Gebruik

Gebruik:

Niet:

  • arccos, arcsin

  • y=f(x)

    Wel:

  • inproduct, uitproduct

  • coördinaat onafhankelijke definities

  • matrix vector algebra


  • Login