Zwischenstand Herbst 2009 Tobias Zirr. C++ HLSL / FX C++/CLI C# DirectX 9 Assimp PhysX TinyXml zLib libPNG.NET Framework 2.0.

Slides:



Advertisements
Ähnliche Präsentationen
Allgemeines Name: Ursprünglich: „Personal Home Page Tools“
Advertisements

Computer Graphics Shader
Konzeptioneller Vergleich von VRML, Java3D und OpenGL hinsichtlich ihrer Eignung zur Erstellung von Animationen von Christian Stein.
Hauptseminar - Computer Graphics
Lösungsansätze zur automatischen Portierung von Internet-Inhalten für das interaktive Fernsehen Konzeption und Implementierung einer XHTML- Schnittstelle.
Web 2.0 und RIAs - Adobe Air1 Seminar: Web 2.0 und Rich Internet Applications Wintersemester 2007/2008 Daniel Thaidigsmann
Game Engine Architecture - J. Gregory
Graphische Datenverarbeitung IV Dr. Markus Heitz.
Stefanie Selzer - Pascal Busch - Michael Kropiwoda
FH-Hof Geometrie Richard Göbel. FH-Hof Aufbau des virtuellen Universums.
Java: Dynamische Datentypen
Einführung in die Programmierung von 3D-Grafiken Basis ist Java3D
Licht und Schatten Richard Göbel.
OGRE Object-Oriented Graphics Rendering Engine Szenen-orientierte, flexible 3D Engine in C++ Hardware-beschleunigte 3D Grafiken Unterstützt Direct3D und.
Praktikum Entwicklung und Einsatz von Geosoftware I - Sitzung 7 User Interfaces in Java Sommersemester 2003 Lars Bernard.
Java 3D Carina Fleck Licht und Material.
Java3d „Licht und Material“
PKJ 2005/1 Stefan Dissmann Zusammenfassung Bisher im Kurs erarbeitete Konzepte(1): Umgang mit einfachen Datentypen Umgang mit Feldern Umgang mit Referenzen.
Explizite und editierbare Metainformationen für Software Muster.
Visualisierung eines Sultan Han auf Basis einer Gameengine
Access 2000 Datenbanken.
1DVG3 - Paint Paint ein Zeichenprogramm. DVG3 - Paint 2 Paint – ein Zeichenprogramm.
Special Effects Realistischeres Rendern einer Scene.
VFP Class Browser. © 1999 TMN-Systemberatung GmbH Einsatz des Class Browser n Managen von Klassen inklusive, ändern, umbenennen, löschen und umdefinieren.
Struktur-Funktions-Modelle von Pflanzen - Sommersemester Winfried Kurth Universität Göttingen, Lehrstuhl Computergrafik und Ökologische Informatik.
Sommersemester 2004 Jan Drewnak Entwicklung und Einsatz von Geosoftware I Praktikum Sitzung 7 Sitzung 7: User Interfaces in Java.
Depth of Field Ein Fachvortrag von: Max Goltzsche und Igor Marijanovic Real-Time RenderingBeuth Hochschule für TechnikSoSe 2012.
Übersicht Motivation Konzeption Umsetzung/ Implementierung
Informatik 1 Übung 8. NACHBESPRECHUNG Übung 8 Rekursion Existiert Weg von A nach B?
Geräteunabhängige Dienste Projektgruppe Location-based Services for Wireless Devices WS 2004/05 Christine Haertl AG Kao Betriebssysteme und Verteilte.
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
Warum brauche ich ein CMS – Content Management System?
Aurich – Jonas Jacobi OSGi Tutorial Aurich – Jonas Jacobi Das OSGi Service Framework Dynamisches Modulsystem für Java Dynamische.
Einführung / Geschichte Einführung / Geschichte Motivation Motivation Beispiel Beispiel Architektur / Komponenten Architektur / Komponenten Konfiguration.
Tobias Kluge: FAME Middleware / Karlsruhe / The FAME project – Middleware.
Flexible Datenstrukturen
Aichinger Christian, Strasser Jürgen. Inhalt JSF EJB Praxis - Integration.
How to make a Pixar Movie?
What’s New Microsoft Dynamics NAV 5.0
Windows Presentation Foundation, Vorlesung Wintersemester 2013/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 9 Folie 2 ADO.NET (1) Klassen für Zugriffe.
Javakurs FSS 2012 Lehrstuhl Stuckenschmidt
OOP-Begriffe Abstraktion Modellieren Klasse Objekt Attribute Methoden
Bonn-to-code.net Nutzung von.NET User Controls in Legacy Code Sascha Lehmann
Camera, Lights, Action… Dirk Primbs Developer Evangelist
Domain Name Service Grundlagen, Implementierung im Active Directory und Integration von Win2k-Domains in bestehende Umgebungen Kay Sander.
Visionaire - Adventure Game Engine Tipps und Konzepte zur Entwicklung eines Spiele Editors Alex Hartmann.
Beleuchtungsmodelle, Schattierungsmodelle
Neuerungen in Java 5/6/7. Stefan Bühler für InfoPoint Überblick Java 5 neue Sprachfeatures Erweiterungen Klassenbibliothek Java 6 Erweiterungen.
Augmented Reality mit korrekter Beleuchtung Thorsten Grosch
ANIMATION II Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung SS 2013 Softwaretechnologie II (Teil II): Simulation und 3D.
Parallele Programmierung im.NET Framework Darmstadt, Präsentation am Beispiel von C-Sharp (C#)  Wichtige Grundlagen  Generika, Delegate, Lambda,
Erfahrungen mit Microsoft DirectX 8 W. Krug, April 2002.
->Prinzip ->Systeme ->Peer – to – Peer
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.
Terrain Generierung und Navigation Terrain Generierung und Navigation Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Visuelle.
Nik Lutz, Stefan Feissli, Christof Seiler Diplomarbeit Verteidigung.
Die Renderpipeline.
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie.
JAVA 3D 1 Einführung in die Java3D API JAVA 3D2 Was ist Java3D? Standard-Extension-Klassenbibliothek für Java X (X >= 1.2) Ermöglicht.
Universität zu Köln Institut für Historisch- Kulturwissenschaftliche- Informationsverarbeitung SS 2011 Dozent: Prof. Dr. Manfred Thaller AM3 Seminar „Softwaretechnologie.
Reflection API1 Motivation Reflection API Core Reflection API: java.lang.reflect Seit JDK 1.1 integraler Bestandteil der Java- Klassenbibliothek Ermöglicht:
1 Acquiring the Reflectance Field of a Human Face Paul Debevec et al.
COLLADA II Digital Asset Schema Release Anike Schulz Reusable Content in 3D und Simulationssystemen Prof. Thaller.
 Einführung  Szenengraphen  Bestandteile  Eingabe  JOGL  LWJGL  Beispiele  ARDOR3D Games 04/23/12Ardor 3D – Holzwarth/Kau 2.
SAN & NAS © Nicole Waibel Index NAS SAN Quellen
Computergraphik und Visualisierung Prof. Dr. S. Gumhold, Computergraphik I, WS 07/08 – Mathematische Grundlagen1 Data Manager Interaction Engine Visualization.
Photon Mapping Jörg Hedrich Lena Kohl Ruth Recker Anke Schneider Pascal Sproedt Benjamin Zapilko Projektpraktikum: Augmentierte Bildsynthese mit Photon.
Tutorium Software-Engineering SS14 Florian Manghofer.
Rechen- und Kommunikationszentrum (RZ) Selektionsstrategien auf Graphstrukturen Sven Porsche Seminarvorträge Aachen.
Gastvortrag HoloLens Programm Über mich HoloLens Daten Bedienung
 Präsentation transkript:

Zwischenstand Herbst 2009 Tobias Zirr

C++ HLSL / FX C++/CLI C# DirectX 9 Assimp PhysX TinyXml zLib libPNG.NET Framework 2.0

beCorebeMathbeRenderbeRenderDXbeEntitySystembeScenebeSimulation(PhysX) Global HeapGarbage TrackerInfo StreamFile System Resource Management Interfaces Container Templates TimerSTL Container Wrappers Optimierte Speicherverwaltung Optimiertes Einfüge- / Löschverhalten Vektoren & Matrizen Strahlen & EbenenKugeln & Boxen Intersection Tests Hauptsächlich zu Culling- & Picking-Zwecken UtilitiesDirectX 9 Device WrapperEffect Framework Erweiterte HLSL Semantics Setups (Dynamische Materialien) Resource ManagementState Management

beEntitySystembeScenebeSimulation(PhysX) Zweckgebundene Interfaces (Tags) Animation, Synchronisation, etc. Property System Generische Setter & Getter für Objektzustand Ermöglicht generische Konfiguration und Serialisierung (z.B. in einem Editor) Controller System Synchronisation zusammengehöriger Objekte Entities Position, Orientierung, Richtung, Caching Virtuelles Positionierungssystem (Präzision) Entity Nodes Entity-Container / Hierarchieelement Simulation Root Entity Node Timing Aktualisierung und Synchronisation der Entities Zweckgebundene Interfaces (Tags) Renderables, Lights, Scene Nodes Standard Mesh & Light EntitiesRendering PipelineGPU Helpers Clearing Normal Map Generation Mesh Manager Instancing Mesh Builders Resource Management Simulation (Szene) Root Scene Node Aufbau des Render Trees über Scene Nodes Kameraverwaltung PhyX Simulation Host Schnittstelle zwischen PhysX Simulation und Engine Thread-Synchronisation Resource Management Standard Physics Controllers Bounding, Shape, Mesh, Character Controllers Synchronisation der Besitzer-Entities mit ihren PhysX-Repräsentationen Simulation Verwaltung der Simulation Hosts Verteilung der Synchronisationsaufrufe Prototyp mehr dazu gleich

Einfacher Aufbau und Bedienung Geringer Integrationsaufwand bei der Entwicklung neuer Komponenten Umfangreiches Angebot flexibler Konzepte, die dem Entwickler als Rahmen dienen Properties, Controllers, Synchronization, Animation, Entities, Entity Nodes, Effect Binders, Renderables, Lights, Scene Nodes, Mesh Builders… breeze

Es war einmal… typedef struct D3DMATERIAL9 { D3DCOLORVALUE Diffuse; D3DCOLORVALUE Ambient; D3DCOLORVALUE Specular; D3DCOLORVALUE Emissive; float Power; } D3DMATERIAL9, *LPD3DMATERIAL9; Wohin mit neuen Materialeigenschaften?

Mögl. Verwaltung von Materialeigenschaften Verschiedene feste Datenstrukturen pro Shader(gruppe)

FFP Spezial-Shader Vorläufer-Projekt

Hartcodierte Spezial- Datenstruktur Vorläufer-Projekt

Mögl. Verwaltung von Materialeigenschaften Verschiedene feste Datenstrukturen pro Shader(gruppe) Erweiterte Über-Datenstrukturen mit selektiver Nutzung durch verschiedene Shader(gruppen)

Standard- Daten- struktur Zusatz- texturen Zusatz- konstanten Vorläufer-Projekt

Mögl. Verwaltung von Materialeigenschaften Verschiedene feste Datenstrukturen pro Shader(gruppe) Erweiterte Über-Datenstrukturen mit selektiver Nutzung durch verschiedene Shader(gruppen) Dynamische Datenstrukturen Keinerlei vorgegebene Daten Tweakables werden zur Laufzeit aus der Effect-Datei geladen und ergeben eine individuelle Datenstruktur

FFP-Kompatibilität erfordert vielerorts mehrere Render-Pfade Dynamische Materialien bieten in reiner Shader-Umgebung zugleich optimale Flexibilität und einfachste Handhabung Rendering API ohne FFP-Ballast wesentlich schlanker

FFP-Kompatibilität erfordert vielerorts mehrere Render-Pfade Dynamische Materialien bieten in reiner Shader-Umgebung zugleich optimale Flexibilität und einfachste Handhabung Rendering API ohne FFP-Ballast wesentlich schlanker if(shaderModel < 2) throw Go buy a new computer!; if(shaderModel < 2) throw Go buy a new computer!;

Live Demo

Pipeline Pipes (Rendering Scope) Render Targets Processing Pipelines Effect Binders Effect Binder Pools Render Tree

Perspectives LightsRender Queues Renderables Cached Affecting Lights PipeTransformation (View, Proj)Setup CallbackMatrix & Vector Cache Wird jedes Frame neu gebaut!

Pre-Pass Render Tree Traversal Depth Data Auxiliary Data Pre-Processing Lighting Shadow Projection AO … Main Pass Render Tree Traversal Color Data Post- Processing Fog God Rays DOF Tone Mapping Bloom Overlays

Pipe Render Targets Pass Information Render Tree Perspective Data Entity Data Effect Binder Pool Shared Parameters Parameter Indices Renderable Render Queue Effect Binder

Pipeline Effect Binder Pipe Effect Binder Lighting Effect Binder Processing Effect Binder Entity Effect Binder Perspective TransformationFlow Control (Pass Loops, Pre- & Post-Pass State)Timing Parameters Render Target SharingAutomated Clearing, Swapping & ScalingPass Type FilteringAutomated Light Querying & SortingPermutation-Sensitive Light PartitioningLight Parameter ManagementEntity TransformationRender Queues Screen Offsets & Scaling

Live Demo

Wichtige Gelenkstellen Transformation Einfaches Rendering Instanziertes Rendering Animation im Shader Beleuchtung Mehrere Lichter in beliebigen Licht-Typ-Kombinationen Schatten & Projezierte Texturen (Ein / Aus) Material Farb-, Normal- und Reflexionstexturen Vielfältige Varationen von Beleuchtungsmodellen

Lösungsansätze Über-/Super-Shader Static Branching Vorkompilierung aller genutzten Kombinationen Inferred (/ Deferred) Lighting Optimale Trennung von Transformation, Beleuchtung und Material macht vorkompilierte Kombinationen überflüssig In vielen bekannten Firmen im Kommen: The combination of deferred lighting and this technology allows CryENGINE® 3 to avoid the traditional shortcomings of Uber Shaders alone. – CryENGINE 3 Specifications, Crytek.com Dynamic Shader Linkage DirectX 9 Fragment Compiler DirectX 11 Interfaces

Ein Super-Shader-Kompromiss Material als höchstes Ordnungselement Verfügbare Licht-Kombinationen werden vom Shader-Entwickler als Passes mit entsprechender Markierung versehen und von den Effect Binders zur Laufzeit ausgewählt Transformation ist Teil einer zentralen Basisklasse, die ähnlich der Super-Shader-Technologie die Transformation für alle Entity-Typen durchführen kann Klassen und Interfaces in HLSL neu seit November 2008, auch in DirectX 9 verfügbar

Vorteile des Kompromisses Auswahl eines Shaders intuitiv, weil gleichbedeutend mit Festlegung der Beschaffenheit eines Objektes Reduzierung des Verwaltungsaufwands von 3 auf 2 Gelenkstellen Aufgeräumte Shader dank Abstrahierung mit Hilfe der neuen HLSL Sprachfeatures Nachteile des Kompromisses Reduzierung der Komplexität nur nach Außen, effektiv werden weiterhin alle Permutationen vorkompiliert

Szenenklasse beschränkt sich auf einfaches Frustum Culling Keine Information über die Szenenstruktur Spezialisierung durch Implementierung des Scene Node Interfaces Landschaften besitzen von sich aus Quadtrees Portal-Sektor-System als extra Scene Node

Synchronize Synchronisation aller Threads Abfragen der Resultate Controller führen die parallel gewonnenen Daten im Entity zusammen Step Abfragen der vergangenen Zeit Animation durch Entities Animation durch Controllers Weitergabe des Zeitschrittes an parallele Threads (z.B. PhysX) Flush Aktualisierung der parallelen Daten nach Animation Anstoßen der parallelen Threads mit den neuen Daten

Live Demo