Definitionen

Präzise Kurzdefinitionen aller prüfungsrelevanten Fachbegriffe des Kurses, nach Themen gruppiert. Jeder Eintrag: deutscher Begriff mit englischem Fachwort und einer knappen Definition.

Grundlagen

  • Visual Computing (DE) / visual computing - Oberbegriff für Computergrafik (Synthese) und Bildverarbeitung (Analyse); verbindendes Element ist das Pixel.
  • Computergrafik / Bildsynthese (DE) / computer graphics / image synthesis - Weg von der Bildbeschreibung zum Bild, also das algorithmische Einfärben der Pixel.
  • Bildverarbeitung / Bildanalyse (DE) / image processing / image analysis - Weg vom (realen) Bild zur Beschreibung des Bildinhalts, also das algorithmische Analysieren der Pixel (umgekehrte Richtung zur Computergrafik).
  • Bildbearbeitung (DE) / image editing - einfache Manipulation eines Bildes (z. B. heller machen), im Gegensatz zur Bildverarbeitung, die Information extrahiert.
  • Pixel (DE) / pixel (picture element) - kleinstes Bildelement des Ausgabebildes, beschrieben durch seine RGB-Anteile.
  • Rasterisierung (DE) / rasterization - vertex-/objektbasiertes Rendering: Eckpunkte werden auf Pixel projiziert und die Dreiecksflächen gefüllt; Nebeneffekt ist Aliasing.
  • Raytracing (DE) / ray tracing - pixel-/bildbasiertes Rendering: von der Kamera ausgehende Sehstrahlen werden in die Szene verfolgt, Schattenstrahlen prüfen die Verschattung.
  • Path Tracing (DE) / path tracing - Variante des Raytracing mit realistischen Spiegelungen und indirekter Beleuchtung, aber Sampling-Rauschen und hohem Rechenaufwand.
  • Dreiecksgitter (DE) / triangle mesh - Annäherung einer Objektform durch mit Kanten zu Dreiecken verbundene Punkte; je feiner, desto glatter.
  • Convolutional Neural Network (DE) / CNN (ConvNet) - Netzwerk aus gelernten Faltungsmatrizen zur Objekterkennung, aufgeteilt in Feature Extraction und Classification.

Transformationen

  • Affine Transformation (DE) / affine transformation - Oberbegriff für Translation, Rotation und Skalierung; Parallelität und Teilverhältnisse bleiben erhalten.
  • Translation (DE) / translation - Verschiebung durch Vektoraddition p=p+t\vec{p}' = \vec{p} + \vec{t}, ohne Änderung von Orientierung oder Größe.
  • Rotation (DE) / rotation - Drehung um eine Achse relativ zum Ursprung, als Matrixmultiplikation; die Spalten der Rotationsmatrix sind die Bilder der Einheitsvektoren.
  • Skalierung (DE) / scaling - komponentenweise Größenänderung mit Faktoren sx,sy,szs_x, s_y, s_z; wirkt relativ zum Ursprung, sodass nicht im Ursprung liegende Objekte mitwandern.
  • Homogene Koordinaten (DE) / homogeneous coordinates - Erweiterung um eine zusätzliche Koordinate ww, damit auch die Translation als Matrixmultiplikation (in einer 4×44\times 4-Matrix) darstellbar ist.
  • Homogenisierung / perspektivische Division (DE) / homogenization / perspective divide - Rückkehr in den euklidischen Raum durch Teilen aller Koordinaten durch WW (mit W0W\neq 0).
  • Nicht-Kommutativität (DE) / non-commutativity - Matrixmultiplikation ist reihenfolgeabhängig (ABBAA\cdot B \neq B\cdot A); bei Spaltenvektoren steht die zuerst wirkende Transformation ganz rechts.
  • Akkumulierte Matrix (DE) / accumulated matrix - eine einzige Matrix, zu der OpenGL alle Transformationen zusammenmultipliziert und einmal pro Vertex anwendet.
  • Referenzpunkt-Transformation (DE) / reference point transform - Drehen/Skalieren um einen beliebigen Punkt via M=T(+p)RT(p)M = T(+\vec{p})\cdot R\cdot T(-\vec{p}).
  • Szenengraph (DE) / scene graph - gerichteter azyklischer Graph (DAG) aus Gruppen-, Geometrie- und Transformationsknoten; Kinder erben die Transformationen der Eltern, Geometrien liegen in den Blättern und werden per Instanzierung wiederverwendet.
  • Kartesisches Koordinatensystem (DE) / Cartesian coordinate system - Koordinatensystem mit senkrecht aufeinanderstehenden Achsen; rechtshändig (OpenGL, z zum Betrachter heraus) oder linkshändig (DirectX, z in den Bildschirm hinein).

OpenGL & Shader

  • OpenGL (DE) / OpenGL - Spezifikation einer 3D-Grafik-API (rund 250 Befehle); die Implementierung steckt im Grafikkartentreiber.
  • State-Machine (DE) / state machine - Arbeitsprinzip von OpenGL: ein gesetzter Zustand (z. B. gebundenes VBO) bleibt aktiv, bis er umgeschaltet wird; nicht explizit Aktiviertes bleibt aus.
  • Primitiv (DE) / primitive - geometrischer Grundbaustein (Punkte, Linien, Dreiecke); Quad, Quad Strip und Polygon sind seit OpenGL 3.0/3.1 deprecated bzw. entfernt.
  • Vertex / Eckpunkt (DE) / vertex - Punkt, der neben der Position beliebige Attribute (z. B. Farbe, Normale, Texturkoordinaten) speichert; alle Primitiv-Eigenschaften sind daraus ableitbar.
  • Triangle Strip (DE) / triangle strip - Speichertechnik, bei der benachbarte Dreiecke Eckpunkte teilen; pro Strip gilt Vertices=2+nDreiecke\text{Vertices} = 2 + n_{\text{Dreiecke}}.
  • Vertex Buffer Object (DE) / VBO - Speicherpuffer im GPU-Speicher für rohe Geometriedaten, per 3-Schritte-Upload (Gen, Bind, BufferData) gefüllt.
  • Vertex Array Object (DE) / VAO - Objekt, das beschreibt, wie die rohen VBO-Daten zu interpretieren sind (Attributzeiger je Attribut); nur eines ist gleichzeitig aktiv.
  • Index Buffer Object (DE) / IBO (element array buffer) - Puffer mit Indizes auf Vertices im VBO; ermöglicht Vertex-Wiederverwendung, gerendert per glDrawElements.
  • stride / Schrittweite (DE) / stride - Größe eines kompletten Vertex in Bytes (Abstand zum nächsten gleichartigen Attribut).
  • offset / Versatz (DE) / offset - Byte-Position, an der ein Attribut innerhalb des Vertex beginnt (ein float = 4 Byte).
  • Shader (DE) / shader - kleines, in GLSL geschriebenes Programm, das parallel auf der GPU läuft und Daten vor bzw. während des Renderns manipuliert.
  • Vertex Shader (DE) / vertex shader - Pflicht-Stufe pro Vertex; muss die finale homogene Position gl_Position (vec4) setzen.
  • Fragment Shader (DE) / fragment shader - Pflicht-Stufe pro Fragment; muss mindestens eine Output-Variable mit der finalen Fragmentfarbe füllen.
  • Fragment (DE) / fragment - Kandidat für ein Pixel; durchläuft nach dem Fragment Shader noch Tiefentest und Blending.
  • Shaderpipeline (DE) / shader pipeline - feste Abfolge: Vertex, dann optional Tesselation und Geometry, dann Fragment; dazwischen die fixen Stufen Shape Assembly, Rasterization, Tests and Blending.
  • Qualifizierer in/out/uniform (DE) / storage qualifiers - in (READ-ONLY Eingabe der Vorstufe), out (READ/WRITE, automatisch interpoliert weitergegeben), uniform (READ-ONLY, pro Draw-Call konstant, per Name adressiert).
  • Swizzling / Smearing (DE) / swizzling / smearing - Umordnen der Vektorkomponenten (v4.wzyx) bzw. Vervielfachen einzelner Komponenten (v4.xxx) über die Sets .xyzw / .rgba / .stqp.

Kameras & Projektion

  • Normalized Device Space (DE) / normalized device space (NDC) - normierter Zielwürfel [1,1]3[-1,1]^3; nur Vertices darin werden gerendert.
  • Extrinsische Kameraparameter (DE) / extrinsic parameters - Position und Ausrichtung der Kamera (Kamerazentrum cc, Betrachtungspunkt aa, up-Vektor uu), umgesetzt in der View-Matrix.
  • Intrinsische Kameraparameter (DE) / intrinsic parameters - legen fest, welcher Bereich der Szene gerendert wird (Öffnungswinkel, Brennweite), umgesetzt in der Projektionsmatrix.
  • View-Matrix (DE) / view matrix - transformiert die gesamte Szene in den Camera Space (Kamera im Ursprung, Blick entlang z-z); Produkt aus Rotation der Kameraachsen und Translation um c-c, erzeugt per lookAt.
  • Projektionsmatrix (DE) / projection matrix - bildet das Sichtvolumen auf den NDC-Würfel ab; entweder orthografisch (MorthoM_{ortho}) oder perspektivisch (MpersM_{pers}).
  • Orthografische Projektion (DE) / orthographic / parallel projection - parallele Projektionsstrahlen ohne perspektivische Verkleinerung; quaderförmiges Rendervolumen.
  • Perspektivische Projektion (DE) / perspective projection - Strahlen treffen sich in einem Fluchtpunkt, entferntere Objekte erscheinen kleiner; Rendervolumen ist ein Pyramidenstumpf (Frustum).
  • Lochkamera (DE) / pinhole camera - physikalisches Modell der perspektivischen Projektion; Strahlen kreuzen sich im Loch und erzeugen ein umgekehrtes Bild auf der Bildebene.
  • Strahlensatz (DE) / intercept theorem / similar triangles - Grundlage der perspektivischen Verkleinerung: py=npy/pzp'_y = n\,p_y / p_z (aus ähnlichen Dreiecken); die Division durch pzp_z erzeugt die Verkleinerung.
  • View-Frustum (DE) / view frustum - pyramidenstumpfförmiger Sichtbereich zwischen near- und far-Clipping-Ebene; nur Geometrie darin wird gerendert.
  • Vollständige Transformationskette (DE) / full transformation chain - p=MprojVMModelp\mathbf{p}' = M_{proj}\cdot V \cdot M_{Model}\cdot \mathbf{p}; im Shader projection * view * model * vertex, wirkt von rechts nach links.
  • Seitenverhältnis (DE) / aspect ratio - Verhältnis Breite zu Höhe; muss bei Kamera und Fenster übereinstimmen, sonst entstehen Verzerrungen.

Rendering

  • Rendering-Pipeline (DE) / rendering pipeline - feste Abfolge Vertex Processor, Rasterizer, Fragment Processor, Output Merging, die aus Vertices/Primitiven ein 2D-Farbarray erzeugt.
  • Koordinatenräume (DE) / coordinate spaces - Kette Local, World, Camera, Clipping, NDC, jeweils per Matrix überführt (Model-, View-, Projektionsmatrix, Homogenisierung).
  • Viewport-Transformation (DE) / viewport transformation - bildet den NDC [1,1]3[-1,1]^3 auf Fensterkoordinaten [0..w]×[0..h]×[0..1][0..w]\times[0..h]\times[0..1] ab; erst hier wird die Ausgabe auflösungsabhängig.
  • Rasterisierung (DE) / rasterization - Umwandlung der Vektorgeometrie in diskrete Fragmente durch Kantenbestimmung und Interpolation entlang der Rasterzeilen (Scanlines).
  • Lineare Interpolation (DE) / linear interpolation - Interpolation entlang einer Strecke (1D): F(t)=(1t)F(0)+tF(1)F(t) = (1-t)\,F(0) + t\,F(1); Gewicht von F(0)F(0) ist (1t)(1-t).
  • Bilineare Interpolation (DE) / bilinear interpolation - Interpolation über eine Fläche (2D), z. B. innerhalb eines Dreiecks.
  • Tiefentest (DE) / depth test - Verfahren zur Sichtbarkeitsbestimmung der Fragmente ohne globales Sortieren; aktiviert per glEnable(GL_DEPTH_TEST).
  • Painter's Algorithm (DE) / painter's algorithm - naives, reihenfolgeabhängiges Überzeichnen; versagt bei sich schneidenden Polygonen und wird ohne Tiefentest verwendet.
  • z-Buffer / Tiefenpuffer (DE) / z-buffer - speichert pro Fragment den Tiefenwert (Abstand zur Kamera); ein Pixel wird nur aktualisiert, wenn der neue z-Wert geringer (näher) ist (GL_LESS).
  • Fragment vs. Pixel (DE) / fragment vs. pixel - ein Fragment ist die Vorstufe eines Pixels; nicht jedes Fragment wird zum Pixel (z-Buffer verwirft), mehrere Fragmente können zu einem Pixel beitragen (Transparenz).

Beleuchtung & Textur

  • BRDF (DE) / bidirectional reflectance distribution function - 4D-Funktion, die exakt beschreibt, wie viel einfallendes Licht in eine Richtung reflektiert wird; zu datenintensiv zum Speichern.
  • Phong'sches Reflexionsmodell (DE) / Phong reflection model - approximiert die BRDF als Summe aus ambientem, diffusem und spekularem Term (optional emissiv): Lo=MdLa+i(Mdcosα+Mscoskβ)LiL_o = M_d L_a + \sum_i (M_d\cos\alpha + M_s\cos^{k}\beta)\,L_i.
  • Diffuse Reflexion (DE) / diffuse reflection - matte, richtungsunabhängige Reflexion; Intensität proportional zu cosα=NL\cos\alpha = N\circ L (Winkel zwischen Normale und Lichtvektor).
  • Spekulare Reflexion (DE) / specular reflection - spiegelnde Reflexion, die das Glanzlicht erzeugt; abhängig von coskβ\cos^{k}\beta mit β\beta zwischen Sichtvektor VV und reflektiertem Lichtvektor RR.
  • Ambiente Beleuchtung (DE) / ambient lighting - richtungsunabhängiger Term MdLaM_d\cdot L_a, der die indirekte Beleuchtung grob imitiert und Schattenseiten aufhellt.
  • Lambertsches Kosinusgesetz (DE) / Lambert's cosine law - die Intensität diffuser Reflexion ist proportional zu cosα\cos\alpha, da sich die gleiche Photonenzahl auf die projizierte Fläche cosαA\cos\alpha\cdot A verteilt.
  • Shininess / Glanzfaktor (DE) / shininess - Exponent kk der spekularen Reflexion; hohes kk ergibt kleine, harte Highlights, niedriges kk große, weiche.
  • Normalmatrix (DE) / normal matrix - (M1)(M^{-1})^\top, mit der Normalen korrekt transformiert werden, damit sie nach nicht-uniformer Skalierung senkrecht bleiben.
  • Flat / Gouraud / Phong Shading (DE) / flat / Gouraud / Phong shading - Shading-Verfahren nach Granularität der Normalen: pro Fläche (flat), pro Vertex mit Interpolation (Gouraud), pro Pixel/Fragment (Phong); Shading ist nicht dasselbe wie das Phong-Reflexionsmodell.
  • Normal Mapping (DE) / normal mapping - Simulation von Unebenheiten durch pro Pixel als RGB-Textur gespeicherte Normalen, ohne die Geometrie zu ändern.
  • Textur (DE) / texture - meist 2D-Bild, das das Erscheinungsbild einer Oberfläche getrennt von der Geometrie speichert und per Texturkoordinaten aufgebracht wird.
  • Texel (DE) / texel (texture element) - einzelnes Bildelement einer Textur, angesprochen über Texturkoordinaten (s,t)[0,1]2(s,t)\in[0,1]^2.
  • Texture Wrapping (DE) / texture wrapping - Verhalten außerhalb [0,1][0,1]: GL_CLAMP_TO_EDGE klemmt auf den Rand, GL_REPEAT kachelt die Textur.
  • Mipmap (DE) / mipmap - Auflösungspyramide vorgemittelter Texturstufen (Level 0 = voll, je Stufe halbe Kantenlänge) zur Minification; trilinear = GL_LINEAR_MIPMAP_LINEAR.
  • Sampler (DE) / sampler - Texturzugriffstyp im Fragment Shader (sampler2D); das Uniform verweist auf die Texture Unit, nicht auf die Textur-ID.

Farbräume

  • RGB-Farbraum (DE) / RGB color space - hardwareorientiertes, additives Modell; jede Farbe ist ein Vektor [r,g,b]t[r,g,b]^t im Einheitswürfel mit Werten in [0,1][0,1].
  • Additive vs. subtraktive Mischung (DE) / additive vs. subtractive mixing - additiv (Licht/Display, wird heller, R+G+B=Weiß) gegenüber subtraktiv (Pigment/Druck, wird dunkler, C+M+Y=Schwarz).
  • Unbuntgerade / Grauachse (DE) / achromatic (gray) axis - Raumdiagonale des RGB-Würfels von Schwarz nach Weiß; alle Grautöne erfüllen r=g=br=g=b.
  • CMYK (DE) / CMYK - subtraktives Druckmodell aus Cyan, Magenta, Yellow plus Key (Schwarz); reines Schwarz ist (0,0,0,1)(0,0,0,1).
  • Hardware- vs. wahrnehmungsorientiert (DE) / hardware- vs. perception-oriented - RGB, RGBA, CMY, CMYK (an Geräten orientiert) gegenüber HSV, YCbCr, CIE XYZ, CIELab (an der Wahrnehmung orientiert, trennen Chrominanz und Helligkeit).
  • HSV (DE) / hue, saturation, value - wahrnehmungsorientiertes Modell mit Farbton HH (Farbwinkel 00^\circ Rot, 120120^\circ Grün, 240240^\circ Blau), Sättigung S=1min/maxS = 1 - \min/\max und Helligkeit V=max(r,g,b)V = \max(r,g,b).
  • Chrominanz vs. Intensität (DE) / chrominance vs. intensity - Farbigkeit (Farbton + Sättigung) gegenüber Helligkeit; wahrnehmungsorientierte Modelle trennen beide gezielt.
  • YCbCr (DE) / YCbCr - wahrnehmungsorientiertes Modell mit Grundhelligkeit Y0,3R+0,6G+0,1BY\approx 0{,}3R + 0{,}6G + 0{,}1B sowie den Chrominanzachsen Cb (Blau-Gelb) und Cr (Rot-Grün); Basis für JPEG/MPEG und Chroma-Subsampling.
  • CIE XYZ / CIELab (DE) / CIE XYZ / CIELab - geräteneutrale Farbräume, die alle wahrnehmbaren Farben erfassen; im CIELab (L* Helligkeit, a* Rot-Grün, b* Gelb-Blau) ist die geometrische Distanz wahrnehmungslinear.
  • Farbgamut (DE) / color gamut - Untermenge des Farbraums, die ein Gerät darstellen oder erfassen kann; Größenverhältnis CIE > RGB > CMY.

Bildverarbeitung

  • Punktoperator (DE) / point operator - berechnet den neuen Grauwert eines Pixels allein aus dessen altem Grauwert, ohne Nachbarn; Bildgröße und -geometrie bleiben unverändert.
  • Lokaler Operator (DE) / local operator - berechnet den neuen Pixelwert aus dem Pixel und seiner Nachbarschaft (N4 oder N8); Kernwerkzeug ist die Faltung.
  • Histogramm (DE) / histogram - Häufigkeitsverteilung der Grauwerte; misst Kontrast (Spannweite gmaxgming_{max}-g_{min}) und Dynamik (Anzahl verschiedener Grauwerte), sagt aber nichts über den Bildinhalt.
  • Grauwerttransformation / LGT (DE) / gray-value transform - lineare Punktoperation g=gmult+addg' = g\cdot\text{mult} + \text{add}; die Kontrastspreizung verteilt [gmin,gmax][g_{min},g_{max}] auf den darstellbaren Bereich, ohne zu verfälschen.
  • gg'-Diagramm (DE) / transfer function diagram - bildet Eingabegrauwert gg (x-Achse) auf Ausgabegrauwert gg' (y-Achse) ab; oberhalb der Diagonale = heller, negative Steigung = invertiert, Steigung > 1 = kontrastreicher.
  • Gamma-Korrektur (DE) / gamma correction - nichtlineare Punktoperation g/gMAX=(g/gMAX)1/γg'/g'_{MAX} = (g/g_{MAX})^{1/\gamma}, die das nichtlineare Sensor-/Displayverhalten ausgleicht; verfälscht Bildinformation.
  • Grauwerttransformation (allg.) (DE) / gray-value transformation - jede pixelweise Abbildung des Grauwerts (Helligkeit, Invertierung, Binarisierung, Kontrast, Gamma).
  • Faltung (DE) / convolution - gewichtete Summe aus Pixel und Nachbarn; e(i,j)=klg(i1+k,j1+l)f(k,l)e(i,j) = \sum_{k}\sum_{l} g(i-1+k,\,j-1+l)\cdot f(k,l).
  • Kernel / Faltungsmatrix (DE) / kernel - kleine (meist 3×33\times 3) Gewichtsmatrix, die über das Bild geschoben wird; ungerade Größe garantiert genau ein Zentrum.
  • Mittelwert- / Gauss-Filter (DE) / mean / Gaussian filter - Weichzeichner: Mittelwert (19\tfrac{1}{9}, alle Einsen) mittelt homogen, Gauss (116\tfrac{1}{16}) gewichtet die Mitte stärker; beide verwischen Kanten.
  • Differenzoperator / Sobel (DE) / difference / Sobel operator - Kantendetektoren über die 1. Ableitung; Differenz markiert 1 Pixel breit aber rauschanfällig, Sobel mit Pufferzeile ist rauschrobust, aber breiter.
  • Laplace-Operator (DE) / Laplace operator - isotroper Kantendetektor über die 2. Ableitung; die Kante liegt am Nulldurchgang, Kernel [010;141;010][0\,1\,0;\,1\,{-}4\,1;\,0\,1\,0] mit Summe 0.
  • Sharpening-Filter (DE) / sharpening filter - Kontrastverbesserung [010;151;010][0\,{-}1\,0;\,{-}1\,5\,{-}1;\,0\,{-}1\,0] (invertierter Laplace plus Identität); mit n=1n=1 helligkeitserhaltend.
  • Medianoperator (DE) / median filter - nichtlinearer Rangordnungsoperator, der den Zentralpixel durch den mittleren sortierten Wert (g4g_4 bei N8) ersetzt; entfernt Impulsrauschen ohne Kantenverwischung.
  • Dilatation / Erosion (DE) / dilation / erosion - Rangordnungsoperatoren: Dilatation nimmt das Maximum (g8g_8, helle Bereiche wachsen), Erosion das Minimum (g0g_0, dunkle Bereiche wachsen).
  • Opening / Closing (DE) / opening / closing - Opening = Erosion dann Dilatation (entfernt Rauschen), Closing = Dilatation dann Erosion (schließt Lücken); die Reihenfolge ist ergebnisrelevant.
  • Grauwerttransformation vs. Faltung (DE) / point vs. local - Grauwerttransformation ist pixelweise (Punktoperator), Faltung bezieht die Nachbarschaft ein (lokaler Operator).
  • Zusammenhangskomponente / ZHK (DE) / connected component - Gruppe zusammenhängender gleichfarbiger Pixel; Vorder- und Hintergrund müssen mit entgegengesetzter Nachbarschaft (N4 vs. N8) bestimmt werden, sonst wird die Aufteilung topologisch inkonsistent.
  • Flood Fill / Rekursives Fluten (DE) / flood fill - rekursiver Algorithmus, der eine ZHK bildet und alle zusammenhängenden Vordergrundpixel mit derselben Marke (label) kennzeichnet.
  • Binarisierung / Segmentierung (DE) / binarization / segmentation - Schwellwertbildung (gSg_S aus dem Histogramm) bzw. inhaltliche Zusammenfassung von Pixeln mit homogenen Eigenschaften zu Objekten.