mirror of
https://github.com/theoleuthardt/hwr-notes.git
synced 2026-06-06 02:51:07 +00:00
96 lines
No EOL
3.3 KiB
Markdown
96 lines
No EOL
3.3 KiB
Markdown
# Klausurvorbereitung
|
|
|
|
- Es gibt keine Minuspunkte, aber halbe Punkte
|
|
- Antwortlänge an Punkte pro Frage anpassen
|
|
- Reihenfolgen und Sortierungsfragen auch werden auch dabei sein
|
|
- Datentypen oder Enumwerte aus D3D9/D3D11 (z. B. WMQUITE, WMDESTROY, WMEXIT)
|
|
- History-Inhalte aus den Folien aus den Folien kommt nicht
|
|
|
|
**Transformation**:(Local Space)
|
|
- World
|
|
- View
|
|
- Projection
|
|
|
|
**Zugelassen für Rechnungen**:
|
|
- Taschenrechner (nicht programmierbar)
|
|
- Windows oder Physisch
|
|
|
|
### Themengebiete:
|
|
##### Generell:
|
|
- Graphics C ++ (z. B. warum C++ benutzen)
|
|
- Unterschied zwischen Pointer und Handle, Pointer-Pointer
|
|
- COM (Component Object Model von Windows)
|
|
- generelle Graphics Programmingsachen
|
|
##### Fenster:
|
|
- Fensternachrichten (Typen aus Vorlesungsfolien)
|
|
- Messagequeue
|
|
- Wozu braucht man Nachrichten?
|
|
- Messagequeue-Funktion: Window Prop
|
|
##### Graphics -API:
|
|
- Welche gibt es?
|
|
- Direct 3D
|
|
- Fixed Function vs. Programmable Pipeline
|
|
- Elemente der Pipelines: Vertex, Mesh, Transformation, Spaces, Projektion, Primitive Types, Unterschied List vs. Strip, Texture Mapping (Was ist eine Normale?)
|
|
- Homogenisierte Koordinaten und dessen Bedeutung
|
|
- Berechnungen: Koordinaten, FPS, Deltatime, Größe von Strukturen
|
|
- Beispiele:
|
|
- Indexbuffers -> kibiByte beachten -> Indices zählen
|
|
- Vertexbuffer berechnen (Umschrieben, nicht direkt gestellt)
|
|
- Texturebuffer berechnen
|
|
- Mipmapping (zählen der Stufen)
|
|
- Textures:
|
|
- UV-Mapping
|
|
- UV-Tiling (Address Modes)
|
|
- Bild von Modell und gefragt wie viele Verticies benötigt werden und welche
|
|
- Lighting:
|
|
- Sources, Lichtbestandteile (Ambient Light, Diffuse Light, Specular Light, Emission Light
|
|
- Vertex- vs. Pixel-Lighting
|
|
- Stages:
|
|
- Screen-Stage
|
|
- Rasterizer-Stage: Front faces /Back faces
|
|
|
|
##### Direct3D/DirectX:
|
|
- Direct3D9 and Direct3D11
|
|
- ID3D11 Device Context, IDirectDevice9
|
|
- konkrete Datentypen aus Framework
|
|
- ID3D11 Device vs. ID3D11 Device Context
|
|
##### Shader:
|
|
- Shadertypen (6):
|
|
- Vertex shade
|
|
- Hall Shader
|
|
- Domain Shader
|
|
- Geometry Shader
|
|
- Pixelshader
|
|
- Computeshader
|
|
- zu jedem Shader Grundfunktionalitäten, wozu
|
|
sie da sind
|
|
- Shader Ressources (Vertexbuffer, Indexbuffer, Constantbuffer)
|
|
- HSL: High Level Shader Language, genereller Sinn von Semantiken in HSL
|
|
|
|
|
|
##### Verticies berechnen:
|
|
- Ziel: Lichtberechnung und Texturierung
|
|
1. Verticiesanzahl berechnen: Verticies = Ecken (4 pro Fläche)
|
|
- 4 Verticies * 6 Flächen = **24 Verticies**
|
|
- Eine Normale pro Fläche wegrn des Lichts, deswegen 24 Verticies statt 8
|
|
2. Vertexgröße:
|
|
- Position: 3 Floats (x,y,z)
|
|
- Normale: 3 Floats (x,y,z)
|
|
- UV-Koordinaten: 2 Floats
|
|
- 1 Float = 4 Byte
|
|
↳ 8 Floats. 4 Byles: **32 Byte pro Vertex**
|
|
- Verfexcolor: 4 Floats
|
|
- Grafikkarte ist auf Floats optimiert
|
|
3. Vertexbuffergröße:
|
|
- 24 Vertexe * 32 Byte pro Vertex = **768 Byte**
|
|
- 2 Byle = 1 Word
|
|
##### Indexbuffer berechnen:
|
|
- Primitive Type Lists: Triangle List (oder Linelist, Pointlist)
|
|
- 6 Flächen, 2 Dreiecke pro Fläche
|
|
- Mehrfachverwendung der Verticies
|
|
- Zusatzinfos nötig für die Berechnung: Wie viele Flächen und welche Form haben die Flächen
|
|
- wenn die Wahl frei steht: Triangle List (haben wir in der Vorlesung immer benutzt)
|
|
- Bytegröße selbst wählen: Anzahl der Indicies muss in die Bytegröße passen
|
|
- Berechnung:
|
|
1. 12 Dreiecke * 3 Ecken = 36 Indicies
|
|
2. 36 Indicies * 2 Byte = **72 Byte** |