Graphische Datenverarbeitung I WS 2017/2018. OpenGL Einführung. Prof. Dr. techn. Dieter Fellner. Roman Getto. Julian Zobel

Größe: px
Ab Seite anzeigen:

Download "Graphische Datenverarbeitung I WS 2017/2018. OpenGL Einführung. Prof. Dr. techn. Dieter Fellner. Roman Getto. Julian Zobel"

Transkript

1 Graphische Datenverarbeitung I WS 2017/2018 OpenGL Einführung Prof. Dr. techn. Dieter Fellner Roman Getto Julian Zobel

2 Was sind APIs API: Application Programming Interface Low-level graphic API Interface zwischen Hochsprache (z.b. C++) und Grafikhardware (GPU, Graphics Processing Unit) Beispiele: Direct3D, OpenGL Anforderungen: Qualitativ hochwertige Ergebnisse Flexibilität Effizienz (niedriger Overhead für Software-Level) Erweiterbarkeit (Unterstützung neuer Hardwarefeatures) Kompatibilität und Plattformunabhängigkeit High-level graphic API baut auf low-level graphic API auf besitzt höheren Abstraktionsgrad (Stichwort Scenegraph) Beispiele: (Java3D), OpenSG, OpenGL Performer, OpenInventor, GDV1 WS 17/18 Fellner, Getto, Zobel 2

3 Kurze Geschichte der Graphik-APIs Am Anfang hatte jeder Hersteller seine eigene 3D-Graphik-API Ganze Reihe von Standardisierungsversuchen CORE, GKS/GKS-3D, PHIGS/PHIGS-PLUS, : SGI führt eigenen, proprietäre Graphikbibliothek ein (GL / IrisGL) 3D Rendering, Menüs, Eingabe, Events, Textausgabe,... OpenGL (1992, Mark Segal & Kurt Akeley): explizite Entwicklung eines allgemeinen, herstellerunabhängigen Standards hardwarenah, aber unabhängig von der Hardware effizient erweiterbar einheitliches Interface auf allen Plattformen (Mobiltelefon, PC, Supercomputer) heute einzige echte Alternative zu Microsoft s Direct3D GDV1 WS 17/18 Fellner, Getto, Zobel 3

4 OpenGL API = Application Programming Interface OpenGL: Schnittstelle (Interface) zwischen Programmiersprachen und der Grafikhardware Plattformunabhängige Spezifikation von Befehlen Programmiersprachenunabhängig (C++, Java (z.b. JOGL), JavaScript (WebGL)) GDV1 WS 17/18 Fellner, Getto, Zobel 4

5 OpenGL Implementierung durch Systembibliotheken oder Grafikkarten-Treibern Grafikkarte führt entsprechende Befehle aus Von der Grafikkarte nicht unterstützte Befehle müssen emuliert werden Die konkrete Implementierung der Befehle ist grafikkartenabhängig OpenGL definiert keine Funktionen, um auf Input/Output Geräte (z.b. Maus, Tastatur, Bildschirm) zuzugreifen, da diese betriebssystemabhängig sind GDV1 WS 17/18 Fellner, Getto, Zobel 5

6 GLUT OpenGL Utility Toolkit Stellt einfache Funktionen zum Öffnen von Fenstern und Abfragen von User Inputs zur Verfügung Das Original GLUT wird nicht mehr erneuert und ist nicht Open Source Wir verwenden FreeGLUT GDV1 WS 17/18 Fellner, Getto, Zobel 6

7 GLEW The OpenGL Extension Wrangler Library Hersteller können zusätzliche Befehle (extensions) definieren, die nicht in der aktuellen OpenGL Spezifikation enthalten sind Aktueller OpenGL Header in GLEW enthalten Kapselt (plattformabhängige) Extensions in eine plattformunabhängige Library C/C++ extension loading library GDV1 WS 17/18 Fellner, Getto, Zobel 7

8 OpenGL Zustandsautomat OpenGL verwaltet Zustände und Parameter An- und Abschalten der Zustände: cap = GL capability Funktionen zur Festlegung verschiedener Parameter GDV1 WS 17/18 Fellner, Getto, Zobel 8

9 OpenGL Anweisungssyntax Beispiele GDV1 WS 17/18 Fellner, Getto, Zobel 9

10 Geometrische Primitive Alle geometrischen Primitive werden durch Vertices spezifiziert Strips und Fans reduzieren die Anzahl der benötigten Vertices GDV1 WS 17/18 Fellner, Getto, Zobel 10

11 Immediate Mode Immediate Mode Anwendung verwaltet Szenendaten Rendering-Befehle werden beim Neuzeichnen eines Fensters ausgeführt Primitive zwischen glbegin und glend werden sofort gezeichnet Nicht effizient und veraltet, aber zunächst ausreichend um OpenGL und die GDV Grundlagen zu lernen GDV1 WS 17/18 Fellner, Getto, Zobel 11

12 Immediate Mode Beispiele Zustandsautomat: Ein glcolor oder glnormal legt die Farbe oder die Normale für alle folgenden glvertex Befehle fest Für die Beleuchtung müssen Normalen pro Eckpunkt spezifiziert werden GDV1 WS 17/18 Fellner, Getto, Zobel 12

13 Retained Mode Retained Mode Graphiksystem verwaltet Szenendaten und löst Neuzeichnen aus OpenGL bietet einige Retained Mode-Funktionen Displaylisten: Kapselt und optimiert Immediate Mode-Befehle Vertex Arrays: Übergabe großer Mengen von Daten in einem Aufruf Vertex Buffer Objects: Übergabe der Datenmengen and den GPU-Speicher GDV1 WS 17/18 Fellner, Getto, Zobel 13

14 Oberflächennormalen Zeigt von der Oberfläche weg (Orthogonal zur Tangentialebene) Unter anderem wichtig für die lokalen Beleuchtungsberechnungen Wird durch einen glnormal Aufruf vor einem glvertex Aufruf für ein Vertex spezifiziert GDV1 WS 17/18 Fellner, Getto, Zobel 14

15 Füllung in OpenGL Aus Grafik-Primitiven zusammengesetzte 3D-Objekt können unterschiedlich gefüllt sein Befehl zur Festlegung von Polygonseite und Füllmodus: glpolygonmode(glenum face,glenum mode) Beispiele: glpolygonmode(gl_front_and_back,gl_fill) glpolygonmode(gl_front_and_back,gl_line) glpolygonmode(gl_front,gl_line) glpolygonmode(gl_back,gl_fill) glpolygonmode(gl_front_and_back,gl_point) GDV1 WS 17/18 Fellner, Getto, Zobel 15

16 Farbe, Beleuchtung und Material glcolor legt die Farbe eines Vertex fest glenable(gl_lighting) Ist die Beleuchtung aktiviert wird nicht die Farbe des Vertex (glcolor) beachtet sondern die Farbe des Lichts (gllight) und die des Materials (glmaterial). glenable(gl_color_material) Ist zur Beleuchtung zusätzlich Color_Material aktiviert wird die Farbe des Vertex (glcolor) als Materialfarbe (glmaterial) verwendet, für die in glcolormaterial festgelegten Polygonseiten (GL_FRONT_AND_BACK) und Beleuchtungsanteile (GL_AMBIENT_AND_DIFFUSE). glcolormaterial(gl_front_and_back,gl_ambient_and_diffuse) GDV1 WS 17/18 Fellner, Getto, Zobel 16

17 Beleuchtungsanteile: Ambient, Diffuse und Specular Diffuse = Helligkeit abhängig von der Position des Lichts Specular (spiegelnde Highlights) Helligkeit abhängig von der Position des Lichts und des Betrachters Ambient = Helligkeit unabhängig von der Position der Lichtquelle und des Betrachters Mehr in der 8. Vorlesung: Lighting GDV1 WS 17/18 Fellner, Getto, Zobel 17

18 Beleuchtung GLfloat ambient[] = { 0.0, 0.0, 0.0, 1.0 }; GLfloat diffuse[] = { 1.0, 1.0, 1.0, 1.0 }; Glfloat specular[] = { 1.0, 1.0, 1.0, 1.0 }; GLfloat position[] = { 1.0, 1.0, 0.0, 0.0 }; GLfloat global_ambient[] = { 0.2, 0.2, 0.2, 1.0 }; gllightfv(gl_light0, GL_AMBIENT, ambient); gllightfv(gl_light0, GL_DIFFUSE, diffuse); gllightfv(gl_light0, GL_SPECULAR, specular); gllightfv(gl_light0, GL_POSITION, position); gllightmodelfv(gl_light_model_ambient, global_ambient); Position des Lichts: 0.0 = unendlich weit entfernt ( directional light ) 1.0 = lokale Lichtquelle ( positional light ) glenable(gl_light0); glenable(gl_lighting); [ ] gldisable(gl_lighting); [Render something without lighting] glenable(gl_lighting); [ ] GDV1 WS 17/18 Fellner, Getto, Zobel 18

19 Material Gold: GLfloat mat_ambient[] = { 0.25, 0.2, 0.07, 1.0 }; GLfloat mat_diffuse[] = { 0.75, 0.61, 0.23, 1.0 }; GLfloat mat_specular[] = { 0.63, 0.65, 0.37, 1.0 }; GLfloat mat_shininess = 51.2; glmaterialfv(gl_front, GL_AMBIENT, mat_ambient); glmaterialfv(gl_front, GL_DIFFUSE, mat_diffuse); glmaterialfv(gl_front, GL_SPECULAR, mat_specular); glmaterialf(gl_front, GL_SHININESS, mat_shininess); GDV1 WS 17/18 Fellner, Getto, Zobel 19

20 Farbe, Beleuchtung und Material: Beispiel Das Licht ist Weiß. Es wird der ambiente und diffuse Anteil der Vertex-Farbe (glcolor) genommen und der spiegelnde Anteil vom Material als glänzendes Weiß definiert. GLfloat global_ambient[] = { 0.2f, 0.2f, 0.2f, 1.0f }; GLfloat ambientlight[] = { 0.0f, 0.0f, 0.0f, 1.0f }; GLfloat diffuselight[] = { 1.0f, 1.0f, 1.0f, 1.0f }; GLfloat specularlight[] = { 1.0f, 1.0f, 1.0f, 1.0f }; gllightmodelfv(gl_light_model_ambient, global_ambient); gllightfv(gl_light0, GL_AMBIENT, ambientlight); gllightfv(gl_light0, GL_DIFFUSE, diffuselight); gllightfv(gl_light0, GL_SPECULAR, specularlight); glenable(gl_light0); glenable(gl_lighting); GLfloat mat_specular[] = { 1.0f, 1.0f, 1.0f, 1.0f }; GLfloat mat_shininess = 128.0; glmaterialfv( GL_FRONT, GL_SPECULAR, mat_specular ); glmaterialf( GL_FRONT, GL_SHININESS, mat_shininess ); glenable(gl_color_material); glcolormaterial(gl_front_and_back, GL_AMBIENT_AND_DIFFUSE); GDV1 WS 17/18 Fellner, Getto, Zobel 20

21 Initialisierung durch GLUT und Callbacks int main(int argc, char** argv) { } // initialize opengl window glutinit(&argc, argv); glutinitwindowposition(300,200); glutinitwindowsize(600,400); glutinitdisplaymode(glut_rgb GLUT_DOUBLE GLUT_DEPTH); glutcreatewindow("tu Darmstadt, GDV1 WS 14, OpenGL"); // Callbacks: link functions to certain OpenGL events glutdisplayfunc(renderscene); // call for frame rendering glutreshapefunc(reshape); glutmousefunc(mousepressed); glutmotionfunc(mousemoved); glutkeyboardfunc(keypressed); // further initializations initialize(); // activate main loop glutmainloop(); return 0; GDV1 WS 17/18 Fellner, Getto, Zobel 21

22 Initialisierungen und Rendering void initialize(){ } // the color of a cleared scene glclearcolor(0,0,0,0); // enable depth buffer glenable(gl_depth_test); // set shading model glshademodel(gl_smooth); [Light and Material initalization] void renderscene(){ // clear the scene glclear(gl_color_buffer_bit GL_DEPTH_BUFFER_BIT); [scene rendering] // swap buffers glutswapbuffers(); // GLUT command } GDV1 WS 17/18 Fellner, Getto, Zobel 22

23 Kamera-Analogie Position der Objekte in 3D-Koordinaten spezifiziert Wie erhält man die gewünschte Ansicht auf einem 2D-Bildschirm? Kamera-Analogie: Vorgehen ähnlich wie bei einer Fotographie Platziere die Objekte in der Szene, lege Position und Orientierung der Kamera fest viewing and modeling transformations Wähle ein Objektiv (Weitwinkel, Tele) und Projektionsparameter projection transformation Lege Bildausschnitt fest viewport transformation GDV1 WS 17/18 Fellner, Getto, Zobel 23

24 Transformationen Verschiebungen (Translationen), Rotationen und Skalierungen von Objekten im Raum werden durch 4x4-Matrizen beschrieben Mehr Informationen in Vorlesung 4: Transformations OpenGL-Funktionen zur Erzeugung von Transformationsmatrizen: Die Hintereinanderausführung solcher Transformationen kann durch Matrizenmultiplikation beschrieben werden GDV1 WS 17/18 Fellner, Getto, Zobel 24

25 Matrix Stacks OpenGL behält die aktuelle Matrix an oberster Position des Matrix Stack Genauer: OpenGL verwaltet 2 Matrixstacks, einen für Objekt-Transformationen (Modelview Matrix), einen weiteren für Projektionsmatrizen (Projection Matrix) Mit den Aufrufen glmatrixmode ( GL PROJECTION ) ; glmatrixmode ( GL MODELVIEW ) ; kann zwischen den beiden Stacks umgeschaltet werden Jeder Aufruf von gltranslatef, glrotatef, glscalef erzeugt eine Matrix, die auf die aktuelle Matrix aufmultipliziert wird Wird üblicherweise nur für die Modelviewmatrix verwendet GDV1 WS 17/18 Fellner, Getto, Zobel 25

26 Matrix Stacks Die Einheitsmatrix ersetzt die aktuelle Matrix: glloadidentity(); Eine Kopie der aktuellen Matrix wird auf den Stack gelegt: glpushmatrix(); Die oberste Matrix des Stacks wird verworfen glpopmatrix(); Beispiel: // Matrix M ist oben auf dem Stack glpushmatrix(); // Lege Kopie M von M auf Stack gltranslatef(0.0,1.0,0.0); // Arbeite auf M [Zeichnen eines Objekts] glpopmatrix(); // Nehme oberste Matrix M vom Stack // Matrix M ist wieder die oberste Matrix des Stacks GDV1 WS 17/18 Fellner, Getto, Zobel 26

27 Transformationen: Achtung! Reihenfolge beachten Die Reihenfolge der Transformationen ist zu beachten Grund: Die Matrixmultiplikation ist nicht kommutativ: Transformationen sollten von unten nach oben gelesen werden Grund: Matrizen werden in OpenGL von rechts multipliziert Sei R eine Rotationsmatrix, T eine Translationsmatrix, v die Koordinaten eines Vertex Dann gilt: (TR)v = T(Rv) GDV1 WS 17/18 Fellner, Getto, Zobel 27

28 Transformations Beispiel: Denkansatz Weltkoordinatensystem Denkt man im Weltkoordinatensystem, dann müssen die Matrizen von unten nach oben gelesen werden. Zuerst Translation entlang x, dann Rotation um z-achse Zuerst Rotation um z, dann Translation entlang x-achse GDV1 WS 17/18 Fellner, Getto, Zobel 28

29 Transformations Beispiel: Denkansatz Lokales Koordinatensystem Kompliziertere Überlegung, aber dafür stehen die Operationen in der korrekten Reihenfolge Zuerst Rotation um z, dann translation entlang der lokalen x-achse x y y x x y z z z Zuerst Translation entlang x, dann Rotation um die lokale z-achse y x y x y x GDV1 WS 17/18 Fellner, Getto, Zobel 29 z z z

30 Kameraveränderung Utility-Library Funktion glulookat Wenn nicht anders spezifiziert, befindet sich die Kamera im Ursprung und schaut entlang der negativen z-achse entspricht glulookat(0, 0, 0, 0, 0, -1, 0, 1, 0) GDV1 WS 17/18 Fellner, Getto, Zobel 30

31 Alternative: Kamera Veränderung Alternativ zur Verschiebung/Rotation der Objekte der Szene kann auch die Kameraposition/-orientierung geändert werden GDV1 WS 17/18 Fellner, Getto, Zobel 31

32 Parallelprojektion Vordere Ebene: near clipping plane Hintere Ebene: far clipping plane Projektionsstrahlen sind parallel (unendlich weit enfernter Betrachter) Weiter entfernte Objekte erscheinen nicht kleiner Unrealistischer Effekt GDV1 WS 17/18 Fellner, Getto, Zobel 32

33 Perspektivische Transformation Vordere Ebene: near clipping plane Hintere Ebene: far clipping plane Sichtvolumen in Form einer abgeschnittenen Pyramide (view frustum oder view volume) Weiter entfernte Objekte erscheinen kleiner GDV1 WS 17/18 Fellner, Getto, Zobel 33

34 Perspektivische Transformation Alternative: GLU-Library Funktion gluperspective Wird umgerechnet in glfrustum GDV1 WS 17/18 Fellner, Getto, Zobel 34

35 Zoom Skalierung (Zoom) mittels glscalef oder glfrustum glscalef: Die Objekte werden vergrößert/verkleinert und erscheinen dadurch auch größer/kleiner auf dem Bildschirm glfrustum: Die Kamera wird näher/entfernter zu den Objekten platziert, wodurch diese ebenfalls größer/kleiner auf dem Bildschirm werden GDV1 WS 17/18 Fellner, Getto, Zobel 35

36 Viewport Transformation Spezifizierung des rechteckigen Bildausschnitts in dem gezeichnet wird Die Werte sollten immer relativ zu der Gesamtgröße des Bildaussschnitts berechnet werden Es ist möglich mehrere Bilder während eines Aufrufes von renderszene zu rendern (zu Beginn von renderszene wird der Framebuffer geleert) Mit Viewport Transformations kann man dadurch sehr einfach mehrere Bilder nebeneinander setzen oder ein Bild vor ein anderes setzen GDV1 WS 17/18 Fellner, Getto, Zobel 36

37 Häufige Fehler Für die Beleuchtung müssen (normalisierte!) Normalen für jeden Vertex definiert sein Nach einer Skalierung müssen die Normalen der Vertices erneut normalisiert werden. Dies muss manuell geschehen oder man aktiviert die automatische Normalisierung die jedoch ineffizient ist da sie nach jeder Transformation für alle vertices geschieht: glenable(gl_normalize) Man muss bei einem Aufruf von glvertex genau beachten in welchem Zustand mit welchen Parametern man sich befindet. Insbesondere auch ob GL_LIGHTING und GL_COLOR_MATERIAL aktiviert sind. Zu Beginn von renderszene sollte der Framebuffer IMMER geleert werden GDV1 WS 17/18 Fellner, Getto, Zobel 37

38 OpenGL Onlinequellen offizielle Seite der Khronos Group guter Startpunkt; aktuelle Spezifikationen, viele Code-Beispiele Brian Paul s Mesa 3D (OpenGL in Software) GLUT, interaktive Tutorials Beispiele, Tutorials, Tips und Tricks Beispiele, Tutorials, Tips und Tricks Beispiele, Tutorials, Tips und Tricks GDV1 WS 17/18 Fellner, Getto, Zobel 38

39 Bücher OpenGL Programming Guide, 7th Edition ältere Version auch online verfügbar: OpenGL Reference Manual, 4th Edition ältere Version auch online verfügbar : GDV1 WS 17/18 Fellner, Getto, Zobel 39

Einführung in OpenGL. Thomas Kalbe 30.10.2007. Technische Universität Darmstadt. thomas.kalbe@gris.informatik.tu-darmstadt.de

Einführung in OpenGL. Thomas Kalbe 30.10.2007. Technische Universität Darmstadt. thomas.kalbe@gris.informatik.tu-darmstadt.de Einführung in OpenGL Thomas Kalbe Technische Universität Darmstadt thomas.kalbe@gris.informatik.tu-darmstadt.de 30.10.2007 3D Graphic APIs 2 / 42 API: Application Programming Interface low-level graphic

Mehr

Einführung in OpenGL. Einführung in OpenGL

Einführung in OpenGL. Einführung in OpenGL OpenGL: Einführung/Standard - OpenGL (Open Graphics Library) ist ein Standard für 3D Rendering und 3D Hardware-Beschleunigung - OpenGL läuft unter Windows, MacOS, Linux, Unix, - Website: http://opengl.org

Mehr

Grafikprogrammierung (Echtzeitrendering)

Grafikprogrammierung (Echtzeitrendering) (Echtzeitrendering) erfordert Unterstützung für beide Aufgaben der Computergrafik Geometrische Modellierung Datenstrukturen für geometrische Modelle Schnittstellen für deren Kombination Bildsynthese Rendering

Mehr

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar Workshop: Einführung in die 3D-Computergrafik Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar 1 Organisatorisches Tagesablauf: Vormittags: Theoretische Grundlagen Nachmittags: Bearbeitung

Mehr

I - Phone 3D 3D Spieleentwicklung für's I-Phone

I - Phone 3D 3D Spieleentwicklung für's I-Phone I - Phone 3D 3D Spielentwicklung für das I-Phone Gliederung Allgemein Open GL ES Arbeitsschritte / 3D Grafik Ein Spiel entsteht Ein Beispiel Vorgehensweise Allgemein Erzeugen von Modellen Komplexe Modelle

Mehr

DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006

DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006 DirectX und OpenGL Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch, 15. Februar 2006 2 Inhalt Einleitung Übersicht DirectX und Komponenten Übersicht OpenGL Sprachlicher Aufbau OpenGL Sprachlicher

Mehr

OpenGL vs. Direct3D Ein 3D-API Vergleich

OpenGL vs. Direct3D Ein 3D-API Vergleich OpenGL vs. Direct3D Ein 3D-API Vergleich 3D-APIs (Application Programming Interface)sind Software-Schnittstellen, um über einen Standard auf die Hardware des Rechners zugreifen zu koennen. Direct3D von

Mehr

OpenGL als API für Augmented und Virtual Reality

OpenGL als API für Augmented und Virtual Reality OpenGL als API für Augmented und Virtual Reality Tobias Lang langt@cip.ifi.lmu.de Hausarbeit im Hauptseminar Augmented und Virtual Reality Inhaltsverzeichnis 1. Einleitung... 3 2. Was ist OpenGL... 3 3.

Mehr

OpenGL. (Open Graphic Library)

OpenGL. (Open Graphic Library) OpenGL (Open Graphic Library) Agenda Was ist OpenGL eigentlich? Geschichte Vor- und Nachteile Arbeitsweise glscene OpenGL per Hand Debugging Trend Was ist OpenGL eigentlich? OpenGL ist eine Spezifikation

Mehr

Proseminar Computergrafik: OpenGL

Proseminar Computergrafik: OpenGL Proseminar Computergrafik: OpenGL Verfasser: Technische Universität Dresden Fakultät Informatik Studiengang Informatik (Diplom) 0. Inhalt 0. Inhalt... 2 1. Allgemein... 3 1.1. Was ist OpenGL... 3 1.2.

Mehr

Spiele, Simulation, dynamische Systeme

Spiele, Simulation, dynamische Systeme Spiele, Simulation, dynamische Systeme Einführung in OpenGL und GLUT Sebastian Skalec (11038991) Christian Fehmer (11042419) Was können wir nach dem Vortrag? Erstellen eines OpenGL-Fensters Motivation

Mehr

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.

Computergrafik 1 Übung, Wintersemester 2011. Eclipse Hands-On. C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10. Computergrafik 1 Übung, Wintersemester 2011 Eclipse Hands-On C++ Projektsetup mit OpenGL und GLUT unter Eclipse für Windows 22.10.12 1 Eclipse - Die IDE 1. Entwicklungsumgebung (IDE) herunterladen / installieren

Mehr

Grundlagen der 3D-Computergrafik Programmieren mit OpenGL

Grundlagen der 3D-Computergrafik Programmieren mit OpenGL Grundlagen der 3DComputergrafik Programmieren mit OpenGL Marc Wagner mcwagner@cip.informatik.unierlangen.de 13. November 1998 Was ist OpenGL? OpenGL (Open Graphics Library) ist ein Softwareinterface zum

Mehr

Computer Graphik. Mitschrift von www.kuertz.name

Computer Graphik. Mitschrift von www.kuertz.name Computer Graphik Mitschrift von www.kuertz.name Hinweis: Dies ist kein offizielles Script, sondern nur eine private Mitschrift. Die Mitschriften sind teweilse unvollständig, falsch oder inaktuell, da sie

Mehr

(1) 3D Engines. Vorlesung Computergraphik 2 D. Grüntjens Folien: Stefan Rilling / D. Grüntjens KOBLENZ LANDAU

(1) 3D Engines. Vorlesung Computergraphik 2 D. Grüntjens Folien: Stefan Rilling / D. Grüntjens KOBLENZ LANDAU (1) 3D Engines Vorlesung Computergraphik 2 D. Grüntjens Folien: Stefan Rilling / D. Grüntjens Organisatorisches CG2 und CG3 werden im selben Semester hintereinander gelesen Lehrveranstaltungen CG 2 vom

Mehr

Planare Projektionen und Betrachtungstransformation. Quelle: Angel (2000)

Planare Projektionen und Betrachtungstransformation. Quelle: Angel (2000) Planare Projektionen und Betrachtungstransformation Quelle: Angel (2) Gliederung Einführung Parallelprojektionen Perspektivische Projektionen Kameramodell und Betrachtungstransformationen Mathematische

Mehr

OpenGL for Java OpenGL for Java Prof. Dr. V. Stahl

OpenGL for Java OpenGL for Java Prof. Dr. V. Stahl OpenGL for Java Ziele Bewegte Simulationen grafisch darstellen können (effizient, realistisch, dreidimensional) Grundfunktionen von OpenGL beherrschen Mathematische Voraussetzungen für Computer Grafik

Mehr

Eine Einführung in OpenGL

Eine Einführung in OpenGL Eine Einführung in OpenGL Inhaltsverzeichnis 1 Übersicht 2 1.1 Was ist OpenGL?........................... 2 1.2 Was leistet OpenGL?......................... 2 2 Erste Schritte mit OpenGL 3 2.1 Grundstrukturen...........................

Mehr

Eine Einführung Computergrafik SS14 Timo Bourdon

Eine Einführung Computergrafik SS14 Timo Bourdon Eine Einführung Computergrafik SS14 Timo Bourdon Organisatorisches Übung am Freitag den 11. Juli entfällt! Zum OpenGL-Übungsblatt OpenGL 3.0 oder höher notwendig (Shading Language 1.50 oder höher) CIP

Mehr

DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen. Michel Weimerskirch

DirectX und OpenGL. Proseminar Multimedia-Hardwareerweiterungen. Michel Weimerskirch DirectX und OpenGL Proseminar Multimedia-Hardwareerweiterungen Michel Weimerskirch Zusammenfassung Diese Arbeit, die im Rahmen des Proseminars Multimedia Hardwareerweiterungen ausgearbeitet wurde, soll

Mehr

Seminar Game Development Game Computer Graphics. Einleitung

Seminar Game Development Game Computer Graphics. Einleitung Einleitung Gliederung OpenGL Realismus Material Beleuchtung Schatten Echtzeit Daten verringern Grafik Hardware Beispiel CryEngine 2 Kristian Keßler OpenGL Was ist OpenGL? Grafik API plattform- und programmiersprachenunabhängig

Mehr

UIKit (Cocoa Touch) Framework für ios Apps. Objective C. Model View Controller Pattern

UIKit (Cocoa Touch) Framework für ios Apps. Objective C. Model View Controller Pattern ios Rendering ios Architektur UIKit (Cocoa Touch) A composable, reusable, declarative, real-world inspired animation, and interaction system Framework für ios Apps Objective C Model View Controller Pattern

Mehr

Rendering für Augmented Reality

Rendering für Augmented Reality Rendering für Augmented Reality Vorlesung Augmented Reality Prof. Dr. Andreas Butz WS 2006/07 Folien heute von Dr. Martin Wagner LMU München Medieninformatik Butz Augmented Reality WS2006/07 Folie 1 Ein

Mehr

Kurzeinführung in OpenGL(ES)

Kurzeinführung in OpenGL(ES) Kurzeinführung in OpenGL(ES) Matthias Braun matthias.braun@kit.edu Institut für Programmstrukturen und Datenorganisation Lehrstuhl für Programmierparadigmen Wintersemester 2009/10 Wintersemester 2009/10

Mehr

Integration von 3D-Visualisierungstechniken in 2D-Grafiksystemen

Integration von 3D-Visualisierungstechniken in 2D-Grafiksystemen Mitglied der Helmholtz-Gemeinschaft Inhaltsverzeichnis Integration von 3D-Visualisierungstechniken in 2D-Grafiksystemen Motivation Ergebnisse Ausblick 24. August 2012 Florian Rhiem 24. August 2012 PGI/JCNS

Mehr

OpenGL unter Python. Department für Informatik 23.02.06. Dipl.-Inform. Rüdiger Busch

OpenGL unter Python. Department für Informatik 23.02.06. Dipl.-Inform. Rüdiger Busch OpenGL unter Python Department für Informatik 23.02.06 Dipl.-Inform. Rüdiger Busch Inhaltsverzeichnis 1 Motivation...3 2 Python und OpenGL...3 2.1 Gründe für Python...3 2.2 Ziel dieser Arbeit...4 3 Die

Mehr

GUI Programmierung mit GTK

GUI Programmierung mit GTK LinuxFocus article number 295 http://linuxfocus.org GUI Programmierung mit GTK by Özcan Güngör About the author: Ich benutze Linux seit 1997. Freiheit, Flexibilität, Open

Mehr

Transformationen in der Computergrafik

Transformationen in der Computergrafik BACHELORARBEIT Transformationen in der Computergrafik ausgeführt von Robert Alexander Wimmer A-1110 Wien, Lorystraße 40-42 / 17 / 8 Begutachter: Dipl.-Ing. Dr. Gerd Hesina Wien, am 18. Jänner 2009 Ausgeführt

Mehr

Computer-Graphik I Transformationen & Viewing

Computer-Graphik I Transformationen & Viewing lausthal Motivation omputer-raphik I Transformationen & Viewing Man möchte die virtuelle 3D Welt auf einem 2D Display darstellen. Zachmann lausthal University, ermany zach@in.tu-clausthal.de. Zachmann

Mehr

Multimedia-Programmierung

Multimedia-Programmierung private Vorlesungsmitschrift (nicht offiziell) Multimedia-Programmierung WS2 - SS22, Prof. Dr. W. Roth Fachhochschule Südwestfalen - Campus Iserlohn - Frauenstuhlweg 3 58644 Iserlohn Dieses Skript wurde

Mehr

Erinnerung. Arbeitsschritte der Computergraphik. Modellierung. Animation. Rendering. Ausgabemedium. Generierung

Erinnerung. Arbeitsschritte der Computergraphik. Modellierung. Animation. Rendering. Ausgabemedium. Generierung Erinnerung Arbeitsschritte der Computergraphik Modellierung Animation Generierung Ausgabemedium Graphik/-Pipeline Wandelt die Beschreibung einer Szene im dreidimensionalen Raum in eine zweidimensionale

Mehr

Grafikprogrammierung mit OpenGL II

Grafikprogrammierung mit OpenGL II Grafikprogrammierung mit OpenGL II Proseminar Computergrafik Sommersemester 2010 Alexander Matthes Matrikelnummer: 3514123 s2575612@mail.inf.tu-dresden.de Dozent: Wilfried Mascolus Lehrstuhl für Computergraphik

Mehr

Spiele entwickeln für ipad, iphone und ipod touch

Spiele entwickeln für ipad, iphone und ipod touch Spiele entwickeln für ipad, iphone und ipod touch von Thomas Lucka 1. Auflage Hanser München 2010 Verlag C.H. Beck im Internet: www.beck.de ISBN 978 3 446 42306 0 Zu Inhaltsverzeichnis schnell und portofrei

Mehr

Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-08

Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-08 Computergrafik Universität Osnabrück, Henning Wenke, 2012-05-08 Noch Kapitel IV: OpenGL Zielsetzungen Hardwarenah aber unabhängig Verschiedene Anwendungsbereiche Wissenschaft, Visualisierung & Entwicklung

Mehr

Computergraphik Grundlagen

Computergraphik Grundlagen Computergraphik Grundlagen V. Die Rendering-Pipeline Prof. Stefan Schlechtweg Hochschule Anhalt Fachbereich Informatik Inhalt Lernziele 1. Der Begriff Rendering 2. Die Rendering-Pipeline Geometrische Modellierung

Mehr

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit Direct 3D-Output für ein Rendering Framework von Benjamin Betting unter der Betreuung von Daniel Schiffner 1 Gliederung Kapitel I und II: Motivation,Einführung,Grundlagen

Mehr

Der Einsatz von HDRIs in LightWave 7

Der Einsatz von HDRIs in LightWave 7 Seite 1 DOSCH DESIGN TUTORIAL Der Einsatz von HDRIs in LightWave 7 Eine Schritt-für-Schritt-Anleitung LightWave kann ab der Version 6.5 HDRIs (High Dynamic Range Images) als Beleuchtung und Hintergrund

Mehr

Entwicklung eines JOGL-basierten Frameworks zur Darstellung von Game Physics

Entwicklung eines JOGL-basierten Frameworks zur Darstellung von Game Physics Entwicklung eines JOGL-basierten Frameworks zur Darstellung von Game Physics Diplomarbeit zur Erlangung des Diplomgrades Diplom - Informatiker (FH) in der Fachrichtung Allgemeine Informatik ausgearbeitet

Mehr

Programmieren mit DirectX

Programmieren mit DirectX 2D 3D Programmieren mit DirectX Teil 3: Malte Ried Fachhochschule Gießen-Friedberg 30. Oktober 2005 Inhalt 2D 3D 1 2D 2 3D 3 2D 3D Bis jetzt Windows-Fenster, das man schließen kann initialisiertes Direct3D

Mehr

Dr. Martin Brändle. ETH Zürich Informationszentrum Chemie Biologie Pharmazie Wolfgang-Pauli-Str. 10, HCI J 57.4 8093 Zürich

Dr. Martin Brändle. ETH Zürich Informationszentrum Chemie Biologie Pharmazie Wolfgang-Pauli-Str. 10, HCI J 57.4 8093 Zürich ETH Zürich Informationszentrum Chemie Biologie Pharmazie Wolfgang-Pauli-Str. 10, HCI J 57.4 8093 Zürich Ausgangspunkt: Rauminformation Was steckt dahinter? DB: Datenklassen Plan-bezogen Bibliotheks-bezogen

Mehr

Grundlegende Algorithmen

Grundlegende Algorithmen 3D Spieleprogrammierung Grundlegende Algorithmen Übersicht Game Loop Spielarchitektur Aufäumen von Strukturen Vorbereiten für spätere Aufgaben Bewegungen Zeitmessung Zeitunabhängigkeit GameLoop Game Engine

Mehr

blender Wichtige & nützliche Links User Interface Liste mit wichtigen Kurzbefehlen

blender Wichtige & nützliche Links User Interface Liste mit wichtigen Kurzbefehlen blender Wichtige & nützliche Links User Interface Liste mit wichtigen Kurzbefehlen blender 2.72b Tutorial V 1.0 vom 20.11.2014 Gesammelt von Christoph Tamussino 2 blender // Wichtige & nützliche Links

Mehr

Darstellung komplexer 3D-Stadtmodelle im (mobilen) Webbrowser mittels bildbasiertem Rendering

Darstellung komplexer 3D-Stadtmodelle im (mobilen) Webbrowser mittels bildbasiertem Rendering Darstellung komplexer 3D-Stadtmodelle im (mobilen) Webbrowser mittels bildbasiertem Rendering Martin Christen FHNW Hochschule für Architektur, Bau und Geomatik Institut Vermessung und Geoinformation martin.christen@fhnw.ch

Mehr

Einfuehrung in OpenGL und Shader

Einfuehrung in OpenGL und Shader Einfuehrung in OpenGL und Shader Michael Bayer 28. September 2005 Inhaltsverzeichnis 1 OpenGL 4 1.1 Einführung............................... 4 1.2 Architektur............................... 4 1.3 Pipeline

Mehr

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 4

Enterprise Computing Einführung in das Betriebssystem z/os. Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013. WebSphere MQ Teil 4 UNIVERSITÄT LEIPZIG Enterprise Computing Einführung in das Betriebssystem z/os Prof. Dr. Martin Bogdan Prof. Dr.-Ing. Wilhelm G. Spruth WS2012/2013 WebSphere MQ Teil 4 MQI API el0100 Copyright W. G. Spruth,

Mehr

Erste Schritte mit HG 2

Erste Schritte mit HG 2 Erste Schritte mit HG 2 Malte Ried FH-Gießen Version: 1.0 21. November 2003 Inhaltsverzeichnis 1 Einführung 2 2 Allgemeines 2 2.1 Koordinaten...................................... 2 2.2 Farben.........................................

Mehr

Rendering Grundlagen Autodesk Maya. Grundlagen. Version 1.0-2009-04-08. 2009 Ingo Clemens brave rabbit www.braverabbit.de

Rendering Grundlagen Autodesk Maya. Grundlagen. Version 1.0-2009-04-08. 2009 Ingo Clemens brave rabbit www.braverabbit.de Rendering Grundlagen Version 1.0-2009-04-08 Allgemeine Unterschiede bei Renderern Scanline Rendering Raytrace Rendering Renderlayer Einsatz von Renderlayern Overrides Material Overrides Layer Presets Batch

Mehr

Anwendungsentwicklung mit dem Windows Phone 7

Anwendungsentwicklung mit dem Windows Phone 7 Anwendungsentwicklung mit dem Windows Phone 7 Anwendungen auf Basis von XNA IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe

Mehr

:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese

:= Modellabbildung. Bildsynthese (Rendering) Bildsynthese Geometrisches Modell bestehend aus Datenstrukturen zur Verknüpfung geometrischer Primitive, welche eine Gesamtszene beschreiben Bildsynthese := Modellabbildung Pixelbasiertes Modell zur Darstellung eines

Mehr

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering Zur Architektur der Applikation Data Repository Franz-Josef Elmer, Universität Basel, HS 2015 Software Engineering: Mit acht bewährten Praktiken zu gutem Code 2 Schichtarchitektur

Mehr

Grafikprogrammierung mit OpenGL I

Grafikprogrammierung mit OpenGL I Grafikprogrammierung mit OpenGL I Proseminar Computergrafik Sommersemester 2 TU Dresden Johannes Völker Matrikelnummer: 3478976 s224854@mail.inf.tu-dresden.de Dozent: Wilfried Mascolus Lehrstuhl für Computergraphik

Mehr

6.3 Ereignisgesteuerte Programmierung

6.3 Ereignisgesteuerte Programmierung 6.3 Ereignisgesteuerte Programmierung Im Gegensatz zur klassischen Programmierung geht man bei der ereignisgesteuerten Programmierung davon aus, dass ein Programm immer aktiv bleibt, bis es explizit beendet

Mehr

4. Kapitel 3D Engine Geometry

4. Kapitel 3D Engine Geometry 15.11.2007 Mathematics for 3D Game Programming & Computer Graphics 4. Kapitel 3D Engine Geometry Anne Adams & Katharina Schmitt Universität Trier Fachbereich IV Proseminar Numerik Wintersemester 2007/08

Mehr

Objektorientierte graphische Programmierung

Objektorientierte graphische Programmierung Objektorientierte graphische Programmierung Low-Level Level Graphics API z.. B. OpenGL, Direct3D Prozedural - Zeichenprimitive Linie, Dreieck, Zeichenfarbe,... Dual Database Problem 1. Repräsentation:

Mehr

Plan für heute. Vorlesungstermine. CG1 & CG2 Vorlesungsthemen. Anwendungsgebiete. Warum Computer Grafik? Computergrafik 1&2 SS 2010

Plan für heute. Vorlesungstermine. CG1 & CG2 Vorlesungsthemen. Anwendungsgebiete. Warum Computer Grafik? Computergrafik 1&2 SS 2010 Plan für heute Computergrafik 1&2 SS 2010 http://www.icg.tu-graz.ac.at/courses/cgcv Organisation der Vorlesung Anwendungen der Computergrafik Konzepte der Computergrafik Display Technologies Prof. Institut

Mehr

Universität Augsburg. 20. April 2012. B. Möller (U. Augsburg) Computergraphik SS12 20. April 2012 1 / 6

Universität Augsburg. 20. April 2012. B. Möller (U. Augsburg) Computergraphik SS12 20. April 2012 1 / 6 Kapitel 1 Einführung B. Möller Universität Augsburg 20. April 2012 B. Möller (U. Augsburg) Computergraphik SS12 20. April 2012 1 / 6 Begriffsdefinition Computergrafik: realistische Darstellung realer oder

Mehr

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012

Übung zu Grundlagen der Betriebssysteme. 13. Übung 22.01.2012 Übung zu Grundlagen der Betriebssysteme 13. Übung 22.01.2012 Aufgabe 1 Fragmentierung Erläutern Sie den Unterschied zwischen interner und externer Fragmentierung! Als interne Fragmentierung oder Verschnitt

Mehr

Einführung in die Computergrafik

Einführung in die Computergrafik Einführung in die Computergrafik Proseminar Computergrafik Zuse Institut Berlin 22. November 2007 Organisatorisches Informationen rund um s Seminar. http://www.zib.de/hotz/teaching/currentlectures.htm

Mehr

Microsoft Visual C++ 6.0

Microsoft Visual C++ 6.0 Hardwareinbindung in Matlab bild = Quickcam; figure;imshow(bildanzeige); MATLAB 6.1 void mexfunction( int nlhs, mxarray *plhs[], int nrhs, const mxarray*prhs[] ) Microsoft Visual C++ 6.0 Aufruf int Capture(unsigned

Mehr

Smartphone Entwicklung mit Android und Java

Smartphone Entwicklung mit Android und Java Smartphone Entwicklung mit Android und Java predic8 GmbH Moltkestr. 40 53173 Bonn Tel: (0228)5552576-0 www.predic8.de info@predic8.de Was ist Android Offene Plattform für mobile Geräte Software Kompletter

Mehr

Graphische Benutzungsoberflächen

Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen Graphische Benutzungsoberflächen (graphical user interfaces, GUI) dienen zur interaktiven Bedienung von Programmen, Ein- und Ausgabe mit graphischen Techniken und visuellen

Mehr

Cross-Plattform Spieleentwicklung mit der SDL

Cross-Plattform Spieleentwicklung mit der SDL Cross-Plattform Spieleentwicklung mit der SDL Anhand der Spiele-Neuentwicklung "BlinkenSisters - Hunt for the Lost Pixels", einem Jump'n'Run, werde ich zeigen, wie ein solches Spiel entwickelt werden kann.

Mehr

White Paper. Embedded Treiberframework. Einführung

White Paper. Embedded Treiberframework. Einführung Embedded Treiberframework Einführung White Paper Dieses White Paper beschreibt die Architektur einer Laufzeitumgebung für Gerätetreiber im embedded Umfeld. Dieses Treiberframework ist dabei auf jede embedded

Mehr

Überblick Echtzeit-Rendering. Uwe Domaratius dou@hrz.tu-chemnitz.de

Überblick Echtzeit-Rendering. Uwe Domaratius dou@hrz.tu-chemnitz.de Überblick Echtzeit-Rendering Uwe Domaratius dou@hrz.tu-chemnitz.de Gliederung 1. Einleitung 2. geometriebasierende Verbesserungen 3. Level-of-Detail 4. Culling 5. Texturen 6. bildbasiertes Rendering Was

Mehr

Matrox Imaging Library MIL die weltweit hochprämierte und industrieerprobte Bildverarbeitungs-Bibliothek

Matrox Imaging Library MIL die weltweit hochprämierte und industrieerprobte Bildverarbeitungs-Bibliothek Matrox Imaging Library MIL die weltweit hochprämierte und industrieerprobte Bildverarbeitungs-Bibliothek Release MIL 9.2 Matrox Imaging Library weltweit ein voller Erfolg! RAUSCHER BILDVERARBEITUNG Telefon

Mehr

blender Wichtige & nützliche Links User Interface Liste mit wichtigen Kurzbefehlen

blender Wichtige & nützliche Links User Interface Liste mit wichtigen Kurzbefehlen Übung Einführung in 3D-Programme blender Wichtige & nützliche Links User Interface Liste mit wichtigen Kurzbefehlen blender 2.74 Tutorial V 1.4 vom 10.06.2015 Gesammelt von Christoph Tamussino blender

Mehr

Was ist QT? Beispiele: KDE Google Earth Mathematika

Was ist QT? Beispiele: KDE Google Earth Mathematika Einführung in QT Was ist QT? QT ist eine Klassenbibliothek für plattformübergreifende Programmierung graphischer Benutzeroberflächen QT ist für verschiedene Graphikplattformen wie X11 (Unix), Windows,

Mehr

Computergrafik 1. 2D Rendering

Computergrafik 1. 2D Rendering Computergrafik 2D Rendering Hearn/Baker 32., 3.4-3.6,5. 5.8, 6. 6.8, 6. Based on material b Werner Purgathofer, Gerhard Reitmar and Dieter Schmalstieg 2D Racasting Inhalt Einfaches Rendering Model 2D Transformationen

Mehr

Texture Based Direct Volume Rendering

Texture Based Direct Volume Rendering Texture Based Direct Volume Rendering Vorlesung: "Advanced Topics in Computer Graphics" cbrak@upb.de 1 Agenda 1. Einleitung Volume Rendering 1.1. Volumendatensatz 1.2. Volumenintegral 1.3. Image order

Mehr

Dateiname Name(n) und Matrikelnr. des/der Bearbeiter Tel.-Nr. und E-Mail-Adresse für den Fall, dass die Diskette nicht lesbar ist.

Dateiname Name(n) und Matrikelnr. des/der Bearbeiter Tel.-Nr. und E-Mail-Adresse für den Fall, dass die Diskette nicht lesbar ist. Matrizenrechner Schreiben Sie ein CProgramm, das einen Matrizenrechner für quadratische Matrizen nachbildet. Der Matrizenrechner soll mindestens folgende Berechnungen beherrschen: Transponieren, Matrizenaddition,

Mehr

"rendern" = ein abstraktes geometrisches Modell sichtbar machen

rendern = ein abstraktes geometrisches Modell sichtbar machen 3. Grundlagen des Rendering "rendern" = ein abstraktes geometrisches Modell sichtbar machen Mehrere Schritte: Sichtbarkeitsberechnung Beleuchtungsrechnung Projektion Clipping (Abschneiden am Bildrand)

Mehr

3d XML, 3d XML Player

3d XML, 3d XML Player 3D-CAD-Modelle als Rohstoff für die TD 3d XML, 3d XML Player (Dassault/Microsoft) U3D, Acrobat 3D (Adobe/3DIF) Acrobat 3D Toolkit Acrobat + Javascript 3D-CAD-Modelle als Rohstoff für die TD Bilder: 3D-Modell

Mehr

GUI Programmierung mit Qt

GUI Programmierung mit Qt GUI Programmierung mit Qt C++ vs. JAVA Norman Wolf 22.04.05 GUI Programmierung mit Qt 1 Einleitung Qt wird von der norwegischen Firma Trolltech entwickelt Es ist kommerzielle Software, die aber von Trolltech

Mehr

Skript zum Vortrag Grundlagen der Computergrafik

Skript zum Vortrag Grundlagen der Computergrafik Skript zum Vortrag Grundlagen der Computergrafik Hanna Peeters Carsten Pauck VR-Gruppe Rechen- und Kommunikationszentrum RWTH Aachen Betreuer: Jakob T. Valvoda Dieses Dokument entstand im Rahmen der Seminarvorträge

Mehr

4. 3. Grafik-Programmierung

4. 3. Grafik-Programmierung 4. 3. Grafik-Programmierung es gibt wenig Standards auch in C sind die zur Verfügung stehenden Grafik-Befehle abhängig vom Betriebssystem und von der verwendeten C- Erweiterung grundsätzliche Unterscheidung:

Mehr

Augmented Reality - Grundlagen

Augmented Reality - Grundlagen Augmented Reality - Grundlagen Intelligente Mensch-Maschine-Interaktion - IMMI SS 2011 Prof. Didier Stricker Didier.Stricker@dfki.de Die Vorlesung am 07.06 findet im Raum Zuse am DFKI statt 2 Übersicht

Mehr

Remote Communications

Remote Communications HELP.BCFESDEI Release 4.6C SAP AG Copyright Copyright 2001 SAP AG. Alle Rechte vorbehalten. Weitergabe und Vervielfältigung dieser Publikation oder von Teilen daraus sind, zu welchem Zweck und in welcher

Mehr

Jörn Loviscach Hochschule Bremen

Jörn Loviscach Hochschule Bremen Programmierbare Hardware-Shader Jörn Loviscach Hochschule Bremen Überblick Vertex- und Pixel-Shader Anwendungsbeispiele fx-dateien Anwendungsbeispiele Zusammenfassung Puffer Vertex- und Pixel-Shader Hardware-Renderpipeline

Mehr

RENDERING. Cobalt Xenon Argon. mit Ashlar-Vellum. www.arnold-cad.com

RENDERING. Cobalt Xenon Argon. mit Ashlar-Vellum. www.arnold-cad.com RENDERING mit Ashlar-Vellum Cobalt Xenon Argon www.arnold-cad.com Erstellen photorealistischer Darstellungen Erstellen Sie Ihre Welt! Modellier Tips für mehr Realität Hintergrund und Szene Betrachtung

Mehr

Das Beste aus zwei Welten

Das Beste aus zwei Welten : Das Beste aus zwei Welten Das Beste aus zwei Welten Aufruf von R Funktionen mit PROC IML KSFE 2012 08.03.2012 ist IT Dienstleister für Business Intelligence und Datenanalyse gibt es seit über 20 Jahren

Mehr

Eine Einführung in C-Funktionen

Eine Einführung in C-Funktionen Eine Einführung in C-Funktionen CGK-Proseminar 2014 Philip Gawehn 04.07.2014, Hamburg Inhaltsverzeichnis 1 Einleitung 2 2 Grundlagen 2 2.1 Der Aufbau einer Funktion....................... 2 2.2 Schlüsselwörter.............................

Mehr

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen

C++ Kurs Teil 1. Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Kurs Teil 1 "hello world" Vergleich von C++ und Java Architektur, Anwendungsspektrum, primitive Datentypen, Funktionsaufrufe, Referenzen, Klassen C++ Spezialitäten Schlüsselwort 'const', Copy Constructor,

Mehr

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org)

Dynamische Plug-ins mit Eclipse 3. Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Dynamische Plug-ins mit Eclipse 3 Martin Lippert (martin.lippert@it-agile.de, www.it-agile.de) Tammo Freese (freese@acm.org) Überblick Die Ausgangslage Dynamische Plug-ins Warum? Eclipse 3 Die OSGi-basierte

Mehr

Graphische Datenverarbeitung und Bildverarbeitung

Graphische Datenverarbeitung und Bildverarbeitung Graphische Datenverarbeitung und Bildverarbeitung Hochschule Niederrhein Clippen in 2D und 3D Graphische DV und BV, Regina Pohle, 19. Clippen in 2D und 3D 1 Einordnung in die Inhalte der Vorlesung Einführung

Mehr

Hardware Tessellation in DirectX11 zur Berechnung von Levels of Detail in Echtzeitanwendungen

Hardware Tessellation in DirectX11 zur Berechnung von Levels of Detail in Echtzeitanwendungen MASTER THESIS zur Erlangung des akademischen Grades Master of Science in Engineering im Studiengang 585 Hardware Tessellation in DirectX11 zur Berechnung von Levels of Detail in Echtzeitanwendungen Ausgeführt

Mehr

GUI Programmierung in Java

GUI Programmierung in Java vs und niemals mischen! Daher muss man sich für eine Klasse entscheiden 1 (Abstract Window Toolkit) schwergewichtige Alle Elemente werden vom Betriebssytem gemalt sehen aus wie alle anderen Programme auf

Mehr

8 Cycles. ein GUI-basierter Ansatz wie bei den Blender-Intern-Materialien.

8 Cycles. ein GUI-basierter Ansatz wie bei den Blender-Intern-Materialien. 301 Cycles ist die seit Blender 2.61 verfügbare physikbasierte Renderengine. Hauptentwickler ist Brecht van Lommel, der schon lange die interne Renderengine in Blender betreut. Nachdem Blender Intern mit

Mehr

Projektarbeit Computergraphik. DirectX vs. OpenGL. Fachbereich: 12. Informatik Betreut durch Prof. Dr. Xiaolin Zhou von

Projektarbeit Computergraphik. DirectX vs. OpenGL. Fachbereich: 12. Informatik Betreut durch Prof. Dr. Xiaolin Zhou von Projektarbeit Computergraphik DirectX vs. OpenGL Fachbereich: 12. Informatik Betreut durch Prof. Dr. Xiaolin Zhou von Patrick Schmid, Christian Piwecki 4. Juli 2005 INHALTSVERZEICHNIS Projekt Graphik Inhaltsverzeichnis

Mehr

Anwendertreffen 20./21. Juni

Anwendertreffen 20./21. Juni Forum cadwork 3D Viewer Der cadwork 3D Viewer ist ein Programm mit dem Sie einfache Präsentationen und Bilder Ihrer Projekte erstellen können. Auch kleinere Animationen und Filme können mit ihm erstellt

Mehr

4D Server v12 64-bit Version BETA VERSION

4D Server v12 64-bit Version BETA VERSION 4D Server v12 64-bit Version BETA VERSION 4D Server v12 unterstützt jetzt das Windows 64-bit Betriebssystem. Hauptvorteil der 64-bit Technologie ist die rundum verbesserte Performance der Anwendungen und

Mehr

Testen von grafischen Benutzeroberflächen

Testen von grafischen Benutzeroberflächen Seminarvortrag 10: Testen von grafischen Benutzeroberflächen 2004 / 06 / 28 Clemens Sommer, Gerald Peter Übersicht Motivation GUI Allgemein Fehlerquellen und deren Auswirkungen GUI Testwerkzeuge JUnit

Mehr

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth

Tutorial: Eigene Module und Extensions entwickeln. version: 0.1 Author: Anja Beuth Tutorial: Eigene Module und Extensions entwickeln version: 0.1 Author: Anja Beuth Table of contents 1 2 2.1 2.2 2.3 2.4 3 4 4.1 4.2 4.3 5 5.1 6 6.1 6.2 Notwendigkeit prüfen... Ein Projekt in Visual Studio

Mehr

C# Programm: Raytracer (3D Renderer)

C# Programm: Raytracer (3D Renderer) C# Programm: Raytracer (3D Renderer) Hiermit verbrachten wir die letzte Einheit in C# des Informatikunterrichtes. Dieser Raytracer ist ein Programm, das nur mit wenigen Informationen über einen Raum, der

Mehr

Ein Tool für automatische Performancetests von Java3D Applikationen

Ein Tool für automatische Performancetests von Java3D Applikationen Ein Tool für automatische Performancetests von Java3D Applikationen Kristina Wunderlich A Tool for Automated Performance Testing of Java3D Applications in Agile Environments Xueling Shu, Frank Maurer;

Mehr

(13) Hot Topics. Vorlesung Computergrafik T. Grosch

(13) Hot Topics. Vorlesung Computergrafik T. Grosch (13) Hot Topics Vorlesung Computergrafik T. Grosch Heute Vorstellung der besten Flugsimulatoren Hot Topics T. Grosch - - Warum Hot Topics? Typischerweise i Computergrafik 1 : Grundlagen, konstant Computergrafik

Mehr

DashCommand. Anleitung. Version 1.0.2. OBD-2 Software für Touchscreen-PC und ELM-Interfaces. Copyright 2008 CarCode Müller All rights reserved

DashCommand. Anleitung. Version 1.0.2. OBD-2 Software für Touchscreen-PC und ELM-Interfaces. Copyright 2008 CarCode Müller All rights reserved TM OBD-2 Software für Touchscreen-PC und ELM-Interfaces Anleitung Version 1.0.2 2008 Copyright 2008 All rights reserved Inhalt 1. Beschreibung... 3 2. Warnhinweise... 3 3. Installation... 4 4. Deinstallieren...

Mehr

Teil III. Grundlagen der Computergrafik

Teil III. Grundlagen der Computergrafik Teil III Grundlagen der Computergrafik Überblick 1 2 Geometrische Modellierung 3 Bildsynthese 4 Grafikprogrammierung Eike Schallehn Grundlagen der Informatik für Ingenieure Wintersemester 08/09 3 1 Begriff:

Mehr

XNA. Alt Christian, Atzl Caroline, Gintner Peter, Huemer Sandra. January 16, 2009

XNA. Alt Christian, Atzl Caroline, Gintner Peter, Huemer Sandra. January 16, 2009 -Framework Alt Christian, Atzl Caroline, Gintner Peter, Huemer Sandra January 16, 2009 -Framework Inhaltsverzeichnis 1 Einführung Vergleich 2 -Framework Schichten 3 4 Grundgerüst Beispiel zu Einführung

Mehr

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet

C++ Grundlagen. ++ bedeutet Erweiterung zum Ansi C Standard. Hier wird eine Funktion eingeleitet C++ Grundlagen ++ bedeutet Erweiterung zum Ansi C Standard Hier wird eine Funktion eingeleitet Aufbau: In dieser Datei stehen die Befehle, die gestartet werden, wenn das Programm gestartet wird Int main()

Mehr