Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

OpenGL mit Delphi Allgemeines OpenGL-Funktionsbezeichnungen Aufbau eines OpenGL-Programms Unser erstes Dreieck Farben Transformationen.

Ähnliche Präsentationen


Präsentation zum Thema: "OpenGL mit Delphi Allgemeines OpenGL-Funktionsbezeichnungen Aufbau eines OpenGL-Programms Unser erstes Dreieck Farben Transformationen."—  Präsentation transkript:

1 OpenGL mit Delphi Allgemeines OpenGL-Funktionsbezeichnungen Aufbau eines OpenGL-Programms Unser erstes Dreieck Farben Transformationen

2 Allgemeines 3D Grafik API – Schnittstelle zur 3D Programmierung – Unterstützung für Hardwarebeschleunigung – Unabhängig vom Betriebssystem 1992 von SGI aus IrisGL hervorgegangen Offener Standard

3 Vorteile und Nachteile Vorteile: – Läuft unter verschiedenen Betriebssystemen wie Windows, Linux oder MacOS – Weit verbreitet – Von führenden Grafikkartenherstellern anerkannt Nachteile: – Nur Grafik, im Gegensatz zu DirectX – Teilweise sehr unübersichtlich

4 OpenGL-Funktionsbezeichnungen Alle OpenGL-Funktionen besitzen eine standardisierte Namensgebung: glVertex3f(x, y, z); Aufgabe der Funktion Anzahl der ParameterTyp der Parameter Parameter

5 Aufbau eines OpenGL-Programms function InitGL begin... end function Render begin glClear(GL_COLOR_BUFFER_BIT) glBegin([Primitiventyp]) glVertex(1, 2, 3) glEnd() end } OpenGL initialisieren

6 Primitiven GL_POINTSGL_LINESGL_LINE_STRIP GL_TRIANGLESGL_TRIANGLE_STRIPGL_TRIANGLE_FAN GL_QUADGL_POLYGON

7 Unser erstes Dreieck Procedure Draw; begin glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glVertex3f(1.5,-1.5,-5); glVertex3f(0,1.5,-5); glVertex3f(-1.5,-1.5,-5); glEnd(); SwapBuffers(DC); end;

8 Farben Procedure Draw; begin glClear(GL_COLOR_BUFFER_BIT); glBegin(GL_TRIANGLES); glColor3f(1,0,0); glVertex3f(1.5,-1.5,-5); glColor3f(0,1,0); glVertex3f(0,1.5,-5); glColor3f(0,0,1); glVertex3f(-1.5,-1.5,-5); glEnd(); SwapBuffers(DC); end;

9 Transformationen OpenGL benutzt Matrizen um Objekte zu verschieben, drehen und zu skalieren. Dafür gibt es: – glTranslatef(x,y,z) – glRotatef(Winkel,x,y,z) – glScalef(x,y,z) glLoadIndentity() setzt die Matrix in ihre Ursprungsform zurück. Vorsicht! Das Kommutativgesetz gilt bei der Matrizenrechnung nicht, d.h. es ist nicht egal in welcher Reihenfolge die Funktionen aufgerufen werden.

10 Beispiel zu Transformationen glClear(GL_COLOR_BUFFER_BIT or GL_DEPTH_BUFFER_BIT); glLoadIdentity; glTranslatef(0,0,-5); glRotatef(Rotation,0,1,0); glScalef(0.5,0.5,0.5); glBegin(GL_TRIANGLES); glColor3f(1,0,0); glVertex3f(1.5,-1.5,0); glColor3f(0,1,0); glVertex3f(0,1.5,0); glColor3f(0,0,1); glVertex3f(-1.5,-1.5,0); glEnd(); SwapBuffers(DC); Rotation ist eine Variable, die einen Winkel im Gradmaß enthält und mit einem Delphi-Timer verändert wird.

11 Gute OpenGL-Tutorials


Herunterladen ppt "OpenGL mit Delphi Allgemeines OpenGL-Funktionsbezeichnungen Aufbau eines OpenGL-Programms Unser erstes Dreieck Farben Transformationen."

Ähnliche Präsentationen


Google-Anzeigen