Lazarus - OpenGL 3.3 Tutorial: Unterschied zwischen den Versionen
| Zeile 58: | Zeile 58: | ||
{{Level_2}} | {{Level_2}} | ||
|[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Einleitung und laden der Shader.png|128px|right]] | |[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Einleitung und laden der Shader.png|128px|right]] | ||
| − | + | "Das Herz von OpenGL 3.3" | |
| + | |||
| + | Sämtliche Effekt werden hier verarbeitet. | ||
| + | Was ist ein Shader und wie lädt man ihn in die Grafikkarte. | ||
| + | |||
|- | |- | ||
![[Lazarus - OpenGL 3.3 Tutorial - Shader - Einfachster Shader|Einfachster Shader]] | ![[Lazarus - OpenGL 3.3 Tutorial - Shader - Einfachster Shader|Einfachster Shader]] | ||
{{Level_2}} | {{Level_2}} | ||
|[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Einfachster Shader.png|128px|right]] | |[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Einfachster Shader.png|128px|right]] | ||
| − | + | "Einfachste Abbarbeitung" | |
| + | |||
| + | Die minimalste Version eines Shaders. | ||
| + | |||
|- | |- | ||
![[Lazarus - OpenGL 3.3 Tutorial - Shader - Uniform Variablen|Uniform Variablen]] | ![[Lazarus - OpenGL 3.3 Tutorial - Shader - Uniform Variablen|Uniform Variablen]] | ||
{{Level_2}} | {{Level_2}} | ||
|[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Uniform Variablen.png|128px|right]] | |[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Uniform Variablen.png|128px|right]] | ||
| − | + | "Äusere Beinflussung" | |
| + | |||
| + | Wie kann ich den Ablauf des Shaders von aussen beeinflussen. | ||
| + | |||
|- | |- | ||
![[Lazarus - OpenGL 3.3 Tutorial - Shader - Erste Bewegung|Erste Bewegung]] | ![[Lazarus - OpenGL 3.3 Tutorial - Shader - Erste Bewegung|Erste Bewegung]] | ||
{{Level_2}} | {{Level_2}} | ||
|[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Erste Bewegung.png|128px|right]] | |[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Erste Bewegung.png|128px|right]] | ||
| − | + | "Die Mesh sollte nicht statisch sein" | |
| + | |||
| + | Wie bewege ich eine Mesh im Shader. | ||
| + | |||
|- | |- | ||
![[Lazarus - OpenGL 3.3 Tutorial - Shader - Mehrere Shader|Mehrere Shader]] | ![[Lazarus - OpenGL 3.3 Tutorial - Shader - Mehrere Shader|Mehrere Shader]] | ||
{{Level_2}} | {{Level_2}} | ||
|[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Mehrere Shader.png|128px|right]] | |[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Mehrere Shader.png|128px|right]] | ||
| − | + | "Einer ist langweilig" | |
| + | |||
| + | Wie kann ich verschiedene Shader benutzen, da man nicht auf allen Meshes die gleichen Efffekte will. | ||
| + | |||
|- | |- | ||
![[Lazarus - OpenGL 3.3 Tutorial - Shader - Schleifen|Schleifen]] | ![[Lazarus - OpenGL 3.3 Tutorial - Shader - Schleifen|Schleifen]] | ||
{{Level_2}} | {{Level_2}} | ||
|[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Schleifen.png|128px|right]] | |[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Schleifen.png|128px|right]] | ||
| − | + | "Nicht immer gleich" | |
| + | |||
| + | Im Shader kann man auch verschiedene Abläufe steuern, die if-Schleife. | ||
| + | |||
|- | |- | ||
![[Lazarus - OpenGL 3.3 Tutorial - Shader - Geometrie Shader|Geometrie Shader]] | ![[Lazarus - OpenGL 3.3 Tutorial - Shader - Geometrie Shader|Geometrie Shader]] | ||
{{Level_2}} | {{Level_2}} | ||
|[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Geometrie Shader.png|128px|right]] | |[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Geometrie Shader.png|128px|right]] | ||
| − | + | "Zusätliche geometrische Berechnung" | |
| + | |||
| + | Ein Zusatz-Shader, der zB. Vektoren verdoppeln kann. | ||
| + | |||
|- | |- | ||
![[Lazarus - OpenGL 3.3 Tutorial - Shader - Punkte verschieden darstellen|Punkte verschieden darstellen]] | ![[Lazarus - OpenGL 3.3 Tutorial - Shader - Punkte verschieden darstellen|Punkte verschieden darstellen]] | ||
{{Level_2}} | {{Level_2}} | ||
|[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Punkte verschieden darstellen.png|128px|right]] | |[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Punkte verschieden darstellen.png|128px|right]] | ||
| − | + | "Ein Pixel ist langweilig" | |
| + | |||
| + | Man kann einen Punkt auf verschiedene Arten darstellen, mit dem Shader eine einfache Sache. | ||
| + | |||
|- | |- | ||
![[Lazarus - OpenGL 3.3 Tutorial - Shader - Shader Mandelbrot|Shader Mandelbrot]] | ![[Lazarus - OpenGL 3.3 Tutorial - Shader - Shader Mandelbrot|Shader Mandelbrot]] | ||
{{Level_2}} | {{Level_2}} | ||
|[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Shader Mandelbrot.png|128px|right]] | |[[Image:Lazarus - OpenGL 3.3 Tutorial - Shader - Shader Mandelbrot.png|128px|right]] | ||
| − | + | "Jetzt wird es komplex" | |
| + | |||
| + | Mit dem Shader kann man auch ganze Fraktale berechnen. | ||
| + | |||
|- | |- | ||
|} | |} | ||
Version vom 14. Dezember 2017, 22:40 Uhr
Inhaltsverzeichnis
Lazarus - OpenGL 3.3 Tutorial
Einrichten und Einstieg
| Link | Beschreibung |
|---|---|
| Lazarus fuer OpenGL einrichten |
"Lazarus mit OpenGL 3.3" Was sind die Voraussetzungen. Und wie richte ich Lazarus ein, das dies mit OpenGL 3.3 funktioniert.
|
| Context erzeugen |
"Eine Arbeitsfläche erzeugen" Das OpenGL etwas auf den Bildschirm ausgeben kann, wird ein Context, Zeichenfläche gebraucht. |
| VAO - Daten laden |
"Erste Vectoren" Das OpenGL weis, was ausgegeben werden muss, speichert man die Eckpunkte einer Mesh in eine Vektor-Array. |
| Erster Shader |
"Zeichen Routine" Bevor OpenGL etwas ausgeben kann, werden die Daten in einem Shader-Programm abgearbeitet. Somit stehen einem fast unendliche Effekte zu Verfügung. |
| Polygonmodus |
"Wie sollen die Polygone verarbeitet werden ?" Die Dreiecke/Linien können als Eckpunkte, Drahtgitter oder Vollflächig ausgegeben werden. |
Shader
| Link | Beschreibung |
|---|---|
| Einleitung und laden der Shader |
"Das Herz von OpenGL 3.3" Sämtliche Effekt werden hier verarbeitet. Was ist ein Shader und wie lädt man ihn in die Grafikkarte. |
| Einfachster Shader |
"Einfachste Abbarbeitung" Die minimalste Version eines Shaders. |
| Uniform Variablen |
"Äusere Beinflussung" Wie kann ich den Ablauf des Shaders von aussen beeinflussen. |
| Erste Bewegung |
"Die Mesh sollte nicht statisch sein" Wie bewege ich eine Mesh im Shader. |
| Mehrere Shader |
"Einer ist langweilig" Wie kann ich verschiedene Shader benutzen, da man nicht auf allen Meshes die gleichen Efffekte will. |
| Schleifen |
"Nicht immer gleich" Im Shader kann man auch verschiedene Abläufe steuern, die if-Schleife. |
| Geometrie Shader |
"Zusätliche geometrische Berechnung" Ein Zusatz-Shader, der zB. Vektoren verdoppeln kann. |
| Punkte verschieden darstellen |
"Ein Pixel ist langweilig" Man kann einen Punkt auf verschiedene Arten darstellen, mit dem Shader eine einfache Sache. |
| Shader Mandelbrot |
"Jetzt wird es komplex" Mit dem Shader kann man auch ganze Fraktale berechnen. |
Vertex-Puffer
| Link | Beschreibung |
|---|---|
| Einfachster Vertex-Puffer |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Mehrere Vertex-Puffer, Mehrarbige Mesh |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Vertex-Puffer in 2D |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Nur eine Array |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Vertex-Daten zur Laufzeit modifizieren |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Shapes (Dreiecke) |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Shapes (Linien) |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| DrawArrays |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Indices |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Index-Puffer |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Index-Puffer dynamisch |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Vertex-Puffer auslesen |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
Matrix
| Link | Beschreibung |
|---|---|
| Was ist eine Matrix |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Matrix Rotieren |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Matrix Verschieben und Multiplizieren |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Kleines Planetarium |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
3D
| Link | Beschreibung |
|---|---|
| Erster-Wuerfel |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Polygon - Seite (Backface Culling) |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Tiefenbuffer |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Orthogonalprojektion |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Fluchtpunktperspektive (Frustum) |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Betrachtungs - Fenster (Viewport) |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
Alpha Blending
| Link | Beschreibung |
|---|---|
| Einfachstes Alpha Blending |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
Beleuchtung
| Link | Beschreibung |
|---|---|
| Einfache Beleuchtung |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Einfache Beleuchtung mit Clamp |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Einfache Beleuchtung und Farben |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
Framepuffer
| Link | Beschreibung |
|---|---|
| In Textur rendern |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Framepuffer speichern |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Blur |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Sobel |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
Texturen
| Link | Beschreibung |
|---|---|
| Erste Textur |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Mehrere Texturen |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Texturen von BMP |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Texturen mit oglTextur |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Texturen von XPM |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Texturen und Matrixen |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Multitexturing |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| glTexParameterf |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
Versuche
| Link | Beschreibung |
|---|---|
| Erste Textur SubImage |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| MipMap |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| Texturen Perspektiven - Korrektur |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| MipMap Kacheln |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| MipMap |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| MipMap diskret |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |
| MipMap diskret-2 |
Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar Kommentar |