1 / 30

Einsteigerkurs

Einsteigerkurs. Andy Reimann - Mai 2011. Trailer. Intro. Roadmap. Geschichte von OpenGL Buffer und Fenster Fenster-Management mit Glut - OpenGL Utility Toolkit PROC: Fenster initialisieren Die Transformation-Pileline von OpenGL PROC: Moving Triangle

lazaro
Download Presentation

Einsteigerkurs

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. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Einsteigerkurs Andy Reimann - Mai 2011

  2. Trailer Intro

  3. Roadmap • Geschichte von OpenGL • Buffer und Fenster • Fenster-Management mit Glut - OpenGL Utility Toolkit • PROC: Fenster initialisieren • Die Transformation-Pileline von OpenGL • PROC: Moving Triangle • Beleuchtungsmodell und Materialeigenschaften • PROC: Materialized Teapot • Einführung in DevIL - Texturen laden und anwenden • PROC: Textured Teapot

  4. Hinweise zum Vortrag • Da Zeit knapp, viele Detailinformationen nicht abgedeckt • können in Tutorials (Linkliste am Ende) selbst erlernt werden • Vortrag gibt einen Überblick • Wenn Fragen auftauchen, dann Fragen • Nach einer Einführung gibt es interaktives Arbeiten an Beispielen

  5. Geschichte von OpenGL - 1992 • SiliconGraphics (SGI) 1992 veröffentlichten erste OpenGL API Spec (kein Code)  • Hersteller müssen eigene Implementierung mitbringen Flexibilität Erweiterbarkeit

  6. Geschichte von OpenGL - 1994 • Windows NT (1994) -> erstmals OpenGL Support • John Carmack (id Software) -> Erste Implementierung von Quake 1996 • Beginn des API-Wars zwischen     OpenGL und Direct3D (bis Heute!) Bis ca. 2000 waren noch fast alle Berechnungen im Softwaremode ohne Grafikunterstützung implementiert!

  7. Geschichte von OpenGL - 2000 • GPU Performance steigt exponentiell • viele Software-Features nun auf GPU implementiert • Der neue Weg heißt BUFFERS

  8. Geschichte von OpenGL - 2000 • GPU Performance steigt exponentiell • viele Software-Features nun auf GPU implementiert • Der neue Weg heißt BUFFERS Buffer: Ein Buffer ist ein Stück Speicher, wo temporäre Daten gespeichert werden. Wenn die Arbeit an einem Buffer beendet wird, wird dieser gelöscht und kann wieder verwendet werden. Beliebige Daten können mit nur einem Call übertragen werden!

  9. Geschichte von OpenGL - 2004 • Erwachen nach einer 4-Jährigen Stagnationsphase • OpenGL unterstützt Shader mit GLSL -> Version 2.0 veröffentlicht  • Leider erst 4 Jahre nachdem Direct3D dies tut  • verliert werter an Boden

  10. Geschichte von OpenGL - 2006 • Khronos Group leitet OpenGL • Gruppe von Software und Hardware Herstellern • bringen OpenGL wieder an das Tageslicht

  11. Geschichte von OpenGL - 2008 • OpenGL 3.0 veröffentlicht • volle Backward-Compatibility • jedoch viele angekündigten Veränderungen waren nicht enthalten Hat OpenGL den API-War verloren? NEIN! • viele Direct3D 10 Features doch enthalten • diese aber auch unter Windows XP einsatzfähig  

  12. Geschichte von OpenGL - 2009 • OpenGL 3.1 veröffentlicht • Spec enthält nun kein immediate mode mehr • OpenGL 3.2 veröffentlicht • API nun gleichauf mit Direct3D 10!

  13. Geschichte von OpenGL - 2010 • OpenGL 4.0 veröffentlicht  (gleichauf mit Direct3D 11) • OpenGL 3.3 gleichzeitig für ältere Hardware veröffentlicht • implementiert so viele Features wie möglich von OpenGL 4.0 • OpenGL 4.x Requirements • NVIDIA GTX 400 • ATI Radeon HD 5000 series

  14. Die neuen Browser Startseiten :) OpenGL The Blue Book OpenGL The Red Book

  15. Buffer und Fenster - Definition Fenster: Ein offener Bereich, den eine Applikation mit darzustellenden Daten füllen kann. 

  16. Buffer und Fenster - Definition Fenster: Ein offener Bereich, den eine Applikation mit darzustellenden Daten füllen kann.  Buffer: Ein Stück Speicher, der einem Fenster übergeben werden kann, um ihn sichtbar zu machen.

  17. Buffer und Fenster • sequenzielle Darstellung und Berechnung • Frame-to-Frame Übergänge sichtbar • Animationen wirken abgehackt

  18. Buffer und Fenster • SwapBuffer sehr effizient • immer ein Buffer zum Anzeigen bereit (Multithreading)

  19. Fenster-Management mit Glut - OpenGL Utility Toolkit • Was ist GLUT? • Contexterstellung (Application<->Fenster Interaktion) • Plattformübergreifend • Freeglut ist modernere Implementierung (kann OpenGL 4.0 Context erstellen [get it]) Example: 1. Fenster initialisieren

  20. Die Transformation-Pileline von OpenGL • Modelview Matrix: Transformation der Objekte im Raum • Projection Matrix: Kameramodell  • View Matrix: Fensterkoordinaten • Color Matrix: Farbwert Transformation • Texture Matrix: Textur Koordinaten Transformation • Stackverhalten der Modelview Matrix: • glPushMatrix() und glPopMatrix() • geziehlte Hintereinanderausführung von Transformationen • geziehltes Rückgängig machen von Transformationen • Stacktiefe: Spec = mindestens 32 bei Modelview und mindestens 8 bei Projection Matrix 

  21. Die Transformation-Pileline von OpenGL glMatrixMode( GL_MODELVIEW ); glTranslate(x,y,z); glScale(x,y,z); glRotate(angle,x,y,z); glMatrixMode( GL_PROJECTION ); glFrustum(l,r,b,t,n,f); glOrtho(l,r,b,t,n,f); glViewport(w,h);

  22. Die Transformation-Pileline von OpenGL Example: 2. Moving Triangle

  23. Die Transformation-Pileline von OpenGL • Vertiefung und Erweiterung des Wissens: • Wiederholung, Wiederholung, Wiederholung • eigene Mathematik Klassen oder Bibliotheken verwenden [get gml]

  24. Beleuchtungsmodell und Materialeigenschaften • Eingebaute Beleuchtung für bis zu 8 Spotlights, Omnidirectional Lights und Directional Lights • 3D-Wahrnehmung ermöglicht • Phong Modell: • ambient: gleichmäßiges Licht an jedem Punkt • diffus: Omnidirektionales Licht, welches Punkte abhängig von ihrer Position ausleuchtet • spekular: Glanzlicht auf glatten Oberflächen Example: 3. Materialized Teapot

  25. Beleuchtungsmodell und Materialeigenschaften • Vertiefung und Erweiterung des Wissens: • Normalenvektoren und Beleuchtung • Lichtfarben

  26. Einführung in DevIL - Texturen laden und anwenden • DevIL ist die am weitesten verbreitete Lib [get it] • unterstützt alle gängigen Bildformate • Anlehnung der API an OpenGL Example: 4. Textured Teapot

  27. Einführung in DevIL - Texturen laden und anwenden • Vertiefung und Erweiterung des Wissens: • Texturkoordinaten und Texturkoordinatengenerierung • Bedeutung von Min- und Magfilter

  28. Agenda Fortgeschrittenenkurs • Buffer für Vertices, Indices, Pixels und Frames • Shader • Beschleunigungsstrukturen (Octree, Bounding Volume, ...) • ... wünscht euch was :)

  29. OpenGL Einsteigerkurs ENDE

  30. Tutorial Liste http://nehe.gamedev.net/(deutsche Übersetzung: http://www.codeworx.org/opengl_tuts.php) http://www.spieleprogrammierung.net/p/opengl-tutorial-liste.html http://wiki.delphigl.com/index.php/Tutorial http://www.swiftless.com/opengltuts.html http://www.opengl.org/code/ http://www.xmission.com/~nate/tutors.html http://www.lighthouse3d.com/opengl/tutorials.shtml http://www.paulsprojects.net/tutorials/tutorials.html http://www.mario-konrad.ch/index.php?page=20400 http://www.codecolony.de/OpenGL/

More Related