Einleitung
Gliederung OpenGL Realismus Material Beleuchtung Schatten Echtzeit Daten verringern Grafik Hardware Beispiel CryEngine 2 Kristian Keßler
OpenGL Was ist OpenGL? Grafik API plattform- und programmiersprachenunabhängig für viele Plattformen implementiert Wie funktioniert OpenGL?
OpenGL Texture Texture Memory Memory Vertices Pixel Groups Fragments Textures ( Geometry ) ( Geometry ) Per-Vertex Operations Per-Vertex Operations Primitive Assembly Primitive Assembly Clip Project Clip Viewport Project Viewport Cull Cull ( Geometry ) ( Geometry ) Rasterize Rasterize Fragment Processing Fragment Processing Per- Fragment Per- Operations Fragment Operations Frame Buffer Frame Operations Buffer Operations App. App. Memory Memory Pixel Unpack Pixel Transfer Pixel Transfer ( Pixels ) ( Pixels ) Frame Buffer Frame Buffer ( Pixel ) ( Pixel ) Pixel Pack Pixel Pack Read Control Read Control
Realismus Der Weg zu mehr Realismus: Materialeigenschaften Bump Mapping Environment Mapping materialabhängige Beleuchtung Schatten Shadow Z-Buffer Shadow Volumes
Realismus Bump Mapping
Realismus Bump Mapping Varianten: Height Field Bump Map, Offset Vector Bump Map
Realismus Environment Mapping Varianten: Cubic Mapping, Shere Mapping
Realismus - Beleuchtungsmodelle lokale Beleuchtung ambientes, diffusses, spiegelndes Licht Bidirektionale Reflektanzverteilungs- ( BRDF ) funktion Beleuchtungsmodelle ( Ward empirische (Bsp.: ( Cook-Torrance physikalische (Bsp.:
Realismus - Schatten Shadow Z-Buffer Shadow Volumes
Echtzeit Wie ist es möglich, dass komplexe Techniken in Echtzeit dargestellt werden können? Billboards Raumaufteilungstechniken Hidden Surface Removal Level of Detail Grafik Hardware
Echtzeit - Billboards
Echtzeit - Raumaufteilungstechniken Octrees Binary Space Partitioning Trees
Echtzeit Hidden Surface Removal Culling Z-Buffer
Echtzeit Level of Detail
Echtzeit Grafik Hardware
Echtzeit Grafik Hardware Texture Texture Memory Memory Vertices Pixel Groups Fragments Textures ( Geometry ) ( Geometry ) Vertex Processor Primitive Assembly Primitive Assembly Clip Project Clip Viewport Project Viewport Cull Cull ( Geometry ) ( Geometry ) Rasterize Rasterize Fragment Processor Per- Fragment Per- Operations Fragment Operations Frame Buffer Frame Operations Buffer Operations App. App. Memory Memory Pixel Unpack Pixel Transfer Pixel Transfer ( Pixels ) ( Pixels ) Frame Buffer Frame Buffer ( Pixel ) ( Pixel ) Pixel Pack Pixel Pack Read Control Read Control
Echtzeit Grafik Hardware Pixel-, Vertex-, Geometry-, Unified- Shader Shader-Programmierung Assembler ( Graphics Cg (C for RenderMan Shading Language ( HLSL ) High Level Shading Language ( GLSL ) OpenGL Shading Language Tools zur Programmierung
Beispiel CryEngine 2 CryEngine 2 kommerzielle Game Engine offener Sourcecode und Dokumentation beinhaltet: Grafik Engine Netzwerk Engine Physik Engine Sound Engine KI Engine viele Entwicklungswerkzeuge ( III/07 ) Basis von Crysis
Beispiel CryEngine 2 Normal Maps Real und Time Parallax Ambient Occlusion Maps Maps Real Time Terrain Erweitertes Lighting LOD Beleuchtungsmodell und Managment Dynamic Feature Soft Shadows
Fragen?