01 Introduction [Kompatibilitätsmodus] - rendering.ovgu.de · Das TeamDas Team Vorlesung...

73
(1) Einführung Grundlagen der Computergrafik Th t G h Thorsten Grosch

Transcript of 01 Introduction [Kompatibilitätsmodus] - rendering.ovgu.de · Das TeamDas Team Vorlesung...

(1) Einführung

Grundlagen der ComputergrafikTh t G hThorsten Grosch

WillkommenWillkommen…

zur Vorlesung Grundlagen der Computergrafik“ !… zur Vorlesung „Grundlagen der Computergrafik !

HeuteHeuteOrganisatorischesVorstellung von Team und VorlesungHistorische Entwicklung der ComputergrafikVorstellung der Computergrafik in MagdeburgEinführung in Programmierung mit OpenGLEinführung in Programmierung mit OpenGL

T. Grosch - 2 -

Das TeamDas Team

VorlesungVorlesungJun.-Prof. Thorsten Grosch

AG Computervisualistik

ÜbungenDipl.-Inform. Janick Martinez [email protected]

Tutoren für ÜbungenTutoren für ÜbungenSteffen Salbert

Sebastian BümannKevin Thiel (Korrektur)

T. Grosch - 3 -

WebseiteWebseitewww.rendering.ovgu.dewww.rendering.ovgu.de

Lehre Sommersemester2012 Computergrafik

http://www rendering ovgu de/lehre/lehreordner/sommersemester 2012/http://www.rendering.ovgu.de/lehre/lehreordner/sommersemester_2012/grundlagen_der_computergraphik.html

F liFolienÜbungsblätterBeispielprogrammeNews….

Die Folien von heute sind bereits verlinkt

T. Grosch - 4 -

Allgemeines zur VorlesungAllgemeines zur VorlesungVorlesungVorlesungOrt: G29-307 Zeit: Dienstag, 15:00 - 17:00 Uhr

2 SWS ECTS S di ECTS C di2 SWS, ECTS-Studium, ECTS-Credits: 5

PF CV;B 2WPF DigiEng;M 1-3WPF IF;B 4-6WPF IngINF;B 4-6PF IT;D-TIF 6-8PF IT;D-IE 6-8PF MVK;M ab 1 (Modul 2 oder 3)WPF MVK;B ab 3 (Modul 14)WPF WIF;B 6

T. Grosch - 5 -

Allgemeines zur VorlesungAllgemeines zur Vorlesung

Grundlagen der ComputergrafikGrundlagen der ComputergrafikAlgorithmen zum Zeichnen von Punkten, Linien, Polygonen, …2D und 3DClippingTransformationen

• Verschieben, drehen, skalieren, …Projektionen

• 3D 2D• 3D 2DBeleuchtungsverfahren zur realistischen Darstellung einer 3D Szene„weiche“ Kurven (ohne Ecken) Splines…

T. Grosch - 6 -

Allgemeines zur VorlesungAllgemeines zur Vorlesung

Vorlesung enthält immer Theorie und ProgrammierungVorlesung enthält immer Theorie und Programmierung

Programmierung mitProgrammierung mit C++OpenGL p

plattformunabhängig

T. Grosch - 7 -

Zeitliste Datum ThemaZeitlisteVorlesungen

Datum Thema10.4.2012 Einführung

17.4.2012 Grundlagen Mathematik

24.4.2012 Linien, Clipping

1.5.2012 -- Feiertag --

8 2012 P l Cli i8.5.2012 Polygone, Clipping

15.5.2012 Transformationen

22.5.2012 View Transformationen22.5.2012 View Transformationen

29.5.2012 Projektionen

5.6.2012 Beleuchtung

12.6.2012 Texturen

19.6.2012 Splines

26.6.2012 Ray Tracing

3.7.2012 Wiederholung, Fragen, Prof. Preim: Vorstellung Anwendungsfächer

T. Grosch - 8 -

10.7.2012 Hot Topics, Vorstellung Projekte

Allgemeines zu den ÜbungenAllgemeines zu den Übungen

Wöchentliche ÜbungenWöchentliche ÜbungenTheorie – und ProgrammieraufgabenTheorieteilTheorieteil

MathematikAlgorithmen von Hand durchrechneng

ProgrammieraufgabenKleine OpenGL ProgrammeAb ca. der Hälfte der Vorlesung schrittweise Programmierung eines Flugsimulators (Terrain BeleuchtungFlugsimulators (Terrain, Beleuchtung, Kamerasteuerung, …)

T. Grosch - 9 -

Allgemeines zu den ÜbungenAllgemeines zu den Übungen

Übungsgruppen:

Übung 1 (Janick Martinez) Donnerstag 9-11h, G29-335

Übung 2 (Janick Martinez) Donnerstag 15-17h, G29-335

Üb 3 (S b ti Bü ) D t 17 19h G29 335Übung 3 (Sebastian Bümann) Donnerstag 17-19h, G29-335

Übung 4 (Steffen Salbert) Montag 15-17h G29-335Übung 4 (Steffen Salbert) Montag 15 17h, G29 335

T. Grosch - 10 -

Anmeldung für die ÜbungAnmeldung für die Übung

Zur Anmeldung für die Übung:Zur Anmeldung für die Übung:Bitte Email schicken an Janick Martinez Esturo

[email protected]@ g g g

bis morgen (Mittwoch, 11.4.) 24 Uhr

Inhalt• Name Vorname Matrikelnr Studiengang• Name, Vorname, Matrikelnr., Studiengang• Gewünschte Übungsgruppe und Ausweichtermin

Ende der Woche bekommt ihr eine Email zurück mit eurer Übungsgruppe und einem Zugang zur Webseite (Punktestand einsehen)einsehen)

T. Grosch - 11 -

ÜbungsblätterÜbungsblätter

Ausgabe: Übungsblatt jede Woche Dienstags auf derAusgabe: Übungsblatt jede Woche Dienstags auf der HomepageAbgabe der Lösungen:Abgabe der Lösungen:

- In Gruppen von 2-4 Personen, eine Woche später- Schriftliche Aufgaben: Vor der Vorlesung (Di 15 Uhr) bei mir

abgeben (Übungsgruppe, Name, Matnr. auf jedem Blatt angeben)

- Programmieraufgaben: Vor der Vorlesung (bis spätestens Di 15 Uhr) per Email an kevin thiel@st ovgu de15 Uhr) per Email an [email protected]

- Nur compilierfähigen Quellcode abgeben (keine Binaries)- Keine zusätzlichen Libraries verwenden

D il i T d Üb b h- Details mit Tutor der Übung absprechen

Rückgabe und Durchsprechen der Aufgaben in der Übung in der Woche nach der AbgabeÜbung in der Woche nach der Abgabe

T. Grosch - 12 -

1 Übungsblatt1. Übungsblatt

1 Übungsblatt nächste Woche1. Übungsblatt nächste WocheAusgabe am 17.4.Abgabe am 24.4.gRückgabe & Besprechung in den Übungen ab dem 26.4.

T. Grosch - 13 -

Übungen in den ersten beiden WochenÜbungen in den ersten beiden Wochen

Diese Woche (Di 10 4 – Mo 16 4 )Diese Woche (Di, 10.4. – Mo, 16.4.)Installation OpenGL, einfache OpenGL / C ProgrammierungVisual Studio Express 2010 C++ (& Windows SDK) und p ( )CMake auf eigenem Laptop vorher installierenEinfach eine beliebige Übungsgruppe aussuchen (noch keine Zuordnung)Zuordnung)

In der Übung nächste Woche (17.4. - 23.4.) Einführung in C / C++ ProgrammierungEinführung in C / C ProgrammierungZu regulären Übungszeiten / Räumen

T. Grosch - 14 -

Voraussetzungen für KlausurVoraussetzungen für KlausurDie Bearbeitung der Übung ist Z l t fü di KlZulassungsvoraussetzung für die Klausur

Mind. 50% der Punkte aus den Übungsaufgaben müssen erreicht werden, sowohl in Theorie- als auch in ,ProgrammieraufgabenPunkte aus der Übung werden nicht in die Prüfung übernommenübernommen3 x vorrechnen in der Übung

Zusätzlich kann der Flugsimulator erweitert werdenZusätzlich kann der Flugsimulator erweitert werdenKreativ-Punkte, keine VorgabenBonuspunkte für die besten Programme Vorstellung in letzter Vorlesung (10.7.)

Klausurtermin voraussichtlich in den ersten zwei Wochen nach Ende der Vorlesungszeit (16.7. – 29.7.)

T. Grosch - 15 -

Zeitliste Datum ÜbungZeitlisteÜbungen

Datum Übung10.4. – 16.4. Installation von OpenGL, einfache

OpenGL Programmierung

17 4 – 23 4 Einführung in C und C++ Ausgabe17.4. 23.4. Einführung in C und C , Ausgabe Blatt 1

24.4. – 2.5. Rückgabe und Besprechung Blatt 1, Ausgabe Blatt 2

Insgesamt 10 Übungsblätter

1.5. -- Keine Übung wegen Feiertag --

8.5. – 14.5. Rückgabe und Besprechung Blatt 2, Ausgabe Blatt 3

… …

19.6. – 25.6. Rückgabe und Besprechung Blatt 8, Ausgabe Blatt 9

26.6. – 2.7. Rückgabe und Besprechung Blatt 9, Ausgabe Blatt 10

3.7. – 10.7. Rückgabe und Besprechung Blatt 10

T. Grosch - 16 -

Literatur zur VorlesungLiteratur zur Vorlesung

Peter ShirleyFundamentals of Computer Graphics

AK Peters, 3. Auflage

Dave ShreinerOpenGL Programming GuideOpenGL Programming GuideMorgan Kaufmann, 7. Auflage

Beide Bücher sind mehrfach in der Bibliothek als Präsenz – und

T. Grosch - 17 -

Ausleihexemplar vorhanden

Weitere LiteraturWeitere LiteraturJ. Foley, A. van Dam, S. Feiner, J. Hughes: Computer Graphics:J. Foley, A. van Dam, S. Feiner, J. Hughes: Computer Graphics: Principles and Practice, 2nd Edition

Alan Watt: 3D Computer Graphics Addison Wesley 3rd editionAlan Watt: 3D Computer Graphics, Addison-Wesley, 3rd edition

J.L. Encarnação, W. Strasser, R. Klein: Graphische D t b it 1 d 2Datenverarbeitung 1 und 2

Michael Bender, Manfred Brill:ComputergrafikHanser Verlag, 2003

Klaus Zeppenfeld:Lehrbuch der GrafikprogrammierungSpektrum Akademischer Verlag, 2004

T. Grosch - 18 -

p g,

Einordnung und Begriffsbestimmung

Die graphische Datenverarbeitung ist in der ISO-Norm

Einordnung und Begriffsbestimmung

Die graphische Datenverarbeitung ist in der ISO Norm wie folgt definiert (ISO DIS 2382/13, 1982):

“Methods and techniques for converting data to and fromto and from

graphics displays via computer”

Mit “to” und “from” sind zwei Wege aufgezeichnet, einmalvon der Beschreibung (Modell) zum Bild und einmal vomvon der Beschreibung (Modell) zum Bild und einmal vom Bild zur Beschreibung.

19

Einordnung und BegriffsbestimmungEinordnung und BegriffsbestimmungDamit ist folgende Klassifikation möglich (vgl. Encarnacáo, Strasser, Klein 1996)Klein, 1996)

AusgabeBild B h ib

gEingabe Bild

BildverarbeitungBild

Beschreibung

BildanalysegBild

Beschreibung Computergraphik

y

andere Disziplinen

Die Aufgabe der Computergraphik ist die rechnergestützte Erzeugung künstlicher Bilder, die in Form von Szenen-

p

/Bildbeschreibungen vorliegen.

20

Geschichte der Computergrafik

Geschichte der ComputergraphikGeschichte der ComputergraphikGeschichte der Computergraphik1949 Erste Computergraphik auf dem Whirlwind

Computer des MIT (bouncing Ball Program von Charly Adams);

Display

T. Grosch - 22 -

Geschichte der Computergraphik1952 Einsatz der Computergraphik zur

Geschichte der Computergraphik

Kennzeichnung von Flugobjekten auf Radarbildschirmen

SAGE (Semi-Automatic Ground Environment) Computer mit 82 Graphikkonsolen zur Luftüberwachung, erster Einsatz eines Lichtgriffels);

S C lSage Consolen

T. Grosch - 23 -

Geschichte der Computergraphik1962 Erste 3D Computergraphiken von L.G. Roberts auf d TX2 d MIT

Geschichte der Computergraphik

dem TX2 des MIT;

TX2 Computer

T. Grosch - 24 -

Geschichte der Computergraphik1963 Sketchpad - erstes interaktives C t hik t S th l d it

Geschichte der Computergraphik

Computergraphiksystem von Sutherland mit• Bildkomposition aus graphischen Standardelementen,• Interaktion mit Tastatur und Lichtgriffel zur Arbeit mit Menüs,g ,• entsprechenden Datenstrukturen zur Verwaltung graphischer Daten;

Ivan Sutherland an der Konsole des TX-2 Computers

T. Grosch - 25 -

Geschichte der Computergraphik

Mitte der 60er Jahre: Beginn einer Vielzahl von CG

Geschichte der Computergraphik

Mitte der 60er-Jahre: Beginn einer Vielzahl von CG-Forschungs-projekten (am MIT, General Motors, Bell Telephone Lab Lockheed Aircraft usw )Telephone Lab., Lockheed Aircraft usw.)

1965: Erstes kommerzielles Vektor-Display von IBM1965: Erstes kommerzielles Vektor-Display von IBM(Preis ca. 100.000 US$);

1967: Erster Bildspeicher-Display von Tektronix (bietet einemvon Tektronix (bietet einem

breiten Interessentenkreis Zugang zur Computergraphik Preis ~10 000 USD);zur Computergraphik, Preis 10.000 USD);

T. Grosch - 26 -

Geschichte der Computergraphik

Anfang der 70er Jahre: erste kommerzielle CAD/CAM-

Geschichte der Computergraphik

Anfang der 70er Jahre: erste kommerzielle CAD/CAM-Systeme kommen auf den Markt.

1971: Raster-Scan-Prinzip von M. Noll (Bell Lab.)vorgeschlagen;

1972: Erster Flugsimulator (General Electronics);

Erster Heimcomputer als Bausatz unterErster Heimcomputer als Bausatz unter dem Namen „Altair 8800“ auf dem Markt

T. Grosch - 27 -

Geschichte der ComputergraphikGeschichte der Computergraphik

1973: Erste Konferenz der SIGGRAPH (Special Interest Group on Computer Graphics) der ACM

(Association of Computing Machinery), die sich ausschließlich mit Computer Graphik beschäftigt (damals ca 1200 Teilnehmer heute > 30000);beschäftigt (damals ca. 1200 Teilnehmer, heute > 30000);

T. Grosch - 28 -

Geschichte der ComputergraphikAb Mitte der 70er Jahre:

Geschichte der Computergraphik

• Graphische Unterprogrammpakete (PLOT10, CAL-Comp),

• Graphische Programmiersprachen (DIGRA 73),p g p ( ),

• Erste kommerzielle Raster-Displays (max. Auflösung 512 x 512 Pixel, 8 Bit pro Pixel, Preis ~100.000DM);

E t V f h h tti t Obj ktd t ll• Erste Verfahren zur schattierten Objektdarstellung:• Beleuchtungsverfahren (Phong 1975, Blinn 1977),

• Schattierungsverfahren (Gouraud 1971, Phong 1975),g• Texturierung (Catmull 1974),

• Schattenwurf (Crow 1977, Williams 1978);

M. Newell (Univ. of Utah) modelliert 1975 den Utah teapot –

eine Ikone der Computer Graphikeine Ikone der Computer Graphik.

T. Grosch - 29 -

Geschichte der Computergraphik1977 Erste Vorschläge zur Standardisierung von

G hik ft CORE

Geschichte der Computergraphik

Graphiksoftware - CORE;

1979 Erstmalige Darstellung von spiegelnder Reflexion und Transparenz mit Hilfe desReflexion und Transparenz mit Hilfe des Raytracing (Kay, Whitted);

Li ht llProjektions-ebene

Lichtquelle

Strahlen-wege

Projektions-

Szene

zentrum

T. Grosch - 30 -

Geschichte der Computergraphik1979: Gründung der Computer Graphik Abteilung von

Geschichte der Computergraphik

LucasFilm durch George Lucas (die Abteilung wird der „Special Effects“-Abteilung ILM -Industrial Light and Magic- zugeordnet);

1980: Vorführung des Films Vol Libre (von Loren Carpenter, Boeing) auf der SIGGRAPH’80 (in dem Film wird der Flug durch

C ‘ G

eine fraktale Landschaft gezeigt);

Carpenter‘s Kunst-Gebirge wurde bei der Prämierung von der SIGGRAPH-Jury mit der

Begründung ausgeschlossenBegründung ausgeschlossen, weil

„... es nicht wie eine ComputerGraphik aussieht !“

T. Grosch - 31 -

Geschichte der Computergraphik

1980:~30 Min Computeranimationen im Film Tron (Film

Geschichte der Computergraphik

1980:~30 Min. Computeranimationen im Film Tron, (Film floppt, große Hollywood Filmstudios reagieren mit Zurückhaltung

gegenüber Computer Graphik);gegenüber Computer Graphik);

1981: Erstes „Rendering“-System REYES („Rendering everything you ever saw“, von L. Carpenter für LucasFilm – wird später zu Renderman weiterentwickelt);

Beginn der Entwicklung des Volume-Rendering;Rendering;

T. Grosch - 32 -

Geschichte der Computergraphik

1982 E t Fil i d i h F i L h

Geschichte der Computergraphik

1982: Erste Filmsequenz, in der sich Frau in Luchs verwan-delt (T.Brigham, SIGGRAPH´82);

Diese Technik wird späterDiese Technik wird später Morphing genannt -(wurde bis 1987 nicht weiter b ht t bi L Fil i ibeachtet, bis LucasFilm sie in dem Film „Willow“ einsetzt);

T. Grosch - 33 -

Geschichte der Computergraphik

1982: Gründung Silicon Graphics Inc (SGI) J Clark

Geschichte der Computergraphik

1982: Gründung Silicon Graphics Inc. (SGI), J. Clark, (Entwicklung von Hochleistungsrechnern für graphische Anwendungen);

1983: Jaron Lanier (Atari Research Center)entwickelt Datenhandschuh;

T. Grosch - 34 -

Geschichte der Computergraphik

1984: Globale Beleuchtungs-Simulation

Geschichte der Computergraphik

98 G oba e e euc u gs S u a omit Radiosity (Goral u.a., Nishita);

Gründung Wavefront TechnologiesGründung Wavefront Technologies für Animations-Software;

Strahlungsquelle

Reflektierte StrahlungRadiosity-Bildy

T. Grosch - 35 -

Geschichte der Computergraphik1986: Gründung der Fa. Pixar durch Ed Catmull und A.R. Smith

Geschichte der Computergraphik

nach Abspaltung von Lucas Film; Pixars RenderMan wird Industrie-Standard;1988: Film The Abyss, James Cameron

(ILM stellt dabei die Szene mit der Wasser-Kreatur her die die GesichterWasser-Kreatur her, die die Gesichter der Mannschaft imitiert);

aus J.D. Foley, et alComputer Graphics – Principles

and Practice

T. Grosch - 36 -

Geschichte der Computergraphik

1989:Einführung von Motion Capture Nutzung

Geschichte der Computergraphik

1989:Einführung von Motion Capture, Nutzung mechanischer Eingabegeräte für Computeranimation;

1992: Neue Maßstäbe bei computer-generierten Spezialeffekten,(Animationen des „T1000“-Roboters in J. Cameron‘s Film Terminator 2);

OpenGL wird als Grafikstandardfestgelegtg g

T. Grosch - 37 -

Geschichte der Computergraphik

1993 St S i lb ‘ Fil

Geschichte der Computergraphik

1993: Steven Spielberg‘s Film Jurassic Park(anstelle der ursprünglich geplanten ( p g g pPuppenanimationen werden Computer-animationen für die Dinosaurierszenen eingesetzt);g )

T. Grosch - 38 -

Geschichte der ComputergraphikAnfang- Mitte der 90er Jahre:

- Verbindung moderner Kommunikationstechnologien mit Graphik:

Geschichte der Computergraphik

- Verbindung moderner Kommunikationstechnologien mit Graphik:Multimedia in verteilten Umgebungen, CSCW Computer supported cooperative work, Graphik im Internet, Standards zur Bild und BewegtStandards zur Bild- und Bewegt-bildübertragung...,

- Daten- und Informations-Visualisierung,- Methoden des Non-Photorealistic Rendering ( Uni Magdeburg);et ode des o oto ea st c e de g ( U agdebu g);

T. Grosch - 39 -

Geschichte der ComputergraphikGeschichte der Computergraphik

1995: Toy Story kommt in die Kinos; erster vollständig computer-animierte Film von Pixar;

Rendering: 800 000 Std. Berechnungs-zeit für 70 min. Film auf 177 Sun Sparc 20

D Fil i t i ß K f lDer Film ist ein großer Kassenerfolg, wird für drei Oskars nominiert, erhält jedoch keinen davon ...

T. Grosch - 40 -

Geschichte der Computergraphik

1998: High Dynamic Range (HDR) Paul Debevec

Geschichte der Computergraphik

1998: High Dynamic Range (HDR), Paul Debevec8 Bit 32 Bit float pro PixelDigitale Kamera nimmt echte Helligkeiten auf

H

HDR Light Probe

HD

R LD

R

Image-based LightingFiat Lux 1999Fiat Lux 1999

T. Grosch - 41 -

Geschichte der ComputergraphikGrafikkarten1999 h t G hi P i U it (GPU)

Geschichte der Computergraphik

1999 - heute: Graphics Processing Unit (GPU)

SGI Grafik-Workstation wird immer mehr von PC mitSGI Grafik-Workstation wird immer mehr von PC mit Grafikkarte abgelöst

Starke Weiterentwicklung durch Spieleindustrie

GPU wird zum schnellen Coprozessor, bisherige Offline-Techniken werden EchtzeitfähigOffline-Techniken werden Echtzeitfähig

T. Grosch - 42 -

Geschichte der Computergraphik

2001: sehr gute Gesichtsanimationen

Geschichte der Computergraphik

2001: sehr gute Gesichtsanimationen von virtuellen Charakteren im Film Shrek ;

Simulation von Haaren: Monster AG

T. Grosch - 43 -

Geschichte der Computergraphik2001: Final Fantasy, erster k l tt t i i t

Geschichte der Computergraphik

komplett computer- animierter Spielfilm mit realistischen virtuellenrealistischen virtuellen Charakteren;die Produktion des Films dauerte ~4 Jahre, wobei etwa 170 Computeranimatoren tätig waren

aus: digital production,H f 3/01Heft 3/01

T. Grosch - 44 -

Geschichte der ComputergraphikSehr große, virtuelle Welten…2003 H d Ri

Geschichte der Computergraphik

2003: Herr der Ringe

2009: Avatar2009: Avatar

2012… ?

T. Grosch - 45 -

Computergrafik in Magdeburg

AG Visual Computing: Prof. Holger TheiselAG Visualisierung: Prof. Bernhard Preimg

AG Computervisualistik: Jun.-Prof. Thorsten Grosch

Computergraphik in MagdeburgComputergraphik in Magdeburg

AG Visual ComputingProf Holger TheiselProf. Holger Theisel

•VisualisierungS ö•speziell Strömungsdaten

•Information Visualization•Visual Analytics•Geometric Modelling, geometric Design

T. Grosch - 47 -

C t hik i M d bAG Visual Computing: Flow Visualization

Computergraphik in MagdeburgAG Visual Computing: Flow Visualization

T. Grosch - 48 -

Computergraphik in Magdeburg

AG Visual Computing:

Computergraphik in Magdeburg

AG Visual Computing:Geometric Modelling, Deformations

T. Grosch - 49 -

Computergraphik in MagdeburgAG Visualisierung (Prof. Bernhard Preim)

Computergraphik in Magdeburg

Gefäßvisualisierung und illustrative Visualisierung

Ausgusspräparat der Bronchialgefäße einer menschlichen Lunge Der linke Fokus- und Kontextdarstellung durcheiner menschlichen Lunge. Der linke Lungenlappen ist transparent dargestellt zusammen mit einem Volume Rendering weiterer Gefäße und umgebender Knochen

Fokus und Kontextdarstellung durch farblich hervorgehobene Fokusobjekte

und Repräsentation von Kontextstrukturen mittels Stippling und

Silh ttumgebender Knochen. Silhouetten.

T. Grosch - 50 -

Computergraphik in MagdeburgAG Visualisierung (Prof. Bernhard Preim)

Computergraphik in Magdeburg

Planung und Training von chirurgischen Eingriffen

Kombination von Farbe, Transparenz Mapping undTransparenz-Mapping und lokaler Transparenz um einen einzelnen Hals-Lymphknoten h h b

Der Nutzer kann in einer 3D-Darstellung eine virtuelle

hervorzuheben.Resektion vornehmen.

T. Grosch - 51 -

Computergraphik in MagdeburgComputergraphik in MagdeburgAG Computervisualistik (Jun.-Prof. Thorsten Grosch)Gl b l B l htGlobale Beleuchtung

Simulation aller Lichtwege von der Lichtquelle bis zum Auge• Indirektes Licht, Spiegelungen, weiche Schatten, …, p g g , ,

Ziel: Echtzeitdarstellung, also mind. 25 Bilder / sek.

Nur direktes LichtSchnell, aber künstlich

Globale Beleuchtung:Photorealistisch, aber

zeitaufwändig

Virtuelle 3D Szene,keine Beleuchtung

zeitaufwändig

T. Grosch - 52 -

BeispielbilderStroebel et al .1986

Beispielbilder

Geomerics

CryTek

Bilder: Jensen, Lightscape

CryTek

T. Grosch - 53 -

Computergraphik in MagdeburgComputergraphik in MagdeburgAG ComputervisualistikForschungsschwerpunkt

Globale Beleuchtung in Echtzeit mit der GrafikEchtzeit mit der Grafik Hardware

T. Grosch - 54 -

Computergraphik in MagdeburgComputergraphik in Magdeburg

Imperfect Shadow Maps: Ritschel, Grosch, Kim, Seidel, Dachsbacher, Kautz

T. Grosch - 55 -

Computergraphik in MagdeburgComputergraphik in MagdeburgAG ComputervisualistikErweiterung reales Kamerabild mit virtuellen Objekten AugmentedObjekten Augmented Reality

Rekonstruktion derRekonstruktion der Beleuchtung auf dem FotoGlobale Beleuchtung mit i t ll Obj ktvirtuellen Objekten

Einblendung ins Foto, Licht und Schatten sind korrekt

T. Grosch - 56 -

Computergraphik in MagdeburgComputergraphik in MagdeburgAG Computervisualistik

Vorlesungen

GPU Programmierung • Wahlpflicht Bachelor Sommersemester• Wahlpflicht, Bachelor, Sommersemester

Photorealistische Computergrafikp g• Wahlpflicht, Master, Wintersemester

T. Grosch - 57 -

OpenGL

Was ist OpenGL ?Was ist OpenGL ?

Open Graphics LibraryOpen Graphics LibraryGrafik Bibliothek zur Darstellung von 3D Objekten

Polygone Materialien Lichtquellen KameraPolygone, Materialien, Lichtquellen, Kamera, ….

T. Grosch - 59 -

Hintergrund / GeschichteHintergrund / Geschichte

auf der Suche nach einer einheitlichen Software-… auf der Suche nach einer einheitlichen Software-Schnittstelle (API: Application Programming Interface) zur Programmierung von Graphiksystemeng g p yStandardisierungsbemühungen

GKS, PHIGS…

„Proprietäre Systeme“HP: Starbase, SGI: GL (Graphics Library)

Gewinner: SGI mit GL in Verbindung mit sehr guter HardwareOpenGL (1992, Mark Segal & Kurt Akeley)Konkurrenz nur noch durch Microsoft (Direct3D)

T. Grosch - 60 -

OpenGLOpenGL

OpenGL ist ein Software Interface für GraphikOpenGL ist ein Software Interface für Graphik Hardware mit ca. 250 verschiedenen Kommandos

Hardware unabhängigg g

warum „Open“?offen für Lizenznehmerverwaltet vom Architecture Review Board (ARB)

• NVIDIA, ATI, IBM, Intel, SGI, ….j d Li h it b (E t i )von jedem Lizenznehmer erweiterbar (Extension)

Nicht dabei:Handhabung von Fenstern/WindowsHandhabung von Fenstern/WindowsBenutzereingabe

T. Grosch - 61 -

OpenGL HistorieOpenGL HistorieVersion Jahr Beschreibung

1.0 1992 Erste Veröffentlichung

Version Jahr Beschreibung

3.0 2008 OpenGL Shading Language

1.1 1997 Vertex Arrays, TextureObjects, Polygon Offset

1 2 1998 3D Texturen Pixelformate

1.3, Entfernung von Fixed-Function-Pipeline (begin/end, T&L,…), Annäherung an DirectX1.2 1998 3D Texturen, Pixelformate,

MipMaps

1.2.1 1998 ARB Extensions, ARB Multitexture

3.1 2009 Compatibility extension für Altlasten, Uniform BufferObjects, Primitive Restart, Instancing, CopyBuffer,

1.3 2001 Komprimierte Texturen, Cube Maps, Multi-Texturing

1.4 2002 Tiefentexturen, automatische

Instancing, CopyBuffer, Texture Buffer Objects

3.2 2009 Geometry Shader, Sync andFence, OpenGL ShadingL 1 5MipMaps, Nebelkoordinaten

1.5 2003 Buffer Objects, OcclusionQueries

Language 1.5

3.3 2010 Diverse ARB Extensions, OpenGL Shading Language 3.3

2.0 2004 OpenGL Shading Language, Multiple Render Targets, non–power-of-2 Textures, Point Sprites, Vertex Texture Fetch

4.0 2010 OpenCL, Tessellation, OpenGL Shading Language 4.0

T. Grosch - 62 -

2.1 2006 Pixel Buffer Objects, sRGBTexturen, OpenGL ShadingLanguage 1.2

4.1 2010 Binäre Shader Programme, double precision bei Vertex Shader, OpenGL ShadingLanguage 4.1

EinführungEinführung

OpenGL Core: Basisprimitive (Punkte LinienOpenGL Core: Basisprimitive (Punkte, Linien, Polygone…)Darauf aufbauend gibt es diverse Tools:Darauf aufbauend gibt es diverse Tools:

OpenGL Utility Library (GLU): standardmaessig dabei für Oberflächen (Quadrics, NURBS…)

OpenGL ist eine „State-Machine“Man versetzt die „Maschine“ in einen Zustand, der so lange besteht bis er wieder verändert wirdbesteht, bis er wieder verändert wirdBeispiel: ab jetzt alles rot, ab jetzt dieses Material, ab jetzt diese TransformationEffizienter, als Daten jedes Mal neu zu übergeben

T. Grosch - 63 -

OpenGL GrundstrukturOpenGL Grundstruktur

Low-Level-APILow-Level-APIHardware-nah aber Hardware-unabhängig

2 Arten von Funktionen2 Arten von FunktionenZustand ändernPrimitive darstellen

immediate mode Systemsehr einfache BefehleDirektes Durchreichen an die HW möglichDreiecks-basiert, keine interne Repräsentation der Szene

klarer Namensraumklarer NamensraumBefehle fangen mit gl... anKonstanten mit GLKonstanten mit GL_...

T. Grosch - 64 -

BeispielBestimmt die Farbe, mit der das Bild gelöscht wirdBeispiel

glClearColor(0 0 0 0 0 0 0 0);

Bild gelöscht wird

Löscht das Bild, genauer den Color Buffer (alternativ z-BufferglClearColor(0.0, 0.0, 0.0, 0.0);

glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0, 1.0, 1.0);

Color Buffer (alternativ z Buffer etc.)

Setzt die Farbe auf weißglOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);glBegin(GL_POLYGON);

lV t 3f(0 25 0 25 0 0)

Definiert das Koordinatensystem für das R d iglVertex3f(0.25, 0.25, 0.0);

glVertex3f(0.75, 0.25, 0.0);glVertex3f(0.75, 0.75, 0.0);

Rendering

Definiert ein zu zeichnendes Objekt hier ein Polygon mit 4glVertex3f(0.75, 0.75, 0.0);

glVertex3f(0.25, 0.75, 0.0);glEnd();

Objekt, hier ein Polygon mit 4 Ecken

Sorgt dafür daß dieglFlush();

Sorgt dafür, daß die Zeichenkommandos auch ausgeführt werden, anstatt in einem Puffer auf weitereeinem Puffer auf weitere Kommandos zu warten

T. Grosch - 65 -

GLUT the OpenGL Utility ToolkitGLUT, the OpenGL Utility Toolkit

OpenGL ist unabhängig vom Betriebssystem oderOpenGL ist unabhängig vom Betriebssystem oder Window-ManagerLeider läuft keine Graphikapplikation ohne dass manLeider läuft keine Graphikapplikation ohne dass man zumindest ein Fenster öffnet oder einfache Eingabewerte (Tastatur/Maus) abfragtGLUT: Ganz gut für den Start…

T. Grosch - 66 -

Beispiel Initialisiert GLUTBeispielint main(int argc char** argv)

RGBA oder Color-Index Mode, Single oder Double Buffer etc.

int main(int argc, char argv){

glutInit(&argc, argv);

Position und Größe des Fensters

glutInitDisplayMode (GLUT_SINGLE | GLUT_RGB);glutInitWindowSize (250, 250); l tI itWi d P iti (100 100)

Das Fenster mit GL-Kontext glutInitWindowPosition (100, 100);glutCreateWindow ("hello");init ();

wird erzeugt, allerdings erst durch glutMainLoop dargestellt

Di l C llb k F ktiinit ();glutDisplayFunc(display); glutMainLoop();

Display Callback Funktion: sobald GLUT ein Neuzeichnen des Fensterinhalts für nötig hält,

return 0; /* ANSI C */}

wird diese CB-Funktion aufgerufen

E t t i t H t hl ifEvent-getriggerte Hauptschleife

T. Grosch - 67 -

Beispiel: hello cBeispiel: hello.c

Hello slnHello.sln

T. Grosch - 68 -

GLUTGLUT

InitialisierungInitialisierungglutInit(int *argc, char **argv);glutInitDisplayMode( ... );g p y ( );glutCreateWindow(„name“);

Zeichenfunktion registrierenglutDisplayFunc( void (*func)(void) );

Neuzeichnen anmeldenglutPostRedisplay();

T. Grosch - 69 -

GLUTGLUT

InteraktionsfunktionenglutMouseFunc(void (*func)(int button int state int x int y) );glutMouseFunc(void ( func)(int button, int state, int x, int y) );glutKeyboardFunc(void (*func)(unsigned char key, int x, int y) );glutMotionFunc(void (*func)(int x, int y) );

HilfsfunktionenglutReshapeFunc(void (*func)(int width, int height) );glutIdleFunc( void (*idle)(void) );

HauptschleifeglutMainLoop();

T. Grosch - 70 -

GLUTGLUT

Hilfsfunktionen für PrimitiveHilfsfunktionen für Primitive void glutWireSphere(float radius, int slices, int stacks);void glutWireTorus(float inner radius, float outer radius, int sides, g ( _ , _ , ,int rings) ;void glutWireTeapot(double size);

T. Grosch - 71 -

Genug für heuteGenug für heute…

Als nächstesAls nächstesAnmelden für die ÜbungVisual Studio Express 2010 (& Windows SDK) + CMake p ( )installierenOpenGL ausprobieren ÜbungenB i i l f d W b itBeispielprogramme auf der Webseite

Nächste WocheNächste WocheMathematische GrundlagenErstes Übungsblattg

T. Grosch - 72 -

AcknowledgementsAcknowledgements

Diese Vorlesungsskripte basieren in weiten Teilen aufDiese Vorlesungsskripte basieren in weiten Teilen auf Skripten von

Prof Stefan Müller (Universität Koblenz)- Prof. Stefan Müller (Universität Koblenz)- Prof. Holger Theisel (Universität Magdeburg)

und weiteren Kollegen.Dankeschön!

T. Grosch - 73 -