Computer Graphics and Animation in Games



Ähnliche Dokumente
Seminar Game Development Game Computer Graphics. Einleitung

Computer Graphics Shader

Softwareprojekt Spieleentwicklung

CHARACTER ANIMATION in 3D Studio Max. Ulrike Martus

Deformation Grundlagen Autodesk Maya. Grundlagen. Version Ingo Clemens brave rabbit

Computer-Graphik I Transformationen & Viewing

Animation ist das Erzeugen von Filmen mit Hilfe der Computergrafik. Objekte bewegen sich hierbei oder Beleuchtung, Augpunkt, Form,... ändern sich.

Asteroids3D Seminar: Game Programming. Anita Dieckhoff, Pedro Flemming, Jan Ole Vollmer Betreuung: Christine Lehmann

RTT DeltaGen Suite. Materialeinstellungen für OpenGL, RTT RealTrace & Global illumination. Copyright 2010 by Realtime Technology AG

Shader. Computer Graphics: Shader

OpenGL. (Open Graphic Library)

Seminar SS 2006 Intelligent Virtual Characters

Non-Photorealistic Rendering

Künstliches binäres Neuron

Volumen Visualisierung

ROOT Tutorial für D. Liko

Algorithms & Datastructures Midterm Test 1

EchoLink und Windows XP SP2

Diplomarbeit. Neue Möglichkeiten durch programmierbare Shader. Unter der Leitung von: Prof. Dr.-Ing. Detlef Krömker

Texture Based Direct Volume Rendering

MF Breadcrumbs. Sergej Schefer & Fabian Marx

Einführung in die Robotik Kinematik. Mohamed Oubbati Institut für Neuroinformatik. Tel.: (+49) 731 / mohamed.oubbati@uni-ulm.de

Rendering Grundlagen Autodesk Maya. Grundlagen. Version Ingo Clemens brave rabbit

Jörn Loviscach Hochschule Bremen

ANALYTISCHE CHEMIE I. Trennmethoden. 1. Grundlagen Chromatographie WS 2004/2005

P2P-Netzwerke für dynamische 3D-Szenen

Computergrafik Universität Osnabrück, Henning Wenke,

6.2 Scan-Konvertierung (Scan Conversion)

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

computer graphics & visualization

Universität Trier FB IV Mathematik PS Mathematics for 3D Game Programming & Computer Graphics - WS 07/08 Seminarleiter: Prof. Dr.

Es können nur Werte ausgelesen werden, Es kann -NICHT- geschaltet werden!!

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen

Terrain-Rendering mit Geometry Clipmaps

Computergraphik II. Computer-Animation. Oliver Deussen Animation 1

SMART Newsletter Education Solutions April 2015

Tag der Umweltmeteorologie Michael Kunz

MapReduce und Datenbanken Thema 15: Strom bzw. Onlineverarbeitung mit MapReduce

Update V2.3 B4000+ Firmware

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

Summer Workshop Mehr Innovationskraft mit Change Management

Lokale Installation von DotNetNuke 4 ohne IIS

Karten-Freischaltung mit dem UNLOCK MANAGER

Einkommensaufbau mit FFI:

Wie Google Webseiten bewertet. François Bry

Graphic Coding. Klausur. 9. Februar Kurs A

V 2 B, C, D Drinks. Möglicher Lösungsweg a) Gleichungssystem: 300x y = x + 500y = 597,5 2x3 Matrix: Energydrink 0,7 Mineralwasser 0,775,

A Vortex Particle Method for Smoke, Fire, and Explosions

s.beat DAP-10X White Paper USB Stromversorgung am Apple Macintosh und deren Auswirkung

Grundlegende Algorithmen

Titration einer Säure mit einer Base

Video Line Array Highest Resolution CCTV

Vorkurs C++ Programmierung

Dynamic Ressource Management

8 Grundlagen zur OrCAD Software (Version 16.5)

AJAX DRUPAL 7 AJAX FRAMEWORK. Was ist das Ajax Framework? Ein typischer Ablauf eines Ajax Requests Die Bestandteile des Ajax Frameworks.

SemTalk Services. SemTalk UserMeeting

Lineare Gleichungssysteme

Rapide An Event-Based Architecture Definition Language

THEMA: "SAS STORED PROCESSES - SCHNELL GEZAUBERT" HELENE SCHMITZ

Android Remote Desktop & WEB

Kurzanleitung um Transponder mit einem scemtec TT Reader und der Software UniDemo zu lesen

Mikrocontroller Grundlagen. Markus Koch April 2011

Erinnerung. Arbeitsschritte der Computergraphik. Modellierung. Animation. Rendering. Ausgabemedium. Generierung

Im Original veränderbare Word-Dateien

"Memory Stick" zur Programmierung der comfort 8+ Lichtsteuranlage mit PC Software "scenes editor"

Lasersteuerung. Themengruppen FTDI - Interface ILDA Format Ausgabensteuerung Figurenerstellung Lasershowerstellung Lasershowarten Software / Community

Entwicklung einer Programmbibliothek zur Simulation von Hautdeformation durch Knochen und Muskeln

Title. Power-to-Design circuits. HyDraw CAD 600 What s New 1 of 29

Fachdidaktik der Informatik Jörg Depner, Kathrin Gaißer

Spline Morphing. Softwarepraktikum im IWR. Carl Friedrich Bolz. Carl Friedrich Bolz

Softwareupdate-Anleitung // AC Porty L Netzteileinschub

Die Windows 7 Sicherung im Detail

11. Aufgabenblatt

Robotik-Praktikum: Ballwurf mit dem Roboterarm Lynx6 Modellbeschreibung. Julia Ziegler, Jan Krieger

Szenengraph-Architekturen im Kontext von VR- und AR-Anwendungen

Software Engineering. Zur Architektur der Applikation Data Repository. Franz-Josef Elmer, Universität Basel, HS 2015

SolarWinds Engineer s Toolset

SIMULATION. example Data Transfer (XDT) Protocol. entwickelt im Rahmen der Bachelor-Arbeit. von. Tobias Weimann. User-Manual

Einführung in die Programmierung

Methoden zur Visualisierung von Ergebnissen aus Optimierungs- und DOE-Studien

Darstellung komplexer 3D-Stadtmodelle im (mobilen) Webbrowser mittels bildbasiertem Rendering

Installationsanleitung Maschinenkonfiguration und PP s. Release: VISI 21 Autor: Anja Gerlach Datum: 18. Dezember 2012 Update: 18.

Das Aktivieren der verschiedenen Stops* in der WHS FutureStation

Spline-artige Kurven auf Subdivision Surfaces. Jörn Loviscach Hochschule Bremen, Germany

Erster Schritt mit Mocha:

Teil 1: Modellierung. Einleitung. 3D Szene Inhalt. Objekte und ihre Beschreibung

Technische Alternative elektronische Steuerungsgerätegesellschaft mbh. A-3872 Amaliendorf, Langestr. 124 Tel +43 (0)

teischl.com Software Design & Services e.u. office@teischl.com

WOP 7 Entdecke neue Welten

SJ OFFICE - Update 3.0

Grundlagen von Python

Zählen von Objekten einer bestimmten Klasse

FLASH. Flash und Video. Flash und Video, macht das Sinn?

Physik. Grundlagen der Mechanik. Physik. Graz, Sonja Draxler

WinWerk. Prozess 6a Rabatt gemäss Vorjahresverbrauch. KMU Ratgeber AG. Inhaltsverzeichnis. Im Ifang Effretikon

Transkript:

Computer Graphics and Animation in Games culling bloom advanced shading Some material based on Michael Wimmer, Michael Kalkusch, Peter Wonka, Francois Faure shadows 1

artificial intelligence? bump maps levels of detail texturing 2

But, most importantly all of this at 60 frames per second! 3

Aktuelles Beispiel: XBox One 4

Graphics Processing Unit GPU power increases much faster compared to CPU 5

6

Modern Graphics Pipeline Application Command Geometry Geometry A trip down the graphics pipeline Nowadays, everything is hardware accelerated Rasterization Texture Fragment Display Rasterization Fragment: pixel, but with additional info (alpha, depth, stencil ) 7

Vertex Programs 8

Vertex Programs Replace fixed function pipeline, therefore Need to supply input arguments Normally untransformed, unlit vertex Arbitrary arguments (lights, matrices, ) Specify output arguments At least transformed vertex Possibly color, texture coordinates, Exploit independence of vertices 1 vertex in, 1 vertex out Parallel vertex pipelines Dieter Schmalstieg 9 Programmable Shading 9

Vertex Program Examples Matrix skinning Cartoon-style rendering Dieter Schmalstieg 10 Programmable Shading 10

Vertex Program Examples Shadow projection Bump map setup Dieter Schmalstieg 11 Programmable Shading 11

Vertex Program Examples Dynamic vertex displacements Dieter Schmalstieg 12 Programmable Shading 12

Fragment Programs Dieter Schmalstieg 13 Programmable Shading 13

Shading Language Main dialects Microsoft High Level Shading Language (HLSL) OpenGL Shading Language (GLSL) Familiar C-like syntax Differences in program invocation Conventional: explicit Shader: for each element (vertex, primitive, fragment) Differences in program execution Conventional programs: single execution Shader programs: SIMD = single instruction multiple data (Parallel execution with multiple data) For each element in data stream (vertex, primitive, fragment) Dieter Schmalstieg 14 Programmable Shading 14

Display Buffers Application Command Geometry Rasterization Texture Fragment Display Geometry Rasterization What is stored in the display stage? 15

Depth-Buffer Methode (1) = Z-Buffer Methode Arbeitet im Image-Space Hardware-Implementierung auf GPU! Kein sortieren! 3-fache Flächenüberlappung an (x,y). Sichtbare Fläche S1 hat den kleinsten Tiefenwert. 16

Zwei Buffer Depth-Buffer Methode (2) Depth Buffer (Distanzinformation) Color Buffer (Intensitätsinformation) Größe = Bildschirmauflösung (für jedes Pixel: r, g, b, z) Zeichen-Prozedur = vergleiche z mit z in Buffer; wenn z näher zum Betrachter dann zeichne+aktualisiere z in Buffer sonst nichts! 17

Depth-Buffer Methode (3) Depth-Buffer beschreibt View Volume Von z near z far oder von -1 1 18

RGB & Depth buffer 19

Problem bei Animation: Screen Tearing 20

Double Buffering Bei Darstellung via Graphikkarte Front-Buffer: Bild n ist sichtbar Back-Buffer wird zum Zeichnen von Bildes n+1 verwendet Wenn Bild n+1 fertig: Buffer tauschen Vollständige Unterdrückung von Tearing benötigt zusätzlich Vertical Synchronization (VSync) Front Buffer 21

Game engines Examples Unreal Engine (Epic Games) Source Engine (Valve Corporation) Gamebryo Engine (Emergent Game Technologies) id Tech 5 (id Software) CryEngine (Crytek) 22

Game Engine Components Runtime library and tool set for computer game development Core functionality typically provided by a game engine includes: rendering engine (2D/ 3D) scene graph collision detection physics engine scripting animation artificial intelligence sound networking streaming memory management threading 23

Renderer Renderer Encapsulate all low level rendering (OpenGL, DirectX) Fast rendering of a collection of geometric primitives Primitives: triangle meshes, line lists, point lists, particles, etc. Management of materials and dynamic lighting Often based on scene graph 24

Scene Graph Hierarchical representation of objects in a scene 25

Transformation Accumulation 26

Display with Scene Graph std::tree<treenode*> SGRoot; To display all the objects in a scene: void displayscene() { displaynode(sgroot); } void displaynode( TreeNode *node ) { node->display(); // polymorphic method, different for each node! if(!node->isleaf()) { currentmatrix::multiply(node->getmatrix()); for( int nchild = 0; nchild < node->children.size(); ++nchild ) { displaynode( children[ nchild ] ); } } } 27

Typical Nodes Transformation Geometry Attributes (texture, texture parameter) Light parameters Simple animations Picking behavior 28 28

Scene Graph Event Handlers Event callback mechanism to intercept scene graph traversal cull called when the culling traversal visits the node draw called when the node is ready to be displayed Accumulate transformations in the draw handler Additional handlers pre-draw called BEFORE the draw traversal for the node is initiated Useful for setting OpenGL states (lighting, textures, render targets) post-draw called AFTER the node (and its children) have been rendered Reset current transformation matrix to the parent node transform update called when the state of the current node is changed in the tree 29

Computer Animation 30

Interpolation zwischen Ausgangslage (Keyframe k) Neuer Lage (Keyframe k+1) Key-Frame Animation Berechnen von Inbetweens Einfügen eines Hilfspunktes (3) Interpolation der Punkte 1, 2, 3 1, 2, 3 [Hearn,Baker] Fig 13-8 9, p740 31

Nichtlineare Key-Frame Animation Vorher: Interpolation entlang von Geraden Nachher: Interpolation mittels nichtlinearer Splines [Hearn,Baker] Fig 13-8 9, p740 [Hearn,Baker] Fig 13-13, p742 32

Zeitliche Parametrisierung Parametrisierung zwischen 2 Key-Frames: Linear, konstante Zwischenschritte x(t) = (1-t)*x(t 1 ) + t * x(t 2 ) t= i* (t 2 t 1 ) N t1 t2 33

Beschleunigung Parametrisierung zwischen 2 Key-Frames: Linear Nicht-Linear t1 t2 t1 t2 t1 t2 34

Vergleich Ease Out Ease In Ease In-Out 35

Kinematik Auch Dynamik genannt Beschreibung einer Animation durch Bewegungsparameter Position, Geschwindigkeit, Beschleunigung Ohne Angabe der Ursache der Bewegung Beispiel Position + Geschwindigkeit eines Festkörpers ergibt geradlinige Bewegung 36

Arten der Kinematik Benutzer erzeugt Koordinaten direkt Keyframe Animation Motion Capture Benutzer erzeugt Koordinaten indirekt Vorwärtskinematik Positionen beschrieben als Funktion der Zeit Inverse Kinematik Direkte Kinematik Vorwärtstransformation Gelenkwinkel Kartesische Koordinaten Inverse Kinematik Rückwärtstransformation 37

Kinematik Animation von beweglichen Körpern Zusammengesetzt aus Glieder Gelenke (joints) 38

Gelenke Gelenke beschränken die Bewegung der Glieder Verwendet zur Erzeugung von Hierarchien von Gliedern 39

Probleme der Vorwärtskinematik Externe Constraints werden nicht automatisch berücksichtigt inverse Kinematik 40

Inverse Kinematik Angabe von Anfangs- und Endpunkten (Constraints) System berechnet p, v, a für Inbetweens Arbeitsweise in Praxis Plazieren der Endglieder (Fuß, Hand, Kopf) für Keyframes Rest wird berechnet: Optimierung, Interpolation 41

Motion Capture (1/2) Menschliche Bewegung per Vorwärtkinematik Prinzip Reale Bewegungen aufzeichnen Schauspieler oder Puppe Monkey Tom Hanks in Polar Express http://wardomatic.blogspot.com/2004/12/polar-express-virtual-train-wreck_18.html 42

Hardware Motion Capture (2/2) Magnetische Sensoren Optische Aufzeichnung Elektro-mechanische Sensoren Electro-mechanical http://www.metamotion.com/gypsy/gypsy-motion-capture-system-mocap.htm Optical http://www.naturalpoint.com/optitrack/products/motion-capture/ 43

Skalierung Verformbare Modelle Nur lokale affine Transformation Spline-Oberflächen Animation der Kontrollpunkte Space-Warping Globale Verformung Free Form Deformation Artikulierte Objekte (Bones + Skin) Gesichter 44

Original Analytische Deformierungen Tapering (X,Y,Z) = (r(z)x, r(z)y, z) Twisting (x cosθ -y sinθ, x sinθ +y cosθ, z) Bending 45

Free Form Deformation (FFD) Tricubic Bezier-Patches Controlpunkte p ijk definieren eine Raumdeformation 2D-Analogie 46

FFD-Beispiel: Nase 47

Character Skinning Haut (BRep) angebracht an kinematischem Skelett Bones = Festkörper mit Koordinatensystem Kontinuierliche Mesh-Deformation 48

49

50

51

52

Probleme von trivialen Methoden Verbinde jeden Vertex zum nächsten Bone Selbstdurchdringung Aufreisen der Oberfläche 53

Skinning-Idea Vertex wird mit n nächsten Bones verknüpft Gewichtete Summe Fragen Welche Bones? Welche Gewichte? 54

Probleme 1. Extreme Deformationen 2. Zuwenig gestalterische Kontrolle 55

Ansatz von Mohr und Gleicher Einfügen zusätzlicher Knochen Optimieren der Gewichte über ganze Bewegung, basierend auf Benutzervorgaben Itererative Optimierung zu langsam für Spiele 56

Problem von linearer Interpolation Lineare interpolation Sphärische interpolation candy wrapper 57

Dual Quaternion Blending fdfsd Lösungsidee: Renormalisierung Mathematisch durch 8D-Parametrisierung der 6D Rigid Transform (dual quaternions) 58

Physikalisch-basierte Animation Allgemeine Kräfte Gravitation Spring-based models Constraints Physik-Engines wie Bullet, PhysX Partikelsysteme Rauch, Feuer, Regen, Nebel, etc. Snow Particle System Martin Schröttner @ EZG2006 Kollisions-Erkennung Fire Particle System Christian Kurz @ EZG2007 59

Kollisions-Erkennung & Reaktion [imdb.com] Spider Man 3 (2007) 60

Kollisions-Erkennung und Reaktion 1) Beispiel: Ball + Boden 2) Physikalische Simulation Elastizität des Balls Dämpfung durch den Boden Gravitation, vielleicht Wind? 3) Kollisions-Erkennung 4) Veränderung des Systems Neue Richtung der Kugel Veränderung des Bodens? [Hearn,Baker] Fig 13-18, p745 61

Beispiel Game Developer 62

63

64

Fragen? 65