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



Ähnliche Dokumente
Gameprogramming WS2013/14 Futurella von Pavel Belskiy und Felix Niemeyer Betreuer: Stefan Buschmann

Seminar Game Development Game Computer Graphics. Einleitung

computer graphics & visualization

Softwareprojekt Spieleentwicklung

MF Breadcrumbs. Sergej Schefer & Fabian Marx

Volumen Visualisierung

Computer Graphics Shader

Unity 4 Teil II. Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Dozent: Manfred Thaller Marvin Busch

Terrain-Rendering mit Geometry Clipmaps

Computer Vision I. Nikos Canterakis. Lehrstuhl für Mustererkennung, Universität Freiburg

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

1. Sichtbarkeitsproblem beim Rendern einer dreidimensionalen Szene auf einer zweidimensionalen

Fit für die Prüfung Elektrotechnik Effektives Lernen mit Beispielen und ausführlichen Lösungen

Wie findet das Navi den Weg?

Test-Driven Design: Ein einfaches Beispiel

Übersetzung von UML-Software-Spezifikationen in Simulationsmodelle

Advanced Rendering Interior Szene

MAP CellSs Mapprakt3

C++ Tutorial: Timer 1

Jörn Loviscach Hochschule Bremen

THREAD ARCS: An Thread Visualization

Der monatliche Tarif für ein Handy wurde als lineare Funktion der Form f(x) = k x + d modelliert (siehe Grafik).

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

Testklausur 1 zur Vorlesung. Modellierung und Programmierung I. Dr. Monika Meiler Zeit: 60 Minuten

HTML5. Wie funktioniert HTML5? Tags: Attribute:

Algorithmen & Datenstrukturen 1. Klausur

Der Einsatz von HDRIs in LightWave 7

Wasserfall-Ansätze zur Bildsegmentierung

Die Interferenz von flexiblen Arbeitszeiten mit der Nutzbarkeit arbeitsfreier Zeit Ein Prädiktor für soziale Beeinträchtigungen

Drei-Schichten-Architektur. Informatik B - Objektorientierte Programmierung in Java. Vorlesung 16: 3-Schichten-Architektur 1 Fachkonzept - GUI

PVL 3 - Roulette. (5 Punkte) Abgabe bis

Software Engineering II

Entdeckungsmethoden für Exoplaneten - Interferometrie

Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit. Direct 3D-Output für ein Rendering Framework

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

Interactive exploration of neural networks in Python. 3-d simulation of the e-puck robot in virtual environments

Projektsteuerung Projekte effizient steuern. Welche Steuerungsinstrumente werden eingesetzt?

Sichere Anleitung Zertifikate / Schlüssel für Kunden der Sparkasse Germersheim-Kandel. Sichere . der

Einführung in die Programmierung

Design Patterns 2. Model-View-Controller in der Praxis

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

A Domain Specific Language for Project Execution Models

Wie ist das Wissen von Jugendlichen über Verhütungsmethoden?

Seminar aus dem Bereich E-Learning

Maus & Tastatur Anleitungen für Merlin Project ProjectWizards

Fassade. Objektbasiertes Strukturmuster. C. Restorff & M. Rohlfing

Dokumentation des Projektes Tic Tac Toe

WCET-Analyseverfahren in der automobilen Softwareentwicklung

Part-Of-Speech-Tagging mit Viterbi Algorithmus

Dokumentation: Erstellung einer Content App für Windows 8

Java: Vererbung. Teil 3: super()

Beispiel 19. December 4, 2009

Andreas Joppich Weitlingstr Berlin Tel: Mail: - Web:

Sozialquartier Innenstadt

Wintersemester Maschinenbau und Kunststofftechnik. Informatik. Tobias Wolf Seite 1 von 22

STABILE UND ROBUSTE HANDELSSYSTEMENTWICKLUNG MIT METATRADER

Architektur von Game-Engines

Graphic Coding. Klausur. 9. Februar Kurs A

Klausur zur Einführung in die objektorientierte Programmierung mit Java

Installation des edu-sharing Plug-Ins für Moodle

Dokumentation für das Spiel Pong

Sculpting und Painting in Maya. Fabian Wilpert 1

Voraussetzung wieder: Datenraum mit Instanzen, mehrere Attribute - kein ausgezeichnetes Zielattribut, keine vorgegebenen Klassen

Literatur. Dominating Set (DS) Dominating Sets in Sensornetzen. Problem Minimum Dominating Set (MDS)

Betriebswirtschaftliches Beratungstool für Steuerberater Ziele, Inhalte und Struktur

Eine molekulare Lösung des Hamiltonkreisproblems mit DNA

XMLBeam. Einfach XML-Handling. W3L AG

(query by image content)

Im Original veränderbare Word-Dateien

Produktpräsentation sellyping SCHNELL & EINFACH BESTELLEN - ZU JEDER ZEIT

TIGER ein kinematisches Messsystem für langgestreckte Objekte, Erfahrungen aus Projekten

Probleme der Navigation von Rehabilitationsroboter: Intelligenter Rollstuhl

Segmentierung von Faserstrukturen in tomographischen Aufnahmen. Workshop Analyse der Mikrostruktur von Faserverbundwerkstoffen in Volumenbildern

Technische Universität Hamburg-Harburg

Kurz-Bericht Nr / Flughafen Leipzig Halle. Start- und Landebahn Süd mit Vorfeld


Data Cube. Aggregation in SQL. Beispiel: Autoverkäufe. On-line Analytical Processing (OLAP) 1. Einführung. 2. Aggregation in SQL, GROUP BY

InfoZoom 8.0 setzt Maßstäbe in Bedienung und Übersichtlichkeit und wird damit noch flexibler. Überzeugen Sie sich jetzt selbst!

Architektur Verteilter Systeme Teil 2: Prozesse und Threads

Online-Preisliste. August Werben Sie erfolgreich online... gültig ab

Einführung in die Programmierung für NF

Aktivierungsanleitung für Postbank BestSign mit Seal One

Apple- und Android-Endgeräte

Wie halte ich einen guten Vortrag?

Software Engineering II

DAUERHAFTE ÄNDERUNG VON SCHRIFTART, SCHRIFTGRÖßE

Klassendiagramm. (class diagram)

EINFÜHRUNG IN DIE WIRTSCHAFTSINFORMATIK -ÜBUNGEN- Marina Tropmann-Frick

Gesetz zur besseren Vereinbarkeit von Familie, Pflege und Beruf. 14. Oktober 2014

Easy-Monitoring Universelle Sensor Kommunikations und Monitoring Plattform

2 Darstellung von Zahlen und Zeichen

Darstellungsformen einer Funktion

CAD Warehouse- Verbindungen. Plattformspezifische Darstellung

Grundlagen der Informatik

Texture Based Direct Volume Rendering

Ihre PLM-Prozessexperten für Entwicklung und Konstruktion

BRAINSTORMING UND VISUALISIERUNGS- METHODEN

Interaktive Simulationen Lektion 1/3: Event-Driven Design und Signals

ACDSee Pro 3-Tutorials: Hochladen von Bildern auf Ihren ACDSee Online-Account

Transkript:

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

Gliederung 2 1. Live-Demo und Spielidee 2. Softwarearchitektur und Szenengraph Übersicht 3. Rendering-Pipeline 4. Review Projektplanung 5. Hervorheben von Objekten 6. Oberflächenstruktur für Asteroiden 7. Energiefeld als Spielfeldbegrenzung 8. Spielmenü 9. Herausforderungen 10. Zusammenfassung und Zukünftige Arbeit

Live-Demo 3 Live-Demo

Softwarearchitektur Übersicht 4

Szenengraph Übersicht 5 Root Projectile Group Asteroid Group Wall Projectile Shader Asteroid Shader Lights Map Map Shader Player SkyDome Light Group Wall Shader SkyDome Shader Knoten State Attribut

Szenengraph Asteroiden 6 Asteroid Group Asteroid Asteroid Scale Scale Model 1... Asteroid Material 1... Asteroid Map Model...

Review Projektplanung 7 Themenvergabe Konzeptpräsentation Zwischenpräsentation Feature- Freeze Heute Projektile HUD PhysX Explosionen 3D-Map Asteroiden Hintergrund Bewegung des Spielers Sound 2D-Map Distanz- Visualisierung Schaden - Asteroiden

Rendering-Pipeline 8 Mehrere Rendering-Passes Erste Passes rendern Szenen-Geometrie Nachfolgende erzeugen Effekte Zwischenergebnisse in Form von G-Buffern Letzter Pass verblendet G-Buffer zum finalen Bild

Rendering-Pipeline 9 Color Scene Linear Depth Depth Map-Color Id Halo Hud Hud-Color Final

Hervorheben von Objekten (1) 10 Leuchtender Rahmen um Objekte ( Halo ) Berechnet mithilfe des ID-Buffers und linearisierten Z-Buffers In Abhängigkeit von Z zwischen 2 Farben interpoliert

Hervorheben von Objekten (2) 11 Wird pro Pixel im Fragment Shader berechnet Stärke abhängig von Distanz zu Objekt Pseudocode: if pixel == blank for sample in range if sample == id count++ alpha = mix(alpha1, alpha2, depth) * strength(count) rgb = mix(rgb1, rgb2, depth)

Hervorheben von Objekten (3) 12 Id Buffer Linear Depth Buffer Halo Buffer

Energiefeld als Spielfeldbegrenzung (1) 13 alpha = 0.5 + snoise v v alpha = 0.5 + snoise v v + snoise 2 2 v v + snoise 4 4 v v alpha = 0.5 + sin snoise v v + snoise 2 2 v v + snoise 4 4 v v alpha = 0.6 p + sin snoise v snoise 2 v + t + 2 v v + t snoise + 4 v v + t 4 Asteroids 3D Anita Dieckhoff, Pedro Flemming, Jan Ole Vollmer Game Programming

Energiefeld als Spielfeldbegrenzung (2) 14 varying vec4 position; varying vec4 vertex; uniform float time; void main() { vec3 seed = normalize(vertex.xyz); float scaledtime = time * 0.0002; float basealpha = clamp(pow(0.6, length(position) / 2500.0 + 3.0) - 0.02, -0.02, 0.2); float noise = simplexnoise(seed + scaledtime); noise += 0.5 * (simplexnoise(seed * 2.0 + scaledtime)); noise += 0.25 * (simplexnoise(seed * 4.0 + scaledtime)); float sinnoise = sin(noise * 30.0) * 0.02; float alpha = basealpha + sinnoise; gl_fragcolor = vec4(gl_color.rgb, alpha); } Asteroids 3D Anita Dieckhoff, Pedro Flemming, Jan Ole Vollmer Game Programming

Oberflächenstruktur für Asteroiden (1) 15 Asteroiden-Oberfläche erhält durch Displacement-Mapping Struktur Bei Treffern erzeugen Projektile Krater auf dem Asteroiden Vertex-Shader-Pseudocode: color = texture2d(displacementmap, gl_texcoord[0].st); float lum = 0.30*color.r + 0.59*color.g + 0.11*color.b; displacement = lum * intensity; position = vertex + normal * displacement; Quelle: László Szirmay-Kalos, Tamás Umenhoffer: Displacement Mapping on the GPU State of the Art

Oberflächenstruktur für Asteroiden (2) 16 Modell Asteroid Farb-Textur Displacement-Map

Oberflächenstruktur für Asteroiden (3) 17 Erzeugung von Kratern bei Projektil-Treffern Krater wird durch Vertex-Displacement dargestellt Displacement berechnet sich in Abhängigkeit des Abstandes des Vertex zum Krater-Zentrum Kraterfunktion y = f(x) Definitionsbereich ist auf [0, 1] normalisiert Wertebeispiele: x = 0 Abstand = 0, Kraterzentrum x = 1 Maximaler Kraterwirkungsbereich y = 0 Maximale Kratertiefe y = 1 Kein Displacement

Varianten der Kraterfunktion 18 f x = x f x = x 4 f x = 1. 1 1. 0 + 0. 1 4 1 0. 8 x, falls x < 0. 8 1 0. 2 x 1 2, sonst

Spielmenü 19 In QML (Qt Modeling Language) geschrieben Deklarative Sprache zur Programmierung von GUIs Interoperabilität mit C++ via Signal/Slot Konzept von Qt Rectangle { signal newgame() signal quit() QML-Ausschnitt } Column { MenuButton { text: "New Game" onclicked: mainmenu.newgame() } MenuButton { text: "Quit" onclicked: mainmenu.quit() } }

Herausforderung - Overview-Map 20 Orientierung im 3D-Raum ist eine besondere Herausforderung Bewegung in alle Richtungen möglich Permanentes Überwachen aller Richtungen 3D Idee: Projektion des 3D-Raums auf eine Übersichtskarte Darstellungs-Herausforderungen: Visualisierung der Distanz von Asteroiden Schnelle Orientierung zu Asteroiden Ansatz 1: 3D-Übersicht des Raumes Ansatz 2: 2D-Vogelperspektive 2D

Zusammenfassung 21 Verwendete Techniken: Displacement Mapping zur Erhöhung des Detailgrades der Asteroiden-Oberflächen Visualisierung der Distanz zu Asteroiden mit Halos durch G-Buffer Rendering Spielmenü mit QML Physik-Engine: Nvidia PhysX Sound-Engine: FMod Qt als Menü-Manager Besondere Herausforderung: Orientierung im 3D-Raum

Zukünftige Arbeit 22 Parametrisierung des Displacement Mappings für verschiedene Kratergrößen Parametrisierung der Halo-Visualisierung, um Distanz besser darzustellen Staubpartikel zur verbesserten Visualisierung der Bewegung des Spielers im Raum Verbesserte Orientierung durch statische Planeten

Vielen Dank 23 Vielen Dank für Ihre Aufmerksamkeit!

Referenzen 24 Displacement Mapping on the GPU State of the Art Szirmay-Kalos, Umenhoffer; http://sirkan.iit.bme.hu/~szirmay/egdisfinal3.pdf) Hardware Accelerated Per-Pixel Displacement Mapping Hirche, Ehlert, Guthe; http://dl.acm.org/citation.cfm?id=1006077 Comprehensible Rendering of 3-D Shapes Saito, Takahashi; http://dl.acm.org/citation.cfm?id=97901 The Triangle Processor and Normal Vector Shader Deering, Winner, Schediwy, Duffy, Hunt; http://dl.acm.org/citation.cfm?id=378468