Wiederholung Vorlesung Thorsten Grosch
Klausur 2 Zeitstunden (26.7., 8:30 10:30 Uhr, G29/307) Keine Hilfsmittel Kein Bleistift / Rotstift verwenden 3 Aufgabentypen Wissensfragen zur Vorlesung (ca. 1/3) Varianten von Übungsaufgaben (ca. 1/3) Transferfragen (ca. 1/3) Programmierung gvon Shader Programm bzw. CUDA Kernel Kein Punktabzug bei kleinen Syntaxfehlern OpenGL Anweisungen als Pseudocode 2
Einschränkungen Einschränkungen gelten nur für Hauptklausur, nicht für Nachprüfungen 3
OpenGL Der Weg vom Eckpunkt zum Pixel Rotation, Translation des Modells Kamera setzen Beleuchtung Perspektivische oder Orthographische Projektion Clipping OpenGL (Transformations) Pipeline Wie funktioniert die Rasterisierung? Was passiert wann, wo und warum? Wo befinden sich die Shader? Für perspektivische Projektion Umrechnung in Pixelkoordinaten Texturierung 4
OpenGLPipeline Transformation Welt Kamera Modelview Projektion (ortho / perspektivisch) kanonisches Volumen Keine Formeln für perspekt. Projektion Rasterisierung i wie wird ein Dreieck gezeichnet Vektorrechnung Vektoren, etoe, Matrizen, e, Fläche, äce, Winkel, e, Länge, äge,saapodut, Skalarprodukt, Kreuzprodukt, Keine Hierarchischen h Transformationen, Beleuchtung programmieren 5
Pixel Pipeline kennen Pixel (Texturierung, Fog) Scissor test Alpha Test (RGBA) Stencil Test LogicOP Framebuffer Depth Test Dithering (RGBA) Blending (RGBA) 6
Fortgeschrittene OpenGLProgrammierung Blending Blending Equation kennen Wichtigste Src/Dst Faktoren (One, Src/Dst Alpha, OneMinusSrc/dstAlpha, src/dstcolor) Logic Operations Anwendungen kennen, wichtigste Operationen And/Or/Xor Kein Anti-Aliasing, kein Alpha-Test Display Lists Eigenschaften kennen, keine Programmierung Vertex Buffer Objects Eigenschaften kennen, keine Programmierung Stencil Buffer Anwendungen kennen, keine Programmierung mit StencilFunc/StencilOp 7
Vertex Shader Aufgaben Position in der OpenGL Pipeline Einschränkungen Ein/Ausgaben Typische Anwendungen kennen Programmierung in GLSL z.b. Pumping Teapot uniform / varying variablen 8
Fragment Shader Aufgaben Position in der OpenGL Pipeline Einschränkungen Ein/Ausgaben Typische Anwendungen kennen Programmierung in GLSL z.b. Glowing Teapot uniform / varying variablen Sampler 9
Geometry Shader Aufgaben Position in der OpenGL Pipeline Einschränkungen Ein/Ausgaben Typische Anwendungen kennen Programmierung in GLSL z.b. Visualisierung der Flächen- bzw. Eckpunktnormalen Keine Adjazenzinformation auswendig lernen 10
Tessellation Shader 3 Stufen und ihre Aufgaben kennen Position in der OpenGL Pipeline Einschränkungen, Vor/Nachteile Ein/Ausgaben Typische Anwendungen kennen Keine Programmierung Keine Skizzen der Tessellierung für inner/outer Werte 11
Shader Programmierung Multi-pass Rendering Framebuffer Objects Render-to-texture Deep Framebuffer Multiple Render Targets, wann eingesetzt Shader zur Erzeugung der Buffer kennen Transform Feedback Kennen Keine Programmierung 12
GPGPU Scatter Reduce Voxelisierung Prinzip kennen, keine Programmierung Occlusion Query Pi Prinzip i kennen, keine Programmierung Buffer Objects Verschiedene Typen kennen, keine Programmierung Keine Fragen zu DirectX 13
CUDA Programmiermodell kennen Grid / Block / Kernel / Speichertypen kennen Größe / Geschwindigkeit / Cache / Gültigkeitsbereich / If Infos aus Folien Fli verwenden (ii (einige Äd Änderungen in neuer CUDAV Version) Streams & Page Locked Memory kennen, keine Programmierung Kernel Funktion für gegebenes Problem programmieren Keinen CPU-Anteil programmieren (memcopy ) Interessante Programme Parallele Addition von Arrays Skalarprodukt (einfache Variante für kleine Arrays) 14
CUDA Programmierung Arbeiten auf 1D / 2D Grid An welcher Position befinde ich mich? z.b. Swirl Aufgabe, Filter, Wärmeausbreitung Einsatz des geeigneten Speichers Speziell Shared Memory Synchronisation Texture Memory, 1D Texturen (keine 2D Texturen) Atomics Lock / Unlock kennen, keine Programmierung (CAS ) 15
Physikalische h Simulationen i Keine Formeln, Kräfte, Iterationsverfahren auswendig lernen Formeln sind in Aufgabe vorgegeben Programmierung mit 2D Array Beispiel Wärmeausbreitung Texturzugriff, 1DTextur Ping-Pong Rendering Keine Fragen zu N-Body Problem Nur Einsatz von Shared Memory interessant essa t Keine Fragen zu Masse-Feder-System Kein Micro Rendering 16
Parallele l Programmierung Bitonic Merge Sort am Beispiel durchführen Anwendung, Eigenschaften Keine Programmierung, kein CUDA Programm erklären Bank Conflicts Pi Prinzip i kennen Am Beispiel erklären ob Conflict vorhanden Scan Pseudocode: Einfacher paralleler Scan Einfacher paralleler Scan am Beispiel durchführen Anwendungen, Eigenschaften Kein Work-Efficient Scan 17
Ende der Vorlesung Bitte Evaluation ausfüllen Nächsten Donnerstag (7.7.) Vorstellung der Projekte Viel Glück bei der Klausur! 18