Hintergrundwissen: Unterschied zwischen den Versionen
Ptiz38 (Diskussion | Beiträge) (→Optimierungen) |
K (→Mathematische Grundlagen: Dual Quaternions verlinkt) |
||
(46 dazwischenliegende Versionen von 14 Benutzern werden nicht angezeigt) | |||
Zeile 8: | Zeile 8: | ||
− | + | == Begriffserklärungen == | |
− | + | In diesem Teil findet ihr Erklärungen zu begriffen, die ihr ständig im Zusammenhang mit OpenGL höhrt. Wenn ihr etwas nicht kennt, könnt ihr hier nachsehen, ob der Begriff bereits erklärt wurde. | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Grundlagen === | === Grundlagen === | ||
+ | : [[Alpha-Clipping|α-Clipping]] | ||
: [[Funktions Anhang|Aufbau von OpenGL Funktionen]] | : [[Funktions Anhang|Aufbau von OpenGL Funktionen]] | ||
− | : [[Clipping Plane]] (Schnittebenen) | + | : [[Bounding Volume]] ([[Bounding Box]]) |
+ | : [[Bresenham-Algorithmus|Bresenham Algorithmus (Linien / Kurven zeichnen)]] | ||
+ | : [[Clipping Plane]] {{excIcon}} (Schnittebenen) | ||
: [[Frustum]] | : [[Frustum]] | ||
− | : [[ | + | : [[OpenGL Name|Namen in OpenGL]] |
+ | : [[Projektions-Transformationen]] | ||
+ | : [[Scanline-Rasterization|Scanline Algorithmus (Polygone zeichen)]] | ||
: [[Normalen]] | : [[Normalen]] | ||
: [[Primitive]] | : [[Primitive]] | ||
+ | : [[Texel]] {{icpIcon}} | ||
− | + | === Mathematische Grundlagen === | |
− | + | : [[Matrix|Matrix / Matrizen]] | |
− | + | : [[Quaternion|Quaternion / Hamiltonsche Quaternionen]] | |
− | + | : [[Dual Quaternion]]s | |
− | + | : [[Standard Skalarprodukt|Skalarprodukt / Punktprodukt / Dotproduct / Dot]] | |
− | + | : [[Vektorprodukt|Vektorprodukt / Vektorkreuzprodukt / Kreuzprodukt]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Bildentstehung === | === Bildentstehung === | ||
+ | : [[Dithering]] {{icpIcon}} | ||
: [[Fragment| Fragmente]] | : [[Fragment| Fragmente]] | ||
: [[Pixel]] | : [[Pixel]] | ||
: [[Rasterisierung]] | : [[Rasterisierung]] | ||
: [[Tiefentest]] | : [[Tiefentest]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Puffer === | === Puffer === | ||
Zeile 71: | Zeile 45: | ||
: [[Feedbackpuffer]] | : [[Feedbackpuffer]] | ||
: [[Framebuffer]] | : [[Framebuffer]] | ||
− | : [[ | + | : [[Logischer Puffer]] |
: [[Schablonenpuffer]] (Stencilbuffer) | : [[Schablonenpuffer]] (Stencilbuffer) | ||
: [[Selektionspuffer]] | : [[Selektionspuffer]] | ||
: [[Tiefenpuffer]] (Depthbuffer) | : [[Tiefenpuffer]] (Depthbuffer) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Texturen === | === Texturen === | ||
+ | ''Wer Informationen zum Erstellen von Texturen benötigt, sollte sich die [[Link]]-Sektion und den Artikel zum Thema [[Farbraum|Farbräume]]{{excIcon}} ansehen.'' | ||
+ | : [[Anisotropes Filtern]] | ||
: [[Decals]] | : [[Decals]] | ||
: [[MipMaps]] | : [[MipMaps]] | ||
Zeile 96: | Zeile 58: | ||
: [[Texel Berechnung]] | : [[Texel Berechnung]] | ||
: [[Texturen]] | : [[Texturen]] | ||
− | + | : [[Texturesynthesis]] ''automatisiertes Erzeugen von (u.A. kachelbaren) Texturen ohne Wiederholung'' | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Textureneffekte === | === Textureneffekte === | ||
Zeile 117: | Zeile 66: | ||
: [[Detailmapping]] (Erhöhung des Texturdetailgrades) | : [[Detailmapping]] (Erhöhung des Texturdetailgrades) | ||
: [[Environment Mapping]] (Umgebungsspiegelung) | : [[Environment Mapping]] (Umgebungsspiegelung) | ||
− | :: [[Cubemap]]ping | + | :: [[Cubemap]]ping {{icpIcon}} |
− | :: [[Spheremap]]ping | + | :: [[Spheremap]]ping {{icpIcon}} |
: [[Multitexturing]] | : [[Multitexturing]] | ||
− | + | : [[Texture Stage]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Effekte === | === Effekte === | ||
: [[Antialiasing]] (Kantenglättung) | : [[Antialiasing]] (Kantenglättung) | ||
: [[Blenden]] (Blending) | : [[Blenden]] (Blending) | ||
+ | : [[Effektepfad]] (allgemeines zu Effekten) | ||
: [[Jittering]] (Verwischen) | : [[Jittering]] (Verwischen) | ||
: [[Nebel]] (Fogging) | : [[Nebel]] (Fogging) | ||
+ | : [[Reflexion]] (Spiegelungen) | ||
: [[Transparenz]] (durchsichtige Objekte) | : [[Transparenz]] (durchsichtige Objekte) | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Optimierungen === | === Optimierungen === | ||
Zeile 162: | Zeile 86: | ||
: [[Triangulation]] | : [[Triangulation]] | ||
: [[VBO]] (Vertex Buffer Objects) | : [[VBO]] (Vertex Buffer Objects) | ||
− | + | : [[VBO ohne glInterleavedArrays]] | |
− | + | : [[VAO]] (Vertex Array Objects) | |
− | + | : [[Occlusion Query|Occlusion Queries]] | |
− | + | : [[Performance]] (Allgemeine Performance-Tipps) | |
− | + | : [[Instancing]] | |
− | + | : [[Deferred Shading]] | |
− | + | : [[Inferred Lighting]] | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Weiterführendes === | === Weiterführendes === | ||
: [[Beleuchtung]] | : [[Beleuchtung]] | ||
− | : [[Billboard]]s | + | : [[Billboard]]s |
+ | :: [[sphärisches Billboard]] {{icpIcon}} | ||
+ | :: [[zylindrisches Billboard]] {{icpIcon}} | ||
+ | : [[Convolution]] | ||
: [[NURBS]] | : [[NURBS]] | ||
: [[Picking]] | : [[Picking]] | ||
− | : [[ | + | : [[Point Sprite]] |
: [[Quadrik]]en | : [[Quadrik]]en | ||
: [[Selektion]] | : [[Selektion]] | ||
: [[Sprite]]s | : [[Sprite]]s | ||
: [[Tesselierung]] | : [[Tesselierung]] | ||
− | |||
− | |||
− | |||
− | |||
− | |||
=== Fehler/ Nebeneffekte === | === Fehler/ Nebeneffekte === | ||
: [[Aliasing]] (Treppenbildung und Ähnliches) | : [[Aliasing]] (Treppenbildung und Ähnliches) | ||
: [[Popping]] (Plötzliches Auftauchen von Elementen. Z.B. bekannt bei [[LOD]]) | : [[Popping]] (Plötzliches Auftauchen von Elementen. Z.B. bekannt bei [[LOD]]) | ||
− | : [[ZFighting]] (Flimmernde Polygone und Kanten) | + | : [[V-Sync#Tearing|Tearing]] (zerrissenes Bild bei deaktiviertem [[V-Sync]]) |
− | + | : [[ZFighting]] (Flimmernde Polygone und Kanten) | |
− | |||
=== Render-Pipeline === | === Render-Pipeline === | ||
− | : [[Feste Funktionspipeline]] | + | : [[Feste Funktionspipeline]] {{icpIcon}} |
: [[GLSlang]] | : [[GLSlang]] | ||
: [[GLSL]] | : [[GLSL]] | ||
+ | : [[Cg]] | ||
: [[Shader]] (allgemein) | : [[Shader]] (allgemein) | ||
− | :: [[ | + | :: [[Vertexshader]] |
− | :: [[ | + | :: [[Geometryshader]] |
− | + | :: [[Fragmentshader]] (auch ''Pixelshader'') | |
− | + | : [[Transform-Feedback]] (auch ''Stream-Out'') | |
=== Bibliotheken === | === Bibliotheken === | ||
: [[DGLSDK]] | : [[DGLSDK]] | ||
: [[OpenAL]] | : [[OpenAL]] | ||
− | : [[SDL]] | + | : [[SDL]] |
+ | |||
+ | === Grafikkarten === | ||
+ | : [[Bandbreitenlimitiert]] | ||
+ | : [[Shaderlimitiert]] | ||
+ | : [[Vertex Cache]] | ||
+ | : [[Vertexlimitiert]] | ||
+ | |||
− | |||
=== Sonstiges === | === Sonstiges === | ||
: [[Benchmark]] | : [[Benchmark]] | ||
: [[Callback]] | : [[Callback]] | ||
+ | : [[Farbraum]] | ||
+ | : [[Framerate]] | ||
: [[Füllrate]] | : [[Füllrate]] | ||
+ | : [[hexfeld | Hexfeld rendern]] | ||
+ | : [[Raytracing]] | ||
: [[Renderkontext]] | : [[Renderkontext]] | ||
: [[Scanlinerenderer]] | : [[Scanlinerenderer]] | ||
: [[Timebased Movement]] | : [[Timebased Movement]] | ||
− | |||
− | |||
− | |||
− | |||
=== Bücher zum Thema ... === | === Bücher zum Thema ... === | ||
Zeile 234: | Zeile 155: | ||
: ... OpenGL: [[PurpleBook]] | : ... OpenGL: [[PurpleBook]] | ||
: ... OpenGL: [[OrangeBook]] | : ... OpenGL: [[OrangeBook]] | ||
− | : ... OpenGL: [http://www.starstonesoftware.com/OpenGL/ OpenGL Superbible] | + | : ... OpenGL: [http://www.starstonesoftware.com/OpenGL/ OpenGL Superbible] |
− | |||
− | |||
− | |||
− | |||
+ | == Checklisten == | ||
+ | In diesem Teil findet ihr Checklisten die ihr durcharbeiten solltet, wenn ihr Fehler im Code habt, bzw. wenn eure Ausgabe nicht so aussieht wie sie es söllte. | ||
− | + | :[[Checkliste Allgemein]] | |
− | + | :[[Checkliste Blending]] | |
− | + | :[[Checkliste Positionierung]] | |
− | + | :[[Checkliste Selektion]] | |
− | + | :[[Checkliste Shader]] | |
− | + | :[[Checkliste Texturierung]] | |
− | |||
− | |||
− | |||
− |
Aktuelle Version vom 3. Januar 2014, 17:17 Uhr
Inhaltsverzeichnis
Was hier hinein gehört
In diese Kategorie kommt alles rein was zum Verständnis im Bereich OpenGL/3D-Programmierung nützlich sein könnte. Also u.a. welche Puffer es unter OpenGL gibt, und für was die gut sind.
Auch hier sollte man möglichst aufspalten und dann eine Überschrift setzen. So macht man das Auffinden bestimmter Dinge leichter und auch die Verlinkung darauf ist oft etwas das man in anderen Dokumenten benötigt.
P.S. : Ob hier Deutsche Begriffe oder Anglizismen genutzt werden ist jedem selbst überlassen. Ich persönlich bevorzuge ersteres.
Begriffserklärungen
In diesem Teil findet ihr Erklärungen zu begriffen, die ihr ständig im Zusammenhang mit OpenGL höhrt. Wenn ihr etwas nicht kennt, könnt ihr hier nachsehen, ob der Begriff bereits erklärt wurde.
Grundlagen
- α-Clipping
- Aufbau von OpenGL Funktionen
- Bounding Volume (Bounding Box)
- Bresenham Algorithmus (Linien / Kurven zeichnen)
- Clipping Plane (Schnittebenen)
- Frustum
- Namen in OpenGL
- Projektions-Transformationen
- Scanline Algorithmus (Polygone zeichen)
- Normalen
- Primitive
- Texel
Mathematische Grundlagen
- Matrix / Matrizen
- Quaternion / Hamiltonsche Quaternionen
- Dual Quaternions
- Skalarprodukt / Punktprodukt / Dotproduct / Dot
- Vektorprodukt / Vektorkreuzprodukt / Kreuzprodukt
Bildentstehung
Puffer
- Akkumulationspuffer (Accumulationbuffer)
- Doppelpufferung (Doublebuffering)
- Farbpuffer (Colorbuffer)
- Feedbackpuffer
- Framebuffer
- Logischer Puffer
- Schablonenpuffer (Stencilbuffer)
- Selektionspuffer
- Tiefenpuffer (Depthbuffer)
Texturen
Wer Informationen zum Erstellen von Texturen benötigt, sollte sich die Link-Sektion und den Artikel zum Thema Farbräume ansehen.
- Anisotropes Filtern
- Decals
- MipMaps
- Register Combiner
- Texel Berechnung
- Texturen
- Texturesynthesis automatisiertes Erzeugen von (u.A. kachelbaren) Texturen ohne Wiederholung
Textureneffekte
- Animierte Texturen
- Bumpmapping (Simulation rauher Oberflächen)
- Displacementmapping (Änderung der Oberflächengeometrie)
- Detailmapping (Erhöhung des Texturdetailgrades)
- Environment Mapping (Umgebungsspiegelung)
- Multitexturing
- Texture Stage
Effekte
- Antialiasing (Kantenglättung)
- Blenden (Blending)
- Effektepfad (allgemeines zu Effekten)
- Jittering (Verwischen)
- Nebel (Fogging)
- Reflexion (Spiegelungen)
- Transparenz (durchsichtige Objekte)
Optimierungen
- Backfaceculling
- Displaylisten
- Frustum Culling
- Triangulation
- VBO (Vertex Buffer Objects)
- VBO ohne glInterleavedArrays
- VAO (Vertex Array Objects)
- Occlusion Queries
- Performance (Allgemeine Performance-Tipps)
- Instancing
- Deferred Shading
- Inferred Lighting
Weiterführendes
- Beleuchtung
- Billboards
- Convolution
- NURBS
- Picking
- Point Sprite
- Quadriken
- Selektion
- Sprites
- Tesselierung
Fehler/ Nebeneffekte
- Aliasing (Treppenbildung und Ähnliches)
- Popping (Plötzliches Auftauchen von Elementen. Z.B. bekannt bei LOD)
- Tearing (zerrissenes Bild bei deaktiviertem V-Sync)
- ZFighting (Flimmernde Polygone und Kanten)
Render-Pipeline
- Feste Funktionspipeline
- GLSlang
- GLSL
- Cg
- Shader (allgemein)
- Vertexshader
- Geometryshader
- Fragmentshader (auch Pixelshader)
- Transform-Feedback (auch Stream-Out)
Bibliotheken
Grafikkarten
Sonstiges
- Benchmark
- Callback
- Farbraum
- Framerate
- Füllrate
- Hexfeld rendern
- Raytracing
- Renderkontext
- Scanlinerenderer
- Timebased Movement
Bücher zum Thema ...
- ... OpenGL: RedBook
- ... OpenGL: BlueBook
- ... OpenGL: PurpleBook
- ... OpenGL: OrangeBook
- ... OpenGL: OpenGL Superbible
Checklisten
In diesem Teil findet ihr Checklisten die ihr durcharbeiten solltet, wenn ihr Fehler im Code habt, bzw. wenn eure Ausgabe nicht so aussieht wie sie es söllte.