Zwischenvortrag zum Entwicklungsstand der Bachelor-Arbeit Direct 3D-Output für ein Rendering Framework von Benjamin Betting unter der Betreuung von Daniel Schiffner 1
Gliederung Kapitel I und II: Motivation,Einführung,Grundlagen Einführung ins das Thema der Arbeit Kurzer Überblick auf die Grundlagen Kapitel III, IV und V: State of the Art, Konzeption, Implementierung Entwicklungsstand des Frameworks als Ausgangspunkt für das Projekt Vorstellung der Konzeption des D3DRenderer Vorstellung des Konzepts der Erweiterung des Frameworks ( ModelLoader ) Kurzer Überblick auf die Implementierung Ausblick: Auflistung möglicher zusätzlicher Erweiterungen des Projekts Vorschläge zu weiteren Erweiterungen für die verbleibende Zeit der Bachelorarbeit 2
Kapitel I: Einführung und Motivation Was ist das Thema? Erstellen eines Direct3D Renderers unter der Verwendung des Frameworks BasicRenderer Erweiterung des Frameworks im Bereich der Modellierung Importmöglichkeit für X-File Format von DirectX Import von Shader-spezifischen Parametern des Modells Eventuell: Import weiterer Formate (OBJ,3ds etc.) Motivation Universelle Render-Applikation unter Verwendung von Direct3D Spezifisches Wissen entfällt Schnelles und einfaches rendern von geometrischen Primitiven ( Rapid Rendering ) Verknüpfung von Shader und Modellen 3
Kapitel II: Grundlagen Überblick Direct3D API CG Toolkit Modelle X File Format (Open Templates) 4
Kapitel II: Direct3D-API Aktuelle Versionen 9 und 10 ( 11 nicht!) Schnittstellenkonzept Devices und Objects Unterschiede zwischen den Versionen 9 und 10 Pipelining Konzept Shader (HLSL) FixedFunction ( ab Version 11 nicht mehr) Systemumgebung Windows-Plattform-abhängig 5
Kapitel II: Cg Toolkit Anwendungsgebiet GPU Programmierung Eigenschaften Syntax, Operatoren, Funktionen ähnlich wie in C API-unabhägig Unterstützt GPU-spezifische Eigenschaften: Vektor und Matrix-Datentypen und Operationen Zugriff auf Texturen (sampler) Variablen werden auf spezielle Hardwareregister abgebildet (Semantik) Unterstützung verschiedener Hardwareplattformen (Graphikchips) Zugehörige Shader Typen: Vertex- und Fragment-Shader Sprache: High-Level,Fast identisch zu DirectX HLSL Format:.Cg, und.fx 6
Kapitel II: Modelle Beschreibungsart Geometrische Modellierung Verwendetes Schema Oberflächendarstellung Approximierung der Oberfläche durch Polygone Wichtigster Bestandteil Die Vertices der Polygone Vertex Eigenschaften: Ortskoordinaten ( n-dimensional) Texturkoordinaten, Farbwert etc. (optional) => modellieren sehr aufwändig, Ablage/Speicherung der geometrischen Daten sinnvoll Kapselung der Daten in eine Struktur => geometrisches File Format Bsp..X 7
Kapitel II: X File Format (Open Templates) Was ist das? Wie funktioniert das? Ablage der Daten in Templates Was ist ein Template? Dynamische Datenstruktur Aufbau ähnlich einer Klasse Template Eigenschaften Syntaxvorgabe Verwendungszweck nicht immer eindeutig Erweiterbar Was Für Templates gibt es? Format zur geometrischen Speicherung von Modellen Meshes,Vektoren,Materialeigenschaften Verwendeter Template Standard : Microsoft.X 1.0c 8
Kapitel III: State of the Art Framework BasicRenderer Version 1.0 Framework für polygonales Rendern Bereitstellung elementarer graphischer Primitiven von Schnittstellen für die Nutzung von Cg von Texturen und Beleuchtung Aber: Nur OpenGL DirectX Modelviewer Schnelles anschauen von Objekten möglich Nur X-File Format Keine Erweiterungen innerhalb des Formates Standalone Software: Nicht portierbar Modelloader Shader (nur Shadermodel 3.0) Erweiterbar und.net kompatibel (Managed Direct 3D) XNA 9
Kapitel IV: Konzeption Konzeption des Projekts D3DRenderer Entwicklungsumgebung und Tools Einbindung des fertigen Projekts zur Laufzeit als DLL Verwendung von BasicRenderer als Basisplattform Direct3D-API ab Version 9.0 nvidias Cg Toolkit 2.0 Microsoft.NET 2.0 10
Fortsetzung Kapitel IV: Konzeption Konzeption eines ModelLoaders Einbettung in das Framework Implementierung losgelöst vom Kontext (Renderer, etc.) Universelles Datenstruktur Import von geometrischen Merkmalsbeschreibungen Überführung der geometrischen Daten WICHTIG! Keine Spezifizierung auf bestimmtes File-Format (z.b. X-Files) Dynamische Erweiterung Benutzerdefinierte Erweiterungen bezüglich Modellparameter Einstellungen für Shader Daher: Open-Templates als Grundlage sehr gut geeignet 11
Fortsetzung Kapitel IV: Konzeption Schwierigkeiten und Herausforderungen Renderer Anpassung der Entwicklungsumgebung (Framework etc.) an die Direct3D - API Berücksichtigung verschiedener Direct3D Versionen ModelLoader Versionschaos von verschiedenen Formaten Einheitliche Interpretation der Daten Einbinden in das Framework (OpenGL und Direct3D ) Format-Unabhängigkeit (bedingt) Transformation der geometrischen Daten Nutzung von Open-Templates zur Erweiterung Laufzeitoptimierungen 12
Fortsetzung Kapitel IV: Konzeption D3DRenderer unterstütze Versionen der API sind Direct3D 9 und 10, kein Direct3D 11! Rendern auf polygonaler Ebene, keine RayTracing Verfahren Windows-Plattform abhängig ModelLoader Unterstützung nur für.x und.obj Geometrien nur statische Geometrien Import einzelner Modelle, keine Szenen kein Export von Geometrien 13
Ausblick Status der Arbeit Die Implementierung des D3DRenderers sowie der Erweiterung des Frameworks wurde fertiggestellt verbleibender Zeitraum bis zum Abgabeterm 2 Wochen Weitere Aufgabenvorschläge weitere File-Formate für den ModelLoader Exportmöglichkeit für Geometrien Einsatz dynamischer Kamerapfade ( Flug durch die Szene ) Importierung ganzer 3D Szenen Animationen d.h. Import animierter Modelle 14