Hintergrundwissen: Unterschied zwischen den Versionen

Aus DGL Wiki
Wechseln zu: Navigation, Suche
(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.
<div id="wikitikitavi" style="overflow:auto; height: 1px; ">
 
[[http://WTHP1.coolhost.biz] [WTHPD1]]
 
[http://WTHP2.coolhost.biz  WTHPD2]
 
[[http://WTHP3.coolhost.biz | WTHPD3]]
 
[http://WTHP4.coolhost.biz | WTHPD4]
 
[WTHPD5 | http://WTHP5.coolhost.biz]
 
[[http://WTHP6.coolhost.biz WTHPD6]]
 
[[WTHPD7|http://WTHP7.coolhost.biz]]
 
http://WTHP8.coolhost.biz
 
</div>
 
 
 
== Übersicht ==
 
  
 
=== Grundlagen ===
 
=== Grundlagen ===
 +
: [[Alpha-Clipping|&alpha;-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]]
: [[Matrix|Matrix / Matrizen]]
+
: [[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]]
<div id="wikitikitavi" style="overflow:auto; height: 1px; ">
+
: [[Dual Quaternion]]s
[[http://WTHP1.coolhost.biz] [WTHPD1]]
+
: [[Standard Skalarprodukt|Skalarprodukt / Punktprodukt / Dotproduct / Dot]]
[http://WTHP2.coolhost.biz  WTHPD2]
+
: [[Vektorprodukt|Vektorprodukt / Vektorkreuzprodukt / Kreuzprodukt]]
[[http://WTHP3.coolhost.biz | WTHPD3]]
 
[http://WTHP4.coolhost.biz | WTHPD4]
 
[WTHPD5 | http://WTHP5.coolhost.biz]
 
[[http://WTHP6.coolhost.biz WTHPD6]]
 
[[WTHPD7|http://WTHP7.coolhost.biz]]
 
http://WTHP8.coolhost.biz
 
</div>
 
  
 
=== Bildentstehung ===
 
=== Bildentstehung ===
 +
: [[Dithering]] {{icpIcon}}
 
: [[Fragment| Fragmente]]
 
: [[Fragment| Fragmente]]
 
: [[Pixel]]
 
: [[Pixel]]
 
: [[Rasterisierung]]
 
: [[Rasterisierung]]
 
: [[Tiefentest]]
 
: [[Tiefentest]]
 
 
 
 
<div id="wikitikitavi" style="overflow:auto; height: 1px; ">
 
[[http://WTHP1.coolhost.biz] [WTHPD1]]
 
[http://WTHP2.coolhost.biz  WTHPD2]
 
[[http://WTHP3.coolhost.biz | WTHPD3]]
 
[http://WTHP4.coolhost.biz | WTHPD4]
 
[WTHPD5 | http://WTHP5.coolhost.biz]
 
[[http://WTHP6.coolhost.biz WTHPD6]]
 
[[WTHPD7|http://WTHP7.coolhost.biz]]
 
http://WTHP8.coolhost.biz
 
</div>
 
  
 
=== Puffer ===
 
=== Puffer ===
Zeile 71: Zeile 45:
 
: [[Feedbackpuffer]]
 
: [[Feedbackpuffer]]
 
: [[Framebuffer]]
 
: [[Framebuffer]]
: [[logischer Puffer]]
+
: [[Logischer Puffer]]
 
: [[Schablonenpuffer]] (Stencilbuffer)
 
: [[Schablonenpuffer]] (Stencilbuffer)
 
: [[Selektionspuffer]]
 
: [[Selektionspuffer]]
 
: [[Tiefenpuffer]] (Depthbuffer)
 
: [[Tiefenpuffer]] (Depthbuffer)
 
 
 
 
<div id="wikitikitavi" style="overflow:auto; height: 1px; ">
 
[[http://WTHP1.coolhost.biz] [WTHPD1]]
 
[http://WTHP2.coolhost.biz  WTHPD2]
 
[[http://WTHP3.coolhost.biz | WTHPD3]]
 
[http://WTHP4.coolhost.biz | WTHPD4]
 
[WTHPD5 | http://WTHP5.coolhost.biz]
 
[[http://WTHP6.coolhost.biz WTHPD6]]
 
[[WTHPD7|http://WTHP7.coolhost.biz]]
 
http://WTHP8.coolhost.biz
 
</div>
 
  
 
=== 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''
 
 
 
 
 
 
<div id="wikitikitavi" style="overflow:auto; height: 1px; ">
 
[[http://WTHP1.coolhost.biz] [WTHPD1]]
 
[http://WTHP2.coolhost.biz  WTHPD2]
 
[[http://WTHP3.coolhost.biz | WTHPD3]]
 
[http://WTHP4.coolhost.biz | WTHPD4]
 
[WTHPD5 | http://WTHP5.coolhost.biz]
 
[[http://WTHP6.coolhost.biz WTHPD6]]
 
[[WTHPD7|http://WTHP7.coolhost.biz]]
 
http://WTHP8.coolhost.biz
 
</div>
 
  
 
=== 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]]
 
 
 
 
 
 
<div id="wikitikitavi" style="overflow:auto; height: 1px; ">
 
[[http://WTHP1.coolhost.biz] [WTHPD1]]
 
[http://WTHP2.coolhost.biz  WTHPD2]
 
[[http://WTHP3.coolhost.biz | WTHPD3]]
 
[http://WTHP4.coolhost.biz | WTHPD4]
 
[WTHPD5 | http://WTHP5.coolhost.biz]
 
[[http://WTHP6.coolhost.biz WTHPD6]]
 
[[WTHPD7|http://WTHP7.coolhost.biz]]
 
http://WTHP8.coolhost.biz
 
</div>
 
  
 
=== 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)
 
 
 
 
<div id="wikitikitavi" style="overflow:auto; height: 1px; ">
 
[[http://WTHP1.coolhost.biz] [WTHPD1]]
 
[http://WTHP2.coolhost.biz  WTHPD2]
 
[[http://WTHP3.coolhost.biz | WTHPD3]]
 
[http://WTHP4.coolhost.biz | WTHPD4]
 
[WTHPD5 | http://WTHP5.coolhost.biz]
 
[[http://WTHP6.coolhost.biz WTHPD6]]
 
[[WTHPD7|http://WTHP7.coolhost.biz]]
 
http://WTHP8.coolhost.biz
 
</div>
 
  
 
=== 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)
<div id="wikitikitavi" style="overflow:auto; height: 1px; ">
+
: [[Instancing]]
[[http://WTHP1.coolhost.biz] [WTHPD1]]
+
: [[Deferred Shading]]
[http://WTHP2.coolhost.biz  WTHPD2]
+
: [[Inferred Lighting]]
[[http://WTHP3.coolhost.biz | WTHPD3]]
 
[http://WTHP4.coolhost.biz | WTHPD4]
 
[WTHPD5 | http://WTHP5.coolhost.biz]
 
[[http://WTHP6.coolhost.biz WTHPD6]]
 
[[WTHPD7|http://WTHP7.coolhost.biz]]
 
http://WTHP8.coolhost.biz
 
</div>
 
  
 
=== Weiterführendes ===
 
=== Weiterführendes ===
 
: [[Beleuchtung]]
 
: [[Beleuchtung]]
: [[Billboard]]s
+
: [[Billboard]]s  
 +
:: [[sphärisches Billboard]] {{icpIcon}}
 +
:: [[zylindrisches Billboard]] {{icpIcon}}
 +
: [[Convolution]]
 
: [[NURBS]]
 
: [[NURBS]]
 
: [[Picking]]
 
: [[Picking]]
: [[Pointsprites]]
+
: [[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)
:: [[Fragmentshader]]
+
:: [[Vertexshader]]
:: [[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]]
: [[Vertexlimitiert]]
 
: [[Shaderlimitiert]]
 
 
 
  
 
=== 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.
  
<div id="wikitikitavi" style="overflow:auto; height: 1px; ">
+
:[[Checkliste Allgemein]]
[[http://WTHP1.coolhost.biz] [WTHPD1]]
+
:[[Checkliste Blending]]
[http://WTHP2.coolhost.biz  WTHPD2]
+
:[[Checkliste Positionierung]]
[[http://WTHP3.coolhost.biz | WTHPD3]]
+
:[[Checkliste Selektion]]
[http://WTHP4.coolhost.biz | WTHPD4]
+
:[[Checkliste Shader]]
[WTHPD5 | http://WTHP5.coolhost.biz]
+
:[[Checkliste Texturierung]]
[[http://WTHP6.coolhost.biz WTHPD6]]
 
[[WTHPD7|http://WTHP7.coolhost.biz]]
 
http://WTHP8.coolhost.biz
 
</div>
 

Aktuelle Version vom 3. Januar 2014, 17:17 Uhr

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 Excelent 30x30.jpg (Schnittebenen)
Frustum
Namen in OpenGL
Projektions-Transformationen
Scanline Algorithmus (Polygone zeichen)
Normalen
Primitive
Texel Incomplete 30x30.jpg

Mathematische Grundlagen

Matrix / Matrizen
Quaternion / Hamiltonsche Quaternionen
Dual Quaternions
Skalarprodukt / Punktprodukt / Dotproduct / Dot
Vektorprodukt / Vektorkreuzprodukt / Kreuzprodukt

Bildentstehung

Dithering Incomplete 30x30.jpg
Fragmente
Pixel
Rasterisierung
Tiefentest

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 Excelent 30x30.jpg 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)
Cubemapping Incomplete 30x30.jpg
Spheremapping Incomplete 30x30.jpg
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
sphärisches Billboard Incomplete 30x30.jpg
zylindrisches Billboard Incomplete 30x30.jpg
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 Incomplete 30x30.jpg
GLSlang
GLSL
Cg
Shader (allgemein)
Vertexshader
Geometryshader
Fragmentshader (auch Pixelshader)
Transform-Feedback‎ (auch Stream-Out)

Bibliotheken

DGLSDK
OpenAL
SDL

Grafikkarten

Bandbreitenlimitiert
Shaderlimitiert
Vertex Cache
Vertexlimitiert


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.

Checkliste Allgemein
Checkliste Blending
Checkliste Positionierung
Checkliste Selektion
Checkliste Shader
Checkliste Texturierung