Computergrafik/Visualisierung II

Größe: px
Ab Seite anzeigen:

Download "Computergrafik/Visualisierung II"

Transkript

1 Vorlesung Computergrafik/Visualisierung II Hochschule für Technik und Wirtschaft Dresden University of Applied Sciences Prof. Dr. Marco Block-Berlitz Sommersemester 2014 Studiengang Medieninformatik

2 Vorlesungsteil Physikalische Spielereien III Game Loop Wer die Geometrie begreift, vermag in dieser Welt alles zu verstehen. Galileo Galilei Vorlesung Computergrafik II Prof. Dr. Marco Block-Berlitz

3 1972: Pong Das erste weltweit populäre Computerspiel Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 3

4 1992: Ultima Underworld Erstes Computerspiel mit texturierter 3D-Grafik in Echtzeit Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 4

5 1992: Wolfenstein 3D Erster Ego-Shooter Raycasting Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 5

6 Raycasting für Semi-3D-Szenen Raycasting war die erste Rendering-Technik, mit der Semi-3D-Szenen in Echtzeit dargestellt werden konnten. Das Verfahren ist schnell, da nur eine Berechnung pro Bildschirm-Vertikale vorgenommen werden muss. Treppen laufen, Hüpfen oder unterschiedliche Raumhöhen sind mit dieser einfachen Game-Engine nicht möglich. Der berühmteste Spiele-Vertreter ist Wolfenstein 3D. Gegeben ist dafür eine Karte (2D-Grid) mit positiven, ganzzahligen Einträgen, die jeweils für einen Wandtyp stehen. Einträge mit 0 repräsentieren entsprechend keine Wand. Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 6

7 Aufbau einer Gameengine Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 7

8 Game-Loop versus Game-Loop Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 8

9 Wie schaut es eigentlich mit den Anwendereingaben aus? Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 9

10 Eingaben einlesen Als sehr ungünstig stellt sich sicherlich folgendes Konzept heraus: while (true) { char* command = readcommand(); handlecommand(command); } Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 10

11 Eingaben als Events Um die CPU nicht unnötig zu belasten, lässt sich ein Eventhandling einbauen: while (true) { Event* event = waitforevent(); dispatchevent(event); } Das können wir dann geschickt in eine Funktion auslagern und überprüfen, ob seit dem letzten Mal eine Eingabe stattgefunden hat: while (true) { processinput(); update(); render(); } Hier haben wir weiterhin die Problematik mit der Hardwareabhängigkeit. Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 11

12 Wie bekommen wir jetzt die Unabhängigkeit von update und render in den Griff? Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 12

13 Idee 1: Wir erzwingen 60 fps. Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 13

14 Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 14

15 60 fps erzwingen Wir könnten einfach den Prozess so lange in eine Ruhephase versetzen, bis es wieder günstig ist, update() und render() aufzurufen: while (true) { double start = getcurrenttime(); processinput(); update(); render(); } sleep(start + MS_PER_FRAME - getcurrenttime()); In diesem Fall entspricht: 1000 ms / FPS = ms per frame. Dieses Konzept funktioniert, wenn das Programm viel zu schnell ist. Aber falls es zu langsam sein sollte, haben wir hier ein Problem. Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 15

16 Welchen Wert hat MS_PER_FRAME bei 60 fps? Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 16

17 Idee 2: Wir übermitteln update, wieviel Zeit seit dem letzten Mal vergangen ist. Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 17

18 Update abhängig von t machen Eine möglicherweise bessere Strategie ist es, die vergangene Zeit zu betrachten und an update zu übergeben: double lasttime = getcurrenttime(); while (true) { double current = getcurrenttime(); double elapsed = current - lasttime; processinput(); update(elapsed); render(); } lasttime = current; Das kann sich allerdings aufgrund der Rundungsfehler bei Fließkomma-Zahlen als sehr problematisch herausstellen. Beispiel: Wenn zwei Spieler mit sehr unterschiedlicher Hardware in einem Netzwerk spielen, kann der häufigere Aufruf von update() zu einem unterschiedlichen Spielverlauf führen. Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 18

19 Idee 3: update benötigt einen festen Zeitschritt. Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 19

20 Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 20

21 Update fest machen Die weitere Idee führt uns zu folgendem Code: double previous = getcurrenttime(); double lag = 0.0; while (true) { double current = getcurrenttime(); double elapsed = current - previous; previous = current; lag += elapsed; processinput(); while (lag >= MS_PER_UPDATE) { update(); lag -= MS_PER_UPDATE; } } render(); Die Physik sollte hier im besten Fall schneller als 60 fps laufen. Aber Achtung: Physik sollte dabei noch durch update auf der langsamsten Hardware zu schaffen sein. Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 21

22 Im Prinzip arbeitet das System jetzt so: Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 22

23 Was ist problematisch daran? Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 23

24 up() re() up() Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 24

25 Wir müssen render() abhängig von t machen Das können wir mit einer variablen render-funktion z. B. so ausdrücken: render(lag / MS_PER_UPDATE); Das macht die Sache etwas komplexer, aber wir können zwischen den Frames dann einfacher interpolieren. Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 25

26 Zusammenfassung Fixed time step with no synchronization einfach, abhängig von Hardware 1) Fixed time step with synchronization einfach, nur gut zum Verlangsamen 2) Variable time step gut zum Verlangsamen und Beschleunigen, undeterministisch! 3) Fixed update time step, variable rendering gut zum Verlangsamen und Beschleunigen, komplex Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 26

27 Unity Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 27

28 Ausblick Euler-Integrationsmethode Runge-Kutta Physik in Games (Java) Prof. Dr. Marco Block-Berlitz Vorlesung Computergrafik II SoSe 2014 Folie 28

3D-Programmierung. Vorlesung. Hochschule für Technik und Wirtschaft Dresden University of Applied Sciences

3D-Programmierung. Vorlesung. Hochschule für Technik und Wirtschaft Dresden University of Applied Sciences Vorlesung 3D-Programmierung Hochschule für Technik und Wirtschaft Dresden University of Applied Sciences Prof. Dr. Marco Block-Berlitz Sommersemester 2014 Diplomstudiengang Medieninformatik Masterstudiengang

Mehr

3D-Programmierung. Vorlesung. Hochschule für Technik und Wirtschaft Dresden University of Applied Sciences

3D-Programmierung. Vorlesung. Hochschule für Technik und Wirtschaft Dresden University of Applied Sciences Vorlesung 3D-Programmierung Hochschule für Technik und Wirtschaft Dresden University of Applied Sciences Prof. Dr. Marco Block-Berlitz Sommersemester 2013 Diplomstudiengang Medieninformatik Masterstudiengang

Mehr

Echtzeitfähige hige Verfahren in der Computergrafik. Lehrstuhl für f r Informatik Computer Grafik und Visualisierung TUM

Echtzeitfähige hige Verfahren in der Computergrafik. Lehrstuhl für f r Informatik Computer Grafik und Visualisierung TUM Echtzeitfähige hige Verfahren in der Computergrafik Prof. Dr. Rüdiger R Westermann Lehrstuhl für f r Informatik Computer Grafik und Visualisierung TUM Lehr- und Forschungsinhalte Visualisierung Darstellung

Mehr

Grundlegende Algorithmen

Grundlegende Algorithmen 3D Spieleprogrammierung Grundlegende Algorithmen Übersicht Game Loop Spielarchitektur Aufäumen von Strukturen Vorbereiten für spätere Aufgaben Bewegungen Zeitmessung Zeitunabhängigkeit GameLoop Game Engine

Mehr

Fundamentale Ideen der Informatik PH Weingarten Sommersemester 2014 Paul Libbrecht CC-BY. Vorlesung 3: Methoden, Scope

Fundamentale Ideen der Informatik PH Weingarten Sommersemester 2014 Paul Libbrecht CC-BY. Vorlesung 3: Methoden, Scope Fundamentale Ideen der Informatik PH Weingarten Sommersemester 2014 Paul Libbrecht CC-BY Vorlesung 3: Methoden, Scope Menü Erinnerung: Variablen, Objekte Methode Idee Klasse Kode-Sichtbarkeit Idee: Test,

Mehr

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 2. Markus Reschke Java 2 Markus Reschke 07.10.2014 Datentypen Was wird gespeichert? Wie wird es gespeichert? Was kann man mit Werten eines Datentyps machen (Operationen, Methoden)? Welche Werte gehören zum Datentyp? Wie

Mehr

Interaktives Wasser in 3D. Jörn Loviscach Hochschule Bremen

Interaktives Wasser in 3D. Jörn Loviscach Hochschule Bremen Interaktives Wasser in 3D Jörn Loviscach Hochschule Bremen Ringwellen (Kapillar- und Schwerewellen) Kelvin-Schiffswellen Reflexionen von Himmel (Frensel-Effekt) und Sonne Kaustiken mit korrekten Schatten

Mehr

Für die Arbeit mit Pygame werden wird die Umgebung PortablePython Version 2.7.x verwenden.

Für die Arbeit mit Pygame werden wird die Umgebung PortablePython Version 2.7.x verwenden. Pygame Basics 1 Vorbereitung Für die Arbeit mit Pygame werden wird die Umgebung PortablePython Version 2.7.x verwenden. 1.1 Download der PortablePython-Umgebung Die Installationsdatei kann hier heruntergeladen

Mehr

Intensivübung zu Algorithmen und Datenstrukturen

Intensivübung zu Algorithmen und Datenstrukturen Intensivübung zu Algorithmen und Datenstrukturen Silvia Schreier Informatik 2 Programmiersysteme Martensstraße 3 91058 Erlangen Übersicht Programmierung Fallunterscheidung Flussdiagramm Bedingungen Boolesche

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Variablen Übersicht 1 Variablendeklaration 2 Initialisierung von Variablen 3 Symbolische Konstanten Variablendeklaration Die Deklaration der Variablen erfolgt durch eine Typangabe

Mehr

Aufgabenblatt 1. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt:

Aufgabenblatt 1. Kompetenzstufe 2. Allgemeine Informationen zum Aufgabenblatt: Aufgabenblatt 1 Kompetenzstufe 2 Allgemeine Informationen zum Aufgabenblatt: Die Abgabe erfolgt in TUWEL. Bitte laden Sie Ihr IntelliJ-Projekt bis spätestens Freitag, 10.11.2017 13:00 Uhr in TUWEL hoch.

Mehr

Vorlesung Informatik II

Vorlesung Informatik II Vorlesung Informatik II Universität Augsburg Wintersemester 2011/2012 Prof. Dr. Bernhard Bauer Folien von: Prof. Dr. Robert Lorenz Lehrprofessur für Informatik 16. Java: Threads für Animationen 1 Motivation

Mehr

3D Programmierpraktikum: Schattenberechnung in Echtzeit

3D Programmierpraktikum: Schattenberechnung in Echtzeit 3D Programmierpraktikum: Schattenberechnung in Echtzeit Praktikum 3D Programmierung Sebastian Boring, Otmar Hilliges Donnerstag, 20. Juli 2006 LMU München Medieninformatik Boring/Hilliges 3D Programmierpraktikum

Mehr

Einführung in Truevision3D

Einführung in Truevision3D Einführung in Truevision3D Einleitung: In diesem Artikel werden wir uns mit der Truevision Engine beschäftigen, ihr werdet lernen wie man in C# auf die Engine zugreift und wie man einfache 2D Ausgaben

Mehr

Game Engine Architecture and Development. Effekte (Sound, Partikel, Physik)

Game Engine Architecture and Development. Effekte (Sound, Partikel, Physik) Game Engine Architecture and Development Effekte (Sound, Partikel, Physik) Wer hat schon was? Sound s Soundsysteme Einfach zu benutzen Leveldesigner müssen sehr einfach Sounds hinzufügen können (Gamplay

Mehr

Schnelle modulare Synthese auf Mehrkern-Architekturen. GPN7 So, Jürgen Reuter

Schnelle modulare Synthese auf Mehrkern-Architekturen. GPN7 So, Jürgen Reuter Schnelle modulare Synthese auf Mehrkern-Architekturen GPN7 So, 06.07.2008 Jürgen Reuter Ausgangspunkt: SoundPaint Integriere Entwurf von Klängen & Komposition Ziel: Ausdrucksvollere elektronische Musik

Mehr

Einführung in die Programmierung mit VBA

Einführung in die Programmierung mit VBA Einführung in die Programmierung mit VBA Vorlesung vom 07. November 2016 Birger Krägelin Inhalt Vom Algorithmus zum Programm Programmiersprachen Programmieren mit VBA in Excel Datentypen und Variablen

Mehr

Ein- und Ausgabe (I/O)

Ein- und Ausgabe (I/O) Informatik für Elektrotechnik und Informationstechnik Benedict Reuschling benedict.reuschling@h-da.de Hochschule Darmstadt Fachbereich Informatik WS 2013/14 Überblick 1 2 / 14 Motivation Computer arbeiten

Mehr

C++ Tutorial: Timer 1

C++ Tutorial: Timer 1 C++ Tutorial: Timer 1 Timer v1.0 Einleitung Raum und Zeit sind spätestens seit der kopernikanischen Wende wichtige Gegenstände des Denkens geworden. In einem Programm bestimmt die Zeit die Abläufe und

Mehr

Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Technische und Betriebliche Informationssysteme Dr.

Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Technische und Betriebliche Informationssysteme Dr. Otto-von-Guericke-Universität Magdeburg Fakultät für Informatik Institut für Technische und Betriebliche Informationssysteme Dr. Eike Schallehn Klausur Grundlagen der Informatik Magdeburg, 17.07.2012 Matrikelnummer:

Mehr

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

Bilder. 2D Spiele programmieren in Java. Alpha channel. Formate. Optimierung. Empfehlung

Bilder. 2D Spiele programmieren in Java. Alpha channel. Formate. Optimierung. Empfehlung 2D Spiele programmieren in Java Teil 3: Bilder, Animationen Dr. Katja Wegner Dr. Ursula Rost Bilder Sind vielfach in Spielen einsetzbar (Menüs, Hintergrund, Objekte) Eigenschaften: Typ (e.g. bitmap, vector)

Mehr

Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in C EV3

Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in C EV3 Fakultät für Informatik, Institut für Robotik Laborpraktikum I - Medizinarena Legorobotik in C EV3 Ute Ihme Hochschule Mannheim Ute Ihme DAS LEGO MINDSTORMS System Das EV3 System Prinzip von LEGO MINDSTORMS

Mehr

- - CodE 11 CodE 0 0 0 0 0 0 0 0 2.o C 1 10.0 C 2 off 3 3.0 4 2.0 5 off 6 1 8 20.0 9 60 C 7 4.0 10 80 C 1 38 C 12 8 k 13 on 14 30.0 15 10 16 - - CodE 11 CodE 0 0 0 0 0 0 0 0 2.o C 1 10.0 C 2

Mehr

Architektur von Game-Engines

Architektur von Game-Engines > Architektur von Game-Engines Seminar Arbeitsgruppe Visualisierung und Computergrafik 2 > Aufbau und Komponenten einer Engine 3 > Aufbau und Komponenten einer Game-Engine 4 > Aufbau und Komponenten einer

Mehr

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss

Arrays. Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss Arrays FTI 41 2005-09-09 Arrays werden verwendet, wenn viele Variablen benötigt werden. Der Vorteil in Arrays liegt darin, dass man nur eine Variable deklarieren muss z.b. Dim Werte(x) As Single. Wobei

Mehr

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling

Game Engine Architecture and Development. Platform Unabhängiger Code Multi Threading in Game Engines Profiling Game Engine Architecture and Development Platform Unabhängiger Code Multi Threading in Game Engines Profiling Folien Die Folien werden auf acagamics.de hochgeladen Das Passwort ist 60fps (ohne ) Rückblick:

Mehr

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java:

II. Grundlagen der Programmierung. 9. Datenstrukturen. Daten zusammenfassen. In Java (Forts.): In Java: Technische Informatik für Ingenieure (TIfI) WS 2005/2006, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Datenstrukturen 9. Datenstrukturen Daten zusammenfassen

Mehr

Welche Informatik-Kenntnisse bringen Sie mit?

Welche Informatik-Kenntnisse bringen Sie mit? Welche Informatik-Kenntnisse bringen Sie mit? So gehen Sie vor! Lösen Sie die Aufgaben der Reihe nach von 1 bis 20, ohne das Lösungsblatt zur Hilfe zu nehmen. Der Schwierigkeitsgrad der Aufgaben nimmt

Mehr

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel

Variablen. int Flugzeug. float. I write code Hund. String. long. Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 4213 Variablen 17.834 float Flugzeug 36812736294 I write code Hund long String Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 3 + 4 1 Variablen sind wie Becher. Sie speichern etwas. // Variablen

Mehr

Anwendungsentwicklung mit dem Windows Phone 7

Anwendungsentwicklung mit dem Windows Phone 7 Anwendungsentwicklung mit dem Windows Phone 7 Anwendungen auf Basis von XNA IPD Tichy Lehrstuhl für Programmiersysteme KIT die Kooperation von Forschungszentrum Karlsruhe GmbH und Universität Karlsruhe

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 25.4.07, Anweisungen Übersicht 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung, Vorbereitungen 4 Verbundanweisung 5 Bedingte Anweisung 6 Auswahlanweisung 7 for

Mehr

Nachklausur Bitte in Druckschrift leserlich ausfüllen!

Nachklausur Bitte in Druckschrift leserlich ausfüllen! Übungen zur Vorlesung Informatik für Informationsmanager WS 2005/2006 Universität Koblenz-Landau Institut für Informatik Prof. Dr. Bernhard Beckert Dr. Manfred Jackel Nachklausur 24.04.2006 Bitte in Druckschrift

Mehr

Seminar Ausgewählte Themen der medizinischen Visualisierung

Seminar Ausgewählte Themen der medizinischen Visualisierung 1 Ausgewählte Themen der medizinischen Visualisierung Institut für Informatik 08.07.2011 Arbeitsgruppe Visualisierung und Computergrafik (VisCG) Organisatorisches Veranstalter: Prof. Dr. Klaus Hinrichs,

Mehr

Verteilte Systeme - Java Networking (Sockets) 2 -

Verteilte Systeme - Java Networking (Sockets) 2 - Verteilte Systeme - Java Networking (Sockets) 2 - Prof. Dr. Michael Cebulla 06. November 2014 Fachhochschule Schmalkalden Wintersemester 2014/15 1 / 30 Michael Cebulla Verteilte Systeme Gliederung Wiederholung:

Mehr

Informatik B von Adrian Neumann

Informatik B von Adrian Neumann Musterlösung zum 7. Aufgabenblatt vom Montag, den 25. Mai 2009 zur Vorlesung Informatik B von Adrian Neumann 1. Java I Schreiben Sie ein Java Programm, das alle positiven ganzen Zahlen 0 < a < b < 1000

Mehr

Klausur Fachprüfung Wirtschaftsinformatik Dauer: 2 Stunden. Name:

Klausur Fachprüfung Wirtschaftsinformatik Dauer: 2 Stunden. Name: Klausur Fachprüfung Wirtschaftsinformatik Dauer: 2 Stunden Datum: 17.07.2003 Name: Punkte True-or-False: von 15 Punkte Multiple Choice: von 15 Punkte Quickies: von 30 Punkte Shorties: von 20 Punkte Longies:

Mehr

Modellbasierte Software- Entwicklung eingebetteter Systeme

Modellbasierte Software- Entwicklung eingebetteter Systeme Modellbasierte Software- Entwicklung eingebetteter Systeme Prof. Dr. Holger Schlingloff Institut für Informatik der Humboldt Universität und Fraunhofer Institut für offene Kommunikationssysteme FOKUS Folie

Mehr

Computergraphik 1 LU ( ) Ausarbeitung Abgabe 2

Computergraphik 1 LU ( ) Ausarbeitung Abgabe 2 Computergraphik 1 LU (186.095) Ausarbeitung Abgabe 2 Beispiel 4... 2 CG1Object... 2 if (dobackfaceeculling && numvertexindec >=3)... 2 CG1ScanfilledPolygon CG1Polygon... 2... 2... 3 buildactivelist (int

Mehr

Immersive Interaktion in der Spieleindustrie

Immersive Interaktion in der Spieleindustrie Immersive Interaktion in der Spieleindustrie Prof. Dr. Paul Grimm Computer Graphics Applied Computer Science Erfurt University of Applied Sciences Eröffnung des Interaktionsloabors Fraunhofer IAO Über

Mehr

Strings. Daten aus Dateien einlesen und in Dateien speichern.

Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings. Daten aus Dateien einlesen und in Dateien speichern. Strings Ein String ist eine Zeichenkette, welche von MATLAB nicht als Programmcode interpretiert wird. Der Ausdruck 'a' ist ein String bestehend

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 6.11.07, Weitere Anweisungen Übersicht 1 Verbundanweisung 2 Bedingte Anweisung 3 Auswahlanweisung 4 for Schleife 5 while Schleife 6 do Schleife 7 break Anweisung 8 continue Anweisung 9 Leere

Mehr

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm.

Übung Grundlagen der Programmierung WS 2008/09. Übung 04: Methoden. Abgabetermin: Prosabeschreibung Java-Programm. Übung 04: Methoden Abgabetermin: 11. 11. 2008 Name: Matrikelnummer: Gruppe: G1 (Prähofer) G2 (Wolfinger) G3 (Wolfinger) Aufgabe Punkte gelöst abzugeben schriftlich abzugeben elektronisch Aufgabe 4.1 12

Mehr

Konzepte der Programmiersprachen

Konzepte der Programmiersprachen Konzepte der Programmiersprachen Sommersemester 2010 4. Übungsblatt Besprechung am 9. Juli 2010 http://www.iste.uni-stuttgart.de/ps/lehre/ss2010/v_konzepte/ Aufgabe 4.1: Klassen in C ++ Das folgende C

Mehr

Präzedenz von Operatoren

Präzedenz von Operatoren Präzedenz von Operatoren SWE-30 Die Präzedenz von Operatoren bestimmt die Struktur von Ausdrücken. Ein Operator höherer Präzedenz bindet die Operanden stärker als ein Operator geringerer Präzedenz. Mit

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) Schwerpunkte While-: "abweisende" Schleife 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java Do-while-: "nichtabweisende" Schleife For-: zählergesteuerte Schleife Klassifikation

Mehr

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen

Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen. Operatoren für elementare Datentypen Bedingte Anweisungen Schleifen Programmieren I Martin Schultheiß Hochschule Darmstadt Wintersemester 2011/2012 1 / 25 Operatoren für elementare Datentypen Bedingte Schleifen 2 / 25 Zuweisungsoperator Die Zuweisung von Werten an Variablen

Mehr

6. Iteration (Schleifenanweisungen)

6. Iteration (Schleifenanweisungen) 6. Iteration (Schleifenanweisungen) Java-Beispiel: TemperatureTable.java K. Bothe, Institut für Informatik, HU Berlin, GdP, WS 2015/16 Version: 9. Nov. 2015 2 Schwerpunkte While-Anweisung: "abweisende"

Mehr

PhysX Evaluation. Softwarepraktikum Computergraphik. Daniel Brock, Robert Kreuzer, Simon Kufner. 5. Juli 2010

PhysX Evaluation. Softwarepraktikum Computergraphik. Daniel Brock, Robert Kreuzer, Simon Kufner. 5. Juli 2010 PhysX Evaluation Softwarepraktikum Computergraphik Daniel Brock, Robert Kreuzer, Simon Kufner 5. Juli 2010 Daniel Brock, Robert Kreuzer, Simon Kufner () PhysX Evaluation 5. Juli 2010 1 / 17 1 Aufgabenstellung

Mehr

pue13 January 28, 2017

pue13 January 28, 2017 pue13 January 28, 2017 1 Aufgabe 1 (Klammern und Anweisungsblöcke) Wie Sie in der Vorlesung gelernt haben, werden Anweisungsblöcke in Java nicht durch Einrückung, sondern mithilfe von geschweiften Klammern

Mehr

Klassenvariablen, Klassenmethoden

Klassenvariablen, Klassenmethoden Einstieg in die Informatik mit Java, Vorlesung vom 11.12.07 Übersicht 1 Klassenmethoden 2 Besonderheiten von Klassenmethoden 3 Aufruf einer Klassenmethode 4 Hauptprogrammparameter 5 Rekursion Klassenmethoden

Mehr

Informatik II Übung, Woche 14

Informatik II Übung, Woche 14 Giuseppe Accaputo 7. April, 2016 Plan für heute 1. Java Klassen Beispiel: Implementation eines Vorlesungsverzeichnis (VVZ) 2. Informatik II (D-BAUG) Giuseppe Accaputo 2 Java Klassen Beispiel: Implementation

Mehr

Grundlagen der Programmierung WS 15/16 (Vorlesung von Prof. Bothe)

Grundlagen der Programmierung WS 15/16 (Vorlesung von Prof. Bothe) Humboldt-Universität zu Berlin Institut für Informatik Grundlagen der Programmierung WS 15/16 (Vorlesung von Prof. Bothe) Übungsblatt 4: Felder und Rekursion Abgabe: bis 9:00 Uhr am 14.12.2015 über Goya

Mehr

Java I Vorlesung Imperatives Programmieren

Java I Vorlesung Imperatives Programmieren Java I Vorlesung 2 Imperatives Programmieren 3.5.2004 Variablen -- Datentypen -- Werte Operatoren und Ausdrücke Kontrollstrukturen: if Imperatives Programmieren Im Kern ist Java eine imperative Programmiersprache.

Mehr

Gaming on the Grid: Design und Realisierung eines dynamischen Online-Rollenspiels

Gaming on the Grid: Design und Realisierung eines dynamischen Online-Rollenspiels Gaming on the Grid: Design und Realisierung eines dynamischen Online-Rollenspiels Projektseminar im Sommersemester 2007 Jens Müller / Frank Glinka / Alexander Ploss / Prof. Sergei Gorlatch Arbeitsgruppe

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java 1 / 47 Einstieg in die Informatik mit Java Anweisungen Gerd Bohlender Institut für Angewandte und Numerische Mathematik Gliederung 2 / 47 1 Ausdrucksanweisung 2 Einfache Ausgabeanweisung 3 Einfache Eingabeanweisung,

Mehr

Art Director bei Silver Style Entertainment

Art Director bei Silver Style Entertainment Jan Jordan Art Director bei Silver Style Entertainment www.silver-style.com Vollpreis PC Spiele Aktuell: The Fall Vor 1971 Die Steinzeit der Computerspiele: Nichtkommerziell/Werbung für neue Technologien

Mehr

Einführung in den Einsatz von Objekt-Orientierung mit C++ I

Einführung in den Einsatz von Objekt-Orientierung mit C++ I Einführung in den Einsatz von Objekt-Orientierung mit C++ I ADV-Seminar Leiter: Mag. Michael Hahsler Syntax von C++ Grundlagen Übersetzung Formale Syntaxüberprüfung Ausgabe/Eingabe Funktion main() Variablen

Mehr

Werkzeuge zur Programmentwicklung

Werkzeuge zur Programmentwicklung Werkzeuge zur Programmentwicklung B-15 Bibliothek Modulschnittstellen vorübersetzte Module Eingabe Editor Übersetzer (Compiler) Binder (Linker) Rechner mit Systemsoftware Quellmodul (Source) Zielmodul

Mehr

einlesen n > 0? Ausgabe Negative Zahl

einlesen n > 0? Ausgabe Negative Zahl 1 Lösungen Kapitel 1 Aufgabe 1.1: Nassi-Shneiderman-Diagramm quadratzahlen Vervollständigen Sie das unten angegebene Nassi-Shneiderman-Diagramm für ein Programm, welches in einer (äußeren) Schleife Integer-Zahlen

Mehr

Programmieren in Java

Programmieren in Java Einführung in die (imperative) Programmierung: Methoden 2 Wiederholung: if-else Anweisung int number =?; if ( BEDINGUNG ) { if (number > 0) { SATZ; BLOCK System.out.println("Größer 0"); else { SATZ; BLOCK

Mehr

Beleuchtung. in Computerspielen

Beleuchtung. in Computerspielen Beleuchtung in Computerspielen Motivation Überblick Licht und Schattierung Lichtquellen Lokale Beleuchtungsmodelle Schattierungsverfahren Oberflächensimulation Beispiele der CryEngine Ausblick Zusammenfassung

Mehr

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath

ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS. Sascha Kath ANALYSE DER LATENZEN IM KOMMUNIKATIONSSTACK EINES PCIE-GEKOPPELTEN FPGA-BESCHLEUNIGERS Sascha Kath Dresden, Gliederung 1. Motivation & Zielstellung 2. Systembeschreibung 3. Implementierung und Messungen

Mehr

Effektiv Programmieren in С und C++

Effektiv Programmieren in С und C++ Dietmar Herrmann Effektiv Programmieren in С und C++ Eine Einführung mit Beispielen aus Mathematik, Naturwissenschaft und Technik 3., vollständig überarbeitete und erweiterte Auflage 3 vieweg flffm \;i

Mehr

Einstieg in die Informatik mit Java

Einstieg in die Informatik mit Java Vorlesung vom 18.4.07, Vordefinierte Datentypen Übersicht 1 Ganzzahlige Typen 2 Boolscher Typ 3 Gleitkommatypen 4 Referenztypen 5 void Typ 6 Implizite und explizite Typumwandlungen Ganzzahlige Typen Die

Mehr

Programmierpraktikum 3D Computer Grafik

Programmierpraktikum 3D Computer Grafik Prof. Andreas Butz, Dipl.Inf. Otmar Hilliges Programmierpraktikum 3D Computer Grafik Dynamische Schattenberechnung Agenda Der Stencil-Puffer Der 1-bit Stencil-Puffer Der 8-bit Stencil-Puffer Volumetrische

Mehr

Backtracking mit Heuristiken

Backtracking mit Heuristiken Backtracking mit Heuristiken Thomas Dübendorfer thomas@duebendorfer.ch 14. September 2000 Inhalt und Ablauf 1. Einführendes Beispiel (4 min) 2. Konzepte zu Backtracking (8 min) 3. Eingesperrt im Labyrinth

Mehr

Kapitel 3: Variablen

Kapitel 3: Variablen Kapitel 3: Variablen Thema: Programmieren Seite: 1 Kapitel 3: Variablen Im letzten Kapitel haben wir gelernt, bestimmte Ereignisse zu wiederholen solange eine Bedingung erfüllt ist. Nun möchten wir aber

Mehr

Institut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke

Institut für Programmierung und Reaktive Systeme. Java 3. Markus Reschke Java 3 Markus Reschke 08.10.2014 Kommentare Kommentare nützlich zum späteren Verständnis Zwei Arten Einzeiliger Kommentar bis zum Zeilenende mit // Mehrzeiliger Kommentar mit /*Text*/ 1 double x = 5; //

Mehr

Programmieren in Java

Programmieren in Java Programmieren in Java Vorlesung 03: Schleifen Prof. Dr. Peter Thiemann Albert-Ludwigs-Universität Freiburg, Germany SS 2017 Peter Thiemann (Univ. Freiburg) Programmieren in Java JAVA 1 / 12 Inhalt Codequalität

Mehr

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch

Einführung in die Programmierung für Nebenfach Medieninformatik. Beat Rossmy, Michael Kirsch Einführung in die Programmierung für Nebenfach Medieninformatik Beat Rossmy, Michael Kirsch Direct Feedback - Socrative Eure Mitarbeit ist uns wichtig! Installiert euch dazu die kostenlose App Socrative

Mehr

Ergebnisse des Praktikums Dreiphasensystem (Ströme) 1) Berechnung aller Ströme eines Dreiphasensystems (Verbraucher-Dreieckschaltung)

Ergebnisse des Praktikums Dreiphasensystem (Ströme) 1) Berechnung aller Ströme eines Dreiphasensystems (Verbraucher-Dreieckschaltung) HOCHSCHLE OSTFALA Fakultät Elektrotechnik Prof. Dr. Ose Version 1 16.11.09 Vorlesung Wechselstromtechnik Ergänzung zum SS 2009: Dreiphasensystem Ergebnisse des Praktikums Dreiphasensystem (Ströme) 1) Berechnung

Mehr

Stereoskopisches 3D Gaming

Stereoskopisches 3D Gaming PRIME Symposium 17.02.2011 BERLIN Stereoskopisches 3D Gaming Jonas Schild Lehrstuhl für Medieninformatik und Entertainment Computing Universität Duisburg Essen Lehrstuhl Medieninformatik Entertainment

Mehr

Wie entwerfe ich ein Programm?

Wie entwerfe ich ein Programm? Wie entwerfe ich ein Programm? Welche Objekte brauche ich? Flussdiagramme für Programmablauf Vorcode Testcode Hauptcode Wir spielen Lotto! Borchers: Programmierung für Alle (Java), WS 06/07 Kapitel 5 +

Mehr

Grundlagen der Informatik

Grundlagen der Informatik Grundlagen der Informatik Einführung in die Programmiersprache C Teil 2 Ein- und Ausgabe in C-Programmen Prof. Dr.-Ing. Thomas Wiedemann Fachgebiet Informatik / Mathematik Überblick zur Vorlesung Ein-

Mehr

Partikelsysteme. Lehrstuhl Computergrafik und Visualisierung Fakultät Informatik TU Dresden. Proseminar Computergrafik.

Partikelsysteme. Lehrstuhl Computergrafik und Visualisierung Fakultät Informatik TU Dresden. Proseminar Computergrafik. 58 Partikelsysteme Lehrstuhl Computergrafik und Visualisierung Fakultät Informatik TU Dresden Proseminar Computergrafik Robert Stelzmann Gliederung 1. Einleitung und Motivation 2. Begriffsklärung 3. Einfache

Mehr

Objektorientierte Programmierung Studiengang Medieninformatik

Objektorientierte Programmierung Studiengang Medieninformatik Objektorientierte Programmierung Studiengang Medieninformatik Hans-Werner Lang Hochschule Flensburg Vorlesung 5 12.04.2017 Was bisher geschah... Objektorientierte Programmierung Klassen und Objekte, Attribute

Mehr

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff

Programmieren in C. Eine Einführung in die Programmiersprache C. Prof. Dr. Nikolaus Wulff Programmieren in C Eine Einführung in die Programmiersprache C Prof. Dr. Nikolaus Wulff Textausgabe per printf Die Funktion printf ist kein Bestandteil der C Sprache sondern gehört zur C Bibliothek. printf

Mehr

Vorkurs Informatik WiSe 16/17

Vorkurs Informatik WiSe 16/17 Java Rekursion Dr. Werner Struckmann / Stephan Mielke, Jakob Garbe, 11.10.2016 Technische Universität Braunschweig, IPS Überblick Einleitung Beispiele 11.10.2016 Dr. Werner Struckmann / Stephan Mielke,

Mehr

Interaktive Visualisierung zeitabhängiger Volumendaten

Interaktive Visualisierung zeitabhängiger Volumendaten Interaktive Visualisierung zeitabhängiger Volumendaten Diplomarbeit von Dario Kardas graphische datenverarbeitung, universität erlangen-nürnberg Skalare Volumendaten Volumen besteht aus Schichtbildern

Mehr

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke

Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke Grundlagen der Informatik Ergänzungen WS 2007/2008 Prof. Dr. Rainer Lütticke 1 Links Stellenwertsysteme mit Links zu Zahlensysteme: http://de.wikipedia.org/wiki/stellenwertsystem ASCII-Code: http://de.wikipedia.org/wiki/ascii

Mehr

Grundlagen: Algorithmen und Datenstrukturen

Grundlagen: Algorithmen und Datenstrukturen Technische Universität München Fakultät für Informatik Lehrstuhl für Effiziente Algorithmen Dr. Hanjo Täubig Tobias Lieber Sommersemester 011 Übungsblatt 30. Mai 011 Grundlagen: Algorithmen und Datenstrukturen

Mehr

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. )

II. Grundlagen der Programmierung. Beispiel: Merge Sort. Beispiel: Merge Sort (Forts. ) Beispiel: Merge Sort (Forts. ) Technische Informatik für Ingenieure (TIfI) WS 2006/2007, Vorlesung 9 II. Grundlagen der Programmierung Ekkart Kindler Funktionen und Prozeduren Rekursion Datenstrukturen Merge S ( split, s, merge ) Beispiel:

Mehr

Ein kleiner Blick auf die generische Programmierung

Ein kleiner Blick auf die generische Programmierung TgZero Technik.Blosbasis.net June 3, 2013 1 Inhaltsverzeichnis 1 Vorwort 3 2 Ein kleines Beispiel 3 3 Templates 3 4 Verschiedene Datentypen 4 5 Variadic Templates 5 6 Unterschied zwischen den Programmiersprachen

Mehr

Basic Movements Chasing and Evading

Basic Movements Chasing and Evading Basic Movements Chasing and Evading AI for Game Developers Kapitel 2 Vortag Inhalt: 1) Aufgaben eines KI-Systems 2) Predator/Prey behaviour 1) Notwendigkeit 2) Mögliche Verhaltensweisen 3) Ablauf und Ziele

Mehr

Adaptives Displacement Mapping unter Verwendung von Geometrieshadern

Adaptives Displacement Mapping unter Verwendung von Geometrieshadern Fakultät Informatik Institut für Software- und Multimediatechnik, Professur für Computergraphik und Visualisierung Adaptives Displacement Mapping unter Verwendung von Geometrieshadern Diplomarbeit Timo

Mehr

Klausur Grundlagen der Programmierung

Klausur Grundlagen der Programmierung Klausur Grundlagen der Programmierung Aufgabenstellung: Martin Schultheiß Erreichte Punktzahl: von 60 Note: Allgemeine Hinweise: Schreiben Sie bitte Ihren Namen auf jedes der Blätter Zugelassene Hilfsmittel

Mehr

Informatik II Übung, Woche 10

Informatik II Übung, Woche 10 Giuseppe Accaputo 10. März, 2016 Plan für heute 1. Typumwandlung (Typecasts) 2. Ordnerstruktur für Übungen 3. Vorbesprechung Übung 3 4. Nachbesprechung Übung 2 (inkl. Live Programmierung) Informatik II

Mehr

Panama Papers vs. Böhmermanns Schmähkritik

Panama Papers vs. Böhmermanns Schmähkritik Professor Horst Müller MBA 14. April 2016 1. Befragung von Studierenden zu aktuellen Medienthemen: Panama Papers vs. Böhmermanns Schmähkritik Ansatz für die Befragung Die so genannten Panama Papers, über

Mehr

Seminar Game Development Game Computer Graphics. Einleitung

Seminar Game Development Game Computer Graphics. Einleitung 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

Mehr

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?)

5.1 Mehr Basistypen. (Wie viele Werte kann man mit n Bit darstellen?) 5.1 Mehr Basistypen Außer int, stellt Java weitere Basistypen zur Verfügung. Zu jedem Basistyp gibt es eine Menge möglicher Werte. Jeder Wert eines Basistyps benötigt die gleiche Menge Platz, um ihn im

Mehr

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen.

Es ist für die Lösung der Programmieraufgabe nicht nötig, den mathematischen Hintergrund zu verstehen, es kann aber beim Verständnis helfen. Ziele sind das Arbeiten mit Funktionen und dem Aufzählungstyp (enum), sowie - einfache Verzweigung (if else) - Alternativen switch case - einfache Schleifen (while oder do while) Aufgabe 3: Diese Aufgabe

Mehr

Klausur Fachprüfung Wirtschaftsinformatik. Name:

Klausur Fachprüfung Wirtschaftsinformatik. Name: Klausur Fachprüfung Wirtschaftsinformatik Dauer: 2 Stunden Datum: 02.10.2003 Name: Punkte True-or-False: von 15 Punkte Multiple Choice: von 15 Punkte Quickies: von 30 Punkte Shorties: von 20 Punkte Longies:

Mehr

Programmierkurs Java

Programmierkurs Java Programmierkurs Java Abstrakte Klassen und Methoden & Interfaces Prof. Dr. Stefan Fischer Institut für Telematik, Universität zu Lübeck http://www.itm.uni-luebeck.de/people/fischer #2 Vererbungshierarchie

Mehr

Kapitel. Platzhalter. Was sind Platzhalter?

Kapitel. Platzhalter. Was sind Platzhalter? Kapitel 3 Was sind? sind ganz wichtige Elemente bei der Programmierung. Alle Programme, die du schon kennst (wie beispielsweise die Textverarbeitung WORD oder ein Programm zum Verschicken von E-Mails),

Mehr

13. Funktionale Konzepte in Java

13. Funktionale Konzepte in Java Funktionale vs. Imperative Programmierung 13. Funktionale Konzepte in Java Funktionale Programmierung, Lambda Ausdrücke, Datenströme, Pipelines Imperative Konzepte Ausführen von Anweisungen Zustand (z.b.

Mehr

5. Java Arrays und Strings

5. Java Arrays und Strings Arrays Arrayvariable deklarieren: int[] z; z 5. Java Arrays und Strings Array erzeugen: z = new int[5]; Allokation, Referenzen, Elementzugriff, Mehrdimensionale Arrays, Strings, Stringvergleiche z ist

Mehr

Aufgabenblatt 1 Variablen, Operatoren, Verzweigungen

Aufgabenblatt 1 Variablen, Operatoren, Verzweigungen Aufgabenblatt 1 Variablen, Operatoren, Verzweigungen Vorwort Dieses Blatt enthält mehr Aufgaben, als in der Präsenzzeit zu bewältigen sind. Suche dir also einfach Aufgaben aus, die dich interessieren oder

Mehr

Abgabe: (vor 12 Uhr)

Abgabe: (vor 12 Uhr) TECHNISCHE UNIVERSITÄT MÜNCHEN FAKULTÄT FÜR INFORMATIK Lehrstuhl für Sprachen und Beschreibungsstrukturen WS 11/12 Einführung in die Informatik I Übungsblatt 1 Prof. Dr. Helmut Seidl, M. Schwarz, A. Herz,

Mehr