Herní grafika je o tom namačkat obří kvantum lineární algebry do těch několika milisekund, které nám herní smyčka dává.
2D

Izometrické 2D

Falešné 3D

2.5D

3D
Model Space
World Space
View/Camera Space
Clip Space
View/Screen Space
Perspektivní projekce
Rovnoběžná projekce

Eulerovy úhly
Kvaterniony

Rotoskopingová animace
Keyframy
Skeletální animace
Kombinované animace

Rotoskopie

Klíčové snímky

Skeletální 2D

Skeletální 3D

Kombinovaná
Aplikace
Typy interpolací
Lineární interpolace
Bilineární interpolace
Trilineární interpolace


Žádná interpolace

Konstantní (nejbližší soused)

Bilineární

Kubická








DirectX

OpenGL

Vulkan

Vertex shader
Geometry shader (nepovinný)
Teselační shader (nepovinný)
Pixel (fragment) shader

ASCIIdent
Compute shader
Vertex shader
Teselační shader

Teselace povrchu
Geometry shader

Tráva
Pixel (fragment) shader

Screen Effect
| 1 | #version 150 core |
| 2 | layout(points) in; |
| 3 | layout(line_strip, max_vertices = 11) out; |
| 4 | in vec3 vColor[]; |
| 5 | out vec3 fColor; |
| 6 | const float PI = 3.1415926; |
| 7 | |
| 8 | void main() { |
| 9 | fColor = vColor[0]; |
| 10 | |
| 11 | for (int i = 0; i <= 10; i++) { |
| 12 | // Angle between each side in radians |
| 13 | float ang = PI * 2.0 / 10.0 * i; |
| 14 | |
| 15 | // Offset from center of point (0.3 to accomodate for aspect ratio) |
| 16 | vec4 offset = vec4(cos(ang) * 0.3, -sin(ang) * 0.4, 0.0, 0.0); |
| 17 | gl_Position = gl_in[0].gl_Position + offset; |
| 18 | |
| 19 | EmitVertex(); |
| 20 | } |
| 21 | |
| 22 | EndPrimitive(); |
| 23 | } |

Sprite placement

Raycasting

Rasterizace

Raytracing

1992: Outrunners

1992: Wolfenstein 3D






Princip
Přesné samplování
Fixní samplování

Vertex sh.

Fragment sh.
Shadow mapping














LOD
Texture mapping
Baking




Texturovaná scéna

Zapečená světla

Výsledek
Mipmapping

Nejbližší soused
Bilineární filtrování
Trilineární filtrování
Anisotropické filtrování

Sám dobře víte, že pan náčelník Ištok leží doma s ošklivou tuberou...
To se nestydíte takhle mluvit o jeho choti?Polda 1