Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14.

Slides:



Advertisements
Ähnliche Präsentationen
Professional XNA Game Programming
Advertisements

Grundlagen der Informatik
MS Office-Paket: Access
Gliederung des Inhalts
Anbindung an Anwendungen
HTML - Einführung Richard Göbel.
Java: Grundlagen der Sprache
XINDICE The Apache XML Project Name: Jacqueline Langhorst
Virtuelle Forschungsumgebungen Hintergrundbeitrag: HTML5: Video Player und VideoJS Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Kapitel 12: „Variablen und Konstanten verwenden und Spiele.
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Prof.
Grundbegriffe der 3D-Spiele-Programmierung
EINI-I Einführung in die Informatik für Naturwissenschaftler und Ingenieure I Vorlesung 2 SWS WS 99/00 Gisbert Dittrich FBI Unido
Einführung in die EDV Holger Irrgang
Einstiegsunterricht - Informatik -. Möglichkeiten des Einstiegsunterricht Benutzung und Analyse eines dokumentierten Systems Einführung in die Programmierung.
Einführung in die Programmierung
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
University of Applied Sciences Übung Objektorientierte Programmierung II Dipl.-Inf. (FH) Markus Vogler.
? Was ist Informatik? Was ist Informatik? Alexander Lange
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
JavaScript.
Einführung in die App- Programmierung Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Medien zwischen Technik und Gesellschaft.
Einführung in die Programmierung
Einführung in die Programmiersprache C 3.Tag Institut für Mathematische Optimierung - Technische Universität Braunschweig.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Debugging in Lua Universität zu Köln Re-usable Content in 3D und Simulationssystemen Prof. Dr. Manfred Thaller Referent: Artur Wilke.
Game Development mit LUA Integration und Kommunikation von LUA mit C++ Referat von Paul van Hemmen Seminar: Reusable Content in 3D und Simulationssystemen.
Wasser in 3D Die Modellierung und realitätsnahe Echtzeitberechnung von Wasser unter Zuhilfenahme der Grafik Engine OGRE 3D Präsentation von Paul van Hemmen.
Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fakultät.
Einführung in die Programmierung Wintersemester 2008/09 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
Einführung in die Programmierung Wintersemester 2011/12 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung Wintersemester 2013/14 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Einführung in die Programmierung
Einführung in die Programmierung Wintersemester 2012/13 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 7 Folie 2 Styles (1) s.a.
Camera, Lights, Action… Dirk Primbs Developer Evangelist
Einführung in PHP.
Einführung in PHP 5.
Stoppen der Eingabeaufforderung einer Abfrage j drücken Sie dann F5, oder klicken Sie auf Bildschirmpräsentation > Von Beginn an, um den Kurs zu starten.
ANIMATION II Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung SS 2013 Softwaretechnologie II (Teil II): Simulation und 3D.
Prototyping Augmented Reality Universität zu Köln Historisch-kulturwissenschaftliche Informationsverarbeitung Aktuelle Probleme digitaler Medien / Medien.
Multimedia in Java Thomas Witschel, Kerstin Steinert & Erik Reinhard.
AUDIO im WEB HTML & AUDIO WEB_0302 WEBDESIGN MODUL 03 h.huetter 1 Sound-Dateien können, ebenso wie Video-Dateien, auf mehrere Arten in HTML-Dateien integriert.
Die Welt der Shader Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Fortgeschrittene Techniken.
Grundbegriffe der 3D-Spiele-Programmierung nach David Scherfgen
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Random & Probability Universität zu Köln Institut für Medienkultur und Theater AM3: Visuelle Programmierung II WS 2013/2014 Dozent: Prof. Manfred Thaller.
Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Softwaretechnologie II / Visuelle Programmierung Dozent: Prof. Dr. Manfred Thaller WS.
Virtuelle Forschungsumgebung in Musikwissenschaft
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie.
(Syntax, Strings/Zahlen, Variablen, Arrays)
Benutzerprofil "Laie" Editionsphilologie -Historisch kulturwissenschaftliche Informationsverarbeitung- Universität zu Köln WS 2006/07 unter Leitung von:
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer, Dr. Thomas H. Kolbe Einführung in die Programmierung mit Java 9. Vorlesung WS 2001/2002.
GAME PROGRAMMING PATTERNS – FLYWEIGHT & OBSERVER Robert Nystrom Softwaretechnologie II Teil 2 Anike Schulz.
Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.
Einführung in Powerpoint XP Universität Leipzig Herder-Institut Video und Multimedia im Unterricht: DaF Dozent: Hr. Prof. Dr. E. Tschirner.
Tutorium Software-Engineering SS14 Florian Manghofer.
 Präsentation transkript:

Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14 Dozent: Prof. Dr. Thaller von Mariantonietta Bellia

1. Einführung in die Spielprogrammierung 1. Einführung in die Spielprogrammierung 2. DirectX und C++ 2. DirectX und C++ 3. Spiele-Engine 3. Spiele-Engine 4. Zufallszahlen, Nachrichtschleife im TriBase-Engine und Hilfsmakros 4. Zufallszahlen, Nachrichtschleife im TriBase-Engine und Hilfsmakros 5. Fazit 5. Fazit

Was UNS erwartet: Ein Blick auf die Grundsätze der Spielprogrammierung, sowie interessanten Techniken der 3D Grafik Ein Blick auf die Grundsätze der Spielprogrammierung, sowie interessanten Techniken der 3D Grafik Schritt für Schritt DirectX kennenlernen Schritt für Schritt DirectX kennenlernen Grafikeffekte und Algorithmen Grafikeffekte und Algorithmen spezifische Spieltypen spezifische Spieltypen wie plant man einen Spiel (Planung) wie plant man einen Spiel (Planung) und Spiele-Engine (Spiele programmieren durch Beispiele) und Spiele-Engine (Spiele programmieren durch Beispiele)

Was UNS nicht erwartet: keine exakte Einleitung wie man einen Spielprogrammiert keine exakte Einleitung wie man einen Spielprogrammiert lehrt nicht die C++ Programmiersprache lehrt nicht die C++ Programmiersprache es ersetzt nicht die Microsoft „DirectX- Dokumentation“ es ersetzt nicht die Microsoft „DirectX- Dokumentation“

Unterschied zwischen „Büroanwendung“ und einem „Spiel“: „Büroanwendung“ = Effektivität „Büroanwendung“ = Effektivität „Spiel“= Spaß ist der Zweck „Spiel“= Spaß ist der Zweck Vorraussetzung das es Spaß macht (gute Grafik und guten Sound/Musik) Vorraussetzung das es Spaß macht (gute Grafik und guten Sound/Musik)

die wichtigsten und häufigsten Typen, sollte man eigene Präfixe verwenden die wichtigsten und häufigsten Typen, sollte man eigene Präfixe verwenden alle vorhandene Quellcodes machen sich die „ungarische Notation“ zunutze alle vorhandene Quellcodes machen sich die „ungarische Notation“ zunutze

Man sieht wie ein Spiel mit linearen Programmierung funktioniert. Man sieht wie ein Spiel mit linearen Programmierung funktioniert. Was wird ausgeführt? Was wird ausgeführt?

Eingabe, Verarbeitung und Fortbewegung= auch „Move- Funktion“ genannt Eingabe, Verarbeitung und Fortbewegung= auch „Move- Funktion“ genannt Beispiel einer integrierten Render- und Move-Funktion Beispiel einer integrierten Render- und Move-Funktion Diagnose: Wichtig die Zeit Verhältnisse im Spiel zu beachten Diagnose: Wichtig die Zeit Verhältnisse im Spiel zu beachten Ausgabe= demonstriert uns die aktuelle Lage Ausgabe= demonstriert uns die aktuelle Lage GameState“= Spielstatus der in Spielabschnitte aufgeteilt ist GameState“= Spielstatus der in Spielabschnitte aufgeteilt ist

DirectX Graphics: um anspruchsvolle und schnelle 3D Grafik im Spiel zu implementieren DirectX Graphics: um anspruchsvolle und schnelle 3D Grafik im Spiel zu implementieren DirectX Audio: Soundeffekte (besteht aus DirectSound und DirectMusic) DirectX Audio: Soundeffekte (besteht aus DirectSound und DirectMusic) DirectInput: Eingabe zuständig (Bespiel: Game-Pad) DirectInput: Eingabe zuständig (Bespiel: Game-Pad) DirectPlay: lässt Spieler vom Internet, Netzwerk, Kabelverbindung oder sogar per Telefonverbindung spielen lassen DirectPlay: lässt Spieler vom Internet, Netzwerk, Kabelverbindung oder sogar per Telefonverbindung spielen lassen DirectShow: gibt die Möglichkeit alle Multimedia-Dateien abzuspielen zu können (MP3 bis zu MPEG-Video) DirectShow: gibt die Möglichkeit alle Multimedia-Dateien abzuspielen zu können (MP3 bis zu MPEG-Video) Besitzt bereits einen DirectX-Header- und Bibliotheksdateien Besitzt bereits einen DirectX-Header- und Bibliotheksdateien Verwendung von COM= „Komponentenobjektmodell“ Verwendung von COM= „Komponentenobjektmodell“

Was ist Engine= Antrieb oder Motor für das Spiel Was ist Engine= Antrieb oder Motor für das Spiel 2 Arten von Anwendungsbereiche: 1. Spezialisierte Engines und 2. Universelle Engines 2 Arten von Anwendungsbereiche: 1. Spezialisierte Engines und 2. Universelle Engines „Verpackung“ einer Engine: Man unterscheidet zwischen 1. Statischer Engine (wird zur einer LIB-Datei) und 2. Dynamische Engine (DLL-Dateien) „Verpackung“ einer Engine: Man unterscheidet zwischen 1. Statischer Engine (wird zur einer LIB-Datei) und 2. Dynamische Engine (DLL-Dateien)

Namengebung (Funktionsname immer mit „tb“ beginnen) Namengebung (Funktionsname immer mit „tb“ beginnen) Feature Implementieren (wie z.B. Initialisierung von DirectX-Schnittstellen durch optimierte Klassen für Vektoren Feature Implementieren (wie z.B. Initialisierung von DirectX-Schnittstellen durch optimierte Klassen für Vektoren laden von Texturen, Darstellung von 3D-Objekte, Effekte Feuer etc. laden von Texturen, Darstellung von 3D-Objekte, Effekte Feuer etc. Textausgabe Textausgabe Zugriff auf Eingabegeräte Zugriff auf Eingabegeräte abspielen von 3D Sounds abspielen von 3D Sounds

HTML-Logbuchfunktion = Ereignisprotokolldatei (enthält das automatisch geführte Protokoll von automatischer ausgeführten Aktionen) HTML-Logbuchfunktion = Ereignisprotokolldatei (enthält das automatisch geführte Protokoll von automatischer ausgeführten Aktionen) Speicherverwaltung (TriBase- Speichermanager): führt eine genaue Liste über jeden Größe, Gültigkeit, Änderung, Freigabe oder reservierten Speicherbereichs auch Virtuelle Dateien genannt Speicherverwaltung (TriBase- Speichermanager): führt eine genaue Liste über jeden Größe, Gültigkeit, Änderung, Freigabe oder reservierten Speicherbereichs auch Virtuelle Dateien genannt

Zufallszahlen: kann man durch einen int- und float-Wert generieren (tbIntRandom und tbFloatRandom z. B. (0.0f, 150.0f) Zufallszahlen: kann man durch einen int- und float-Wert generieren (tbIntRandom und tbFloatRandom z. B. (0.0f, 150.0f) Die Nachrichtschleife im TriBase-Engine arbeitet mit Funktionszeiger. Hier werden zwei Parameter selbst definiert (zum Bewegen und zum Rendern) Die Nachrichtschleife im TriBase-Engine arbeitet mit Funktionszeiger. Hier werden zwei Parameter selbst definiert (zum Bewegen und zum Rendern) Hilfsmakros: - Sicherheitsmakros (automatisieren häufig auszuführende Aufgaben und sicheres Löschen) und - Fehlermakros (Ort wo Fehlers vermerkt werden) Hilfsmakros: - Sicherheitsmakros (automatisieren häufig auszuführende Aufgaben und sicheres Löschen) und - Fehlermakros (Ort wo Fehlers vermerkt werden)

fundierte Kenntnis in C++ fundierte Kenntnis in C++ modernen PC mit 3D- Karte modernen PC mit 3D- Karte Geduld und logisches Denkvermögen (Mathematikkenntnis) Geduld und logisches Denkvermögen (Mathematikkenntnis) bei Problemen sich an: mierer.de wenden! bei Problemen sich an: mierer.de wenden! mierer.de mierer.de viel EXPERIMENTIEREN!!! viel EXPERIMENTIEREN!!! Wenn es so einfach wäre!!

David, Scherfgen: 3D-Spieleprogrammierung; Mit DirectX9 und C++. Carl Hanser Verlag, München Wien2006. (Seite1 - 40). David, Scherfgen: 3D-Spieleprogrammierung; Mit DirectX9 und C++. Carl Hanser Verlag, München Wien2006. (Seite1 - 40).