Difference between revisions of "OpenGL/de"

From Lazarus wiki
Jump to navigationJump to search
 
(6 intermediate revisions by 3 users not shown)
Line 1: Line 1:
 
{{OpenGL}}
 
{{OpenGL}}
  
OpenGL ist die Plattform-unabhängige Standardbibliothek für die graphische 3D Darstellung. Die selben OpenGL Kommandos arbeiten genau gleich unter allen Plattformen.  
+
OpenGL ('''Open''' '''G'''raphics '''L'''ibrary) ist die Plattform-unabhängige Standardbibliothek für graphische 3D-Darstellungen. Die meisten modernen Videokarten unterstützen OpenGL durch Hardwarebeschleunigung. Damit ist OpenGL eine gute Wahl, um anspruchsvolle Grafiksoftware zu schreiben.
Der einzige Plattform-abhängige Teil ist die Erzeugung des OpenGL Kontexts. Aber das ist bereits durch die folgenden Packages erledigt, so daß sie nur noch OpenGL lernen müssen.
 
  
== OpenGL Bedienelement ==
+
== OpenGL-Units in FreePascal ==
  
Lazarus kommt mit einem einfach und leicht zu bedienenden OpenGL Bedienelement, welches einen OpenGL Kontext bietet unter den folgenden Plattformen:
+
Die FreePascal OpenGL Schnittstelle besteht aus folgenden Units:
 +
* '''gl''': Diese Unit enthält die zentralen Funktion wie Polygone zeichnen, Transformationen anwenden, Farben und Materialien setzen, ... Alle Prozeduren starten mit der Präposition "gl".
 +
* '''glu''': Diese Unit enthält die OpenGL-Hilfsprogramme. Obwohl die Unit einige nützliche Funktionen hat, ist sie nicht unbedingt notwendig, weil man alle glu Prozeduren auch mit den Funktionen der gl Unit implementieren kann. Alle Prozeduren starten mit der Präposition "glu".
 +
* '''glext''': Drittanbieter können hier zusätzliche Funktionen über Erweiterungen anbieten. <p> Funktionen höherer OpenGL-Versionen (1.2 und neuer) stehen ebenfalls über diese Unit  zur Verfügung. Die Initialisierung entspricht der Initialisierung normaler OpenGL-Erweiterungen: einfach die Funktion Load_GL_version_X_Y aufrufen. Ist ihre Version der OpenGL-Bibliothek älter als X.Y, gibt Load_GL_version_X_Y den Wert false zurück.</p>
 +
* '''glut''': Diese Unit enthält die Funktionen für die Erzeugung von OpenGL-Fenster. Obwohl sie cross-platform ist, fehlt bei den meisten Windows-Betriebssystemen die glut dll in der Standardeinstellung.
 +
* '''glx''': Diese Unit enthält die Funktionen für das Aufsetzen eines OpenGL-Fensters in einem X-Window-System. Alle Prozeduren starten it der Präposition "glx". Offensichtlich kann diese Unit nur unter X-Window-Systemen und nicht unter Windows verwendet werden.
  
* Linux: GTK + GLX, ToDo: gtk2
+
== OpenGL-Units in Lazarus ==
* FreeBSD: GTK + GLX, ToDo: gtk2
 
* Windows: Win32 + WGL
 
* MacOSX: Carbon + AGL
 
  
Installieren sie einfach das Package components/opengl/lazopenglcontext.lpk und werfen sie einen Blick auf das Beispiel.
+
Lazarus beinhaltet ein TOpenGLControl - ein LCL-Bedienelement mit einem OpenGL-Kontext. Das Lazarus-Package LazOpenGLContext befindet sich hier: lazarus/components/opengl/lazopenglcontext.lpk. Ein Beispiel befindet sich hier: lazarus/examples/openglcontrol/openglcontrol_demo.lpi.
  
== GLScene ==
+
== OpenGL-Units von Drittanbietern ==
  
Es gibt ein großes Delphi Package, welches nach Lazarus portiert wurde. Es wurde zusammen mit Werkzeugen und Editoren in die IDE integriert.
+
*[[GLScene/de|GLScene]] ist ein Lazarus-Package mit einer Menge zusätzlicher Features für OpenGL-Anwendungen.
Siehe [[GLScene/de|GLScene]].
 
  
== Asmoday ==
+
== Tutorial ==
 +
* [[OpenGL Tutorial]] (englisch)
 +
* [[OpenGL Tutorial/de|OpenGL Tutorial]] (deutsch)
  
[http://sourceforge.net/projects/asmoday Universelle OpenGL 3D Grafikengine für Freepascal]
+
== Tutorial OpenGL 3.3 ( modern OpenGL )==
 
+
* [https://wiki.delphigl.com/index.php/Lazarus_-_OpenGL_3.3_Tutorial Lazarus OpenGL 3.3 - Tutorial]- (deutsch) (extern)
== Tutorials ==
+
* [https://github.com/sechshelme/Lazarus-OpenGL-3.3-Tutorial/blob/master/wiki.md Lazarus OpenGL 3.3 - Tutorial]- (deutsch) (extern) (github)
 
 
Es gibt eine Menge Tutorials unter [http://nehe.gamedev.net/ nehe].
 
 
 
siehe auch [[OpenGL Tutorial|OpenGL Tutorial]]
 

Latest revision as of 14:03, 9 August 2022

Deutsch (de) English (en) français (fr) 日本語 (ja) português (pt) русский (ru) Tiếng Việt (vi) 中文(中国大陆)‎ (zh_CN)

OpenGL (Open Graphics Library) ist die Plattform-unabhängige Standardbibliothek für graphische 3D-Darstellungen. Die meisten modernen Videokarten unterstützen OpenGL durch Hardwarebeschleunigung. Damit ist OpenGL eine gute Wahl, um anspruchsvolle Grafiksoftware zu schreiben.

OpenGL-Units in FreePascal

Die FreePascal OpenGL Schnittstelle besteht aus folgenden Units:

  • gl: Diese Unit enthält die zentralen Funktion wie Polygone zeichnen, Transformationen anwenden, Farben und Materialien setzen, ... Alle Prozeduren starten mit der Präposition "gl".
  • glu: Diese Unit enthält die OpenGL-Hilfsprogramme. Obwohl die Unit einige nützliche Funktionen hat, ist sie nicht unbedingt notwendig, weil man alle glu Prozeduren auch mit den Funktionen der gl Unit implementieren kann. Alle Prozeduren starten mit der Präposition "glu".
  • glext: Drittanbieter können hier zusätzliche Funktionen über Erweiterungen anbieten.

    Funktionen höherer OpenGL-Versionen (1.2 und neuer) stehen ebenfalls über diese Unit zur Verfügung. Die Initialisierung entspricht der Initialisierung normaler OpenGL-Erweiterungen: einfach die Funktion Load_GL_version_X_Y aufrufen. Ist ihre Version der OpenGL-Bibliothek älter als X.Y, gibt Load_GL_version_X_Y den Wert false zurück.

  • glut: Diese Unit enthält die Funktionen für die Erzeugung von OpenGL-Fenster. Obwohl sie cross-platform ist, fehlt bei den meisten Windows-Betriebssystemen die glut dll in der Standardeinstellung.
  • glx: Diese Unit enthält die Funktionen für das Aufsetzen eines OpenGL-Fensters in einem X-Window-System. Alle Prozeduren starten it der Präposition "glx". Offensichtlich kann diese Unit nur unter X-Window-Systemen und nicht unter Windows verwendet werden.

OpenGL-Units in Lazarus

Lazarus beinhaltet ein TOpenGLControl - ein LCL-Bedienelement mit einem OpenGL-Kontext. Das Lazarus-Package LazOpenGLContext befindet sich hier: lazarus/components/opengl/lazopenglcontext.lpk. Ein Beispiel befindet sich hier: lazarus/examples/openglcontrol/openglcontrol_demo.lpi.

OpenGL-Units von Drittanbietern

  • GLScene ist ein Lazarus-Package mit einer Menge zusätzlicher Features für OpenGL-Anwendungen.

Tutorial

Tutorial OpenGL 3.3 ( modern OpenGL )