Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.

Slides:



Advertisements
Ähnliche Präsentationen
Computer Graphics Shader
Advertisements

Ziele von EINI I + II Einführen in „Informatik“
Sortieren I - Bubblesort -
Lineare Interpolation - Beispiel
Graphische Datenverarbeitung IV Dr. Markus Heitz.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
Vorlesung Informatik 2 Algorithmen und Datenstrukturen (20 - AVL-Bäume: Entfernen, Bruder-Bäume) Prof. Th. Ottmann.
Algorithmentheorie 12 – Spannende Bäume minimalen Gewichts
Simulation und 3D-Programmierung Praxis: Dreiecke, Texturen, Vertex-Buffer Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung.
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.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Java3d „Licht und Material“
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik I Vorlesung Listen-
PRJ 2007/1 Stefan Dissmann Motivation Problem: Benutztes Objekt kennt den Kontext seiner Nutzung nicht. Daher kann es in besonderen Situationen keine Entscheidung.
Lies genau und mach Dir ein Bild!
Einführung in Visual C++
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Displacement Mapping Dynamische Generierung detaillierter Geometrien
PRJ 2007/1 Stefan Dissmann Verkettete datenstruktur: Liste Problem: Liste, die eine beliebige Zahl von Elementen verwaltet Operationen: Erzeugen, Anfügen,
BSP Binary Space Partitioning
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung 1 SS 2001 Algorithmus von Dijkstra.
Collision Detection.
Telecooperation/RBG Technische Universität Darmstadt Copyrighted material; for TUD student use only Grundlagen der Informatik I Thema 14: Schrittweise.
Einführung in die App- Programmierung Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Medien zwischen Technik und Gesellschaft.
Einführung in die Informatik für Naturwissenschaftler und Ingenieure (alias Einführung in die Programmierung) (Vorlesung) Prof. Dr. Günter Rudolph Fachbereich.
3D- Spieleprogrammierung
PHP und MYSQL am Organisatorisches Der komplette Kurs im Schnelldurchgang Bewertung von wichtig und unwichtig Historisch Kulturwissenschaftliche.
Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Universität zu Köln Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung Wintersemester 2011/2012 Dozent: Prof. Dr. phil. Manfred Thaller.
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.
Von der Planung bis zum Hauptmenü Seminar: Softwaretechnologie II Dozent: Prof. Manfred Thaller Referent: Jan Bigalke.
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
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 2010/11 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger Institut.
Ein PC-Game selber machen
Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung WS 12/13 Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Algorithmen und Datenstrukturen Übungsmodul 8
Institut für Wirtschaftsinformatik – Software Engineering, JKU Linz 1 Thomas Hilpold: Algorithmen und Datenstrukturen SS 2005 Mag.Th. Hilpold u. Dr. A.Stritzinger.
Beleuchtung, inkl. Schatten, Reflexionen
Seminar: Grundlagen Wissenschaftlichen Arbeitens
SWE1 / Übung 10 ( ) Rekursion Binärbäume.
PART V CONTACT PHYSICS Chapter Aufbaumodul 3: Visuelle Programmierung II Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Prof.
Alexander ZapletalObject Space 1 /15 Object Space von Alexander Zapletal.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung WS 2013/14.
Erfahrungen mit Microsoft DirectX 8 W. Krug, April 2002.
Universität zu Köln WS 2014/15 HKI – Softwaretechnologie 2 (Teil 1) Von Tilo Kochs.
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.
Stefan Röttger Universität Stuttgart (VIS). Überblick 1. Motivation 2. Shadow Volumes [Crow77] 3. Verfahren ohne Stencil Buffer 4. Demonstrationsfilm.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Softwaretechnologie für Fortgeschrittene Teil Thaller Stunde III: Bildverarbeitung III Köln 8. Januar 2015.
Historisch-Kulturwissenschaftliche Informationsverarbeitung Übung: Softwaretechnologie II / Visuelle Programmierung Dozent: Prof. Dr. Manfred Thaller WS.
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie.
Mag. Thomas Hilpold, Universität Linz, Institut für Wirtschaftsinformatik – Software Engineering 1 Algorithmen und Datenstrukturen 1 SS 2002 Mag.Thomas.
Algorithmen und Datenstrukturen 1 SS 2002
Java-Kurs Übung Besprechung der Hausaufgabe Vererbung
Einführung in die Programmierung mit Java
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Diskrete Mathematik II Vorlesung Suche des kürzesten Weges in einem Netz.
Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil I): Simulation und 3D Programmierung Prof.
Diskrete Mathe Diskrete Mathematik I Listen Vorlesung 4.
ROBERT NYSTROM GAME PROGRAMMING PATTERNS III.8 Thema: Sequencing Patterns Seminar: Softwaretechnologie II (Teil 2) Dozent: Prof. Dr. Manfred Thaller Referent:
Spatial Partition Game Programming Patterns / Optimization Patterns AM3: Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung Dozent: Prof.
Game Loop & Update Method Robert Nystrom – Game Programming Patterns Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung SS.
Tutorium Software-Engineering SS14 Florian Manghofer.
© Tobias Bäuerle, Virtuelle Präsenz WS10/11, Uni Ulm Übung Second Life Techniken.
 Präsentation transkript:

Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie II Teil 1: Simulation und 3D-Programmierung WS 2010/2011 Dennis Kiewning Fortgeschrittene Techniken (750 – 755): Stereo-3D-Grafik - Raumaufteilung - Light-Mapping

Stereo-3D-Grafik 9.4 Prinzip: Trennen der Bilder : Zwei Bilder rendern Zwei Bilder mit Rot und Blau kombinieren: Rot/BlauFilter (Brille) Vorteile: Kostengünstig Funktioniert mit (fast) jeder Grafikkarte Einfach zu implementieren Nachteil: eine Farbe geht komplett verloren: - bei Rot-Blau: Grün - bei Rot-Grün: Blau

Implementierung: Render-State D3DRS_COLORWRITEENABLE kontrolliert, welche Farbkanäle beim Rendern geschrieben werden und welche nicht: 1)Szene beginnen und alle Puffer leeren 2)D3DRS_COLORWRITEENABLE D3DCOLORWRITEENABLE_RED 3)Die Szene von links rendern 4)Z- und Stencil-Buffer leeren 5)D3DRS_COLORWRITEENABLE D3DCOLORWRITEENABLE_BLUE 6)Die Szene von rechts rendern 7)Szene beenden und den Bildpuffer sichtbar machen Stereo-3D-Grafik 9.4

Beispielprogramm: Galactica unterstützt 3D-Brillen: #define _3D_GLASSES oben in die Datei GAME.CPP schreiben Stereo-3D-Grafik 9.4

Raumaufteilung 9.5 Bisher standen Spielfiguren und bewegliche Objekte im Mittelpunkt. Andere Spieltypen werden allerdings häufig durch ein statisches Objekt – den Level – eingenommen. Problem: Solche Objekte besitzen viel mehr Dreiecke als jedes andere Objekt. Lösung: Rekursives Rendern!

Rekursives Rendern: Modell aufteilen und nur sichtbare Teile rendern: - BSP (Binary Space Partition) - Generieren eines Octrees Grundprinzip: Man hat den Level rekursiv unterteilt, und man kennt die Bounding-Box oder die Bounding-Sphere jedes einzelnen Teils (Knotens). Das Rendern erfolgt nun ebenfalls rekursiv. Raumaufteilung 9.5

void RenderNode(Node* pNode) { // Ist der Knoten sichtbar? if(tbBoxVisible(pNode, g_aViewFrustum)) { // Ja, er ist sichtbar! // Wenn es ein Endknoten ist, rendern wir seine Dreiecke. if(pNode->bIsLeaf) { // Effekt starten //... // Rendern g_pD3D->SetStreamSource(...); g_pD3D->SetIndices(...); g_pD3D->DrawPrimitive(...); } else { // Es ist kein Endknoten! // Nun rufen wir rekursiv die Unterknoten auf. for(int i = 0; i iNumChilds; i++) { // Unterknoten rendern RenderNode(pNode->apChild[i]); } Raumaufteilung 9.5 Rekursives Rendern: (Bounding-Box)

PVS und Portale: Auch mit BSP-Trees oder Octrees muss die Grafikkarte immer noch viele überflüssige Dreiecke rendern. Lösung: PVS –Potencially Visible Set: Eine Liste, die alle Knoten eines Baums enthält, die potenziell sichtbar sind: - Funktioniert bei Indoor-Levels - Türen die Räume verbinden = Portale Raumaufteilung 9.5

PVS und Portale: Erstellen eines neuen Sichtbereich: ein neues View-Frustum Vor dem Rendern eines Knotens prüfen, ob er sich im neu generierten Sichtbereich befindet. Vorteile: Große Teile des Levels wegcullen Rendern dynamischer Objekte außerhalb des Sichtfelds sparen

Light-Mapping Light-Mapping: Grundgedanke: Lichtquellen reduzieren Textur, die lediglich die Beleuchtung eines Dreiecks darstellt Diffuse und Lightmap werden über den Operator D3DTOP_MODULATE verbunden

Light-Mapping Light-Maps generieren: 1) Lohnt es sich eine Light-Map anzufertigen? 2) Größe der Light-Map für jedes Dreieck festlegen: Light-Map-Texel durchsuchen und dessen Beleuchtung berechnen Ray-Tracing (Radiosity) 3) Light-Maps in einer großen Textur zusammenfassen: verringert beim Rendern den Aufruf von SetTexture Wichtig: Vertizes der Dreiecke brauchen jeweils zwei Texturkoordinatenpaare: Diffuse + Lightmap

Die TriBase-Klasse tbOctree Die TriBase-Klasse tbOctree: Übergabe einer Modelldatei Anschließende Umwandlung in einen BSP-Tree oder einen Octree tbOctree-Klasse zum Rendern des Octrees verwenden