Oliver Rahner – Hauptseminar Computer Graphics, SS 2007 computer graphics & visualization DirectX 10 API Neuerungen in Direct3D 10.

Slides:



Advertisements
Ähnliche Präsentationen
Powerpoint Test File Eine kleine Präsentation zum Testen.
Advertisements

Automation and Drives SIMATIC Software STEP 7 V5.4 Highlights der neuen STEP 7 Version SIMATIC Software.
Computer Graphics Shader
Animation I Referat von Maximilian Humpert
Imperative Programmierung
Stefan Dubois WS 02/03 Texturen in Java 3D. Übersicht Was sind Texturen? Klassenhierarchie fünf-Schritt-Plan Optionen für Texturen (Auswahl) TextureAttributes.
Microsoft Referenzarchitekturen- Infrastruktur für Connected Systems
Entwicklung und Einsatz von Smart Client-Anwendungen Jens Häupel Developer Evangelist Microsoft Deutschland GmbH Dirk Primbs.
Neue Mobilität Frank Prengel Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
HCI.
der Universität Oldenburg
Objektrelationales Mapping mit JPA Entity Mapping Jonas Bandi Simon Martinelli.
10 Streams JavaHS Merseburg WS 05/06 E/A - Ströme (Streams) in Java.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
FH-Hof Indirekte Adressierung Richard Göbel. FH-Hof Einfache Speicherung von Daten Eine "einfache" Deklaration definiert direkt eine Speicherplatz für.
FH-Hof Texturen Richard Göbel. FH-Hof Anwendungen von Texturen Darstellung von 2D-Bildern Gestaltung von Oberflächen Simulation komplexer Geometrien...
Shaderprogrammierung T. Goeschel + F. Theilacker
OGRE Object-Oriented Graphics Rendering Engine Szenen-orientierte, flexible 3D Engine in C++ Hardware-beschleunigte 3D Grafiken Unterstützt Direct3D und.
Welcome DTD. Document Type Definition Graphic Services/Everything you already know about presentations Was ist eine DTD? DTD ist eine Schemasprache.
Diskrete Mathematik I Vorlesung Arrays-
Link Layer. Physical Layer Link Layer Host Controller Interface L2CAP Attribute Protocol Attribute Profile PUIDRemote ControlProximityBatteryThermostatHeart.
DVG Felder1 Felder. DVG Felder 2 Was sind Felder? Felder sind Reihungen aus endlich vielen Elementen gleichen Typs. Z.B.: Vektoren : (x.
08-GraphikImplementierung Implementierung der Graphik in EMMA301Paint.
DVG Verkettete Listen Verkettete Listen. DVG Verkettete Listen 2 Primitive Datentypen Vorteile: –werden direkt vom Prozessor unterstützt.
Computer Graphics - Ray Tracing Exercises -
The XeriScape Artificial Society Von: Ralf Kopsch Seminar: Artifical Life.
Thin Client vs. Zero Client Key Account Government 04 / 2012 Tim Riedel Welche Vorteile bieten Thin Clients gegenüber Zero Clients?
Libero: Design Creation / Verification Seminar WS04/05 Andreas Schibilla (ii4900)
Matrizenrechnung und Technologieeinsatz
Medien zwischen Technologie und Gesellschaft Dozent: Herr Prof. Dr. Manfred Thaller SS 13 Referent: Christian Braun.
Computerorientierte Physik SS 2006 USB Experiment Interface Board.
Zurück zur ersten Seite Das Grundwahlfach Deutsch: 6 Wochenstunden.
Google App Engine Microsoft Windows Azure
Ein kommando unter Windows 7
Server.
Inhalt Was ist A-Plan? Einsatzgebiete Organisation der Daten
OO implementieren Teil IV Objekte erzeugen. © René ProbstModul 226IV - 2 Von der Klasse zum Objekt Plan Bau Objekt Klasse Instanzierung Objekt Das Objekt.
Java Performance Tuning Performance Tuning is similar to playing a strategy game but happily you usually get paid for it.
Chair of Software Engineering Einführung in die Programmierung Prof. Dr. Bertrand Meyer Lektion 14: Mehrfachvererbung.
ETS4 - Was ist neu? - Wie fange ich an? - Noch Fragen?
Test Driven Development - Romano Adler-
VHDL-Synthese für Fortgeschrittene
The free XML Editor for Windows COOKTOP Semistrukturierte Daten 1 Vortrag Semistrukturierte Daten 1 COOKTOP The free XML-Editor for Windows
Gameplay Systems I Softwaretechnologie II (Teil 2): Simulation und 3D Programmierung SS 2012 Prof. Dr. phil. Manfred Thaller Referent: Christian Weitz.
Prof. Dr. Rüdiger Westermann, Dr. Jens Schneider Computer Graphics and Visualization Group computer graphics & visualization Proseminar Real-time Computer.
Entity Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Advanced Mapping Persistente Domänenmodelle mit JPA 2.0 und Bean Validation.
Shader.
Frank Fischer + Bernhard Frank Microsoft Deutschland GmbH.
3/28/2017 8:11 PM Visual Studio Tools für Office { Rapid Application Development für Office } Jens Häupel Platform Strategy Manager Microsoft Deutschland.
MVVM in Windows 8 und Windows Phone 8
Verhalten von Objekten in der Szene
Parallel Programming Thread Synchronization. Heute 1. Lösung zu Assignment 2 2. Erstellen und Starten von Threads in Java 3. Das synchronized Schlüsselwort.
Kap 4-1OHO Kap. 4.2 Das Orbix CORBA-System Kurzer überblick zu der CORBA-Implementierung Orbix •Unser Fahrplan: •IDL Verwendungsbeispiel •Zoom-In: CORBA.
Algorithmen und Datenstrukturen Übungsmodul 6
Real Time Operating System
Equals, Hashcode und CompareTo Micha Kessler
Template v5 October 12, Copyright © Infor. All Rights Reserved.
Inhalt Motivation Hardware Design aktueller GPUs
Common Language Runtime Seminar Softwareentwicklung Wintersemester 2003 Gertraud Orthofer
Torque in Turbine Team 3 Alexander Mittermair Michael Wesinger.
Präsentation der Diplomarbeit:
Launch ON Global.vi System ID object name classname Services to suscribe Observer Control Ref vi-path Service name Step 1 : Objects register to the Global.vi´s,
Seminarvortrag Grafikkarten der 6. Generation Vortragender: Martin Ley Betreuer: Prof. Dr. Norbert Link.
Java Thread Scheduling Jin Zhou Proseminar Java Thread Scheduling November 2000.
Data Mining Spectral Clustering Junli Zhu SS 2005.
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.
Diskrete Mathematik I Vorlesung 2 Arrays.
Java Programme nur ein bisschen objektorientiert.
Tutorium Software-Engineering SS14 Florian Manghofer.
 Präsentation transkript:

Oliver Rahner – Hauptseminar Computer Graphics, SS 2007 computer graphics & visualization DirectX 10 API Neuerungen in Direct3D 10

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Neuerungen in Direct3D 10 - Verarbeiten ganzer Primitive in der Geometry Shader Stage - Ausgabe pipeline-generierter Daten in der Stream Output Stage - Objekte und Modelle zur Reduzierung von CPU- Overhead - Neue Ressourcentypen und –formate - Resource Views - Wegfall von Capability Bits - Layered Runtime - Common-Shader Core

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Neuerungen in Direct3D 10 Verarbeiten ganzer Primitive in der Geometry Shader Stage

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Geometry Shader - bekommt als Eingabe nicht Punkte sondern Primitive - kann nicht nur vorhandene Vertices manipulieren, sondern auch neue Primitive erstellen

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Geometry Shader in HLSL (1) - Definition des GS in der Technique: technique10 RenderTextured { pass p0 { SetVertexShader( CompileShader( vs_4_0, VSScene() ) ); SetGeometryShader( CompileShader( gs_4_0, GSScene() ) ); SetPixelShader( CompileShader( ps_4_0, PSScene() ) ); }

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Geometry Shader in HLSL (2) - der (nicht-modifizierende) GeometryShader: [maxvertexcount(3)] void GSScene( triangleadj GSSceneIn input[6], inout TriangleStream OutputStream) { PSSceneIn output = (PSSceneIn)0; for( uint i=0; i<6; i+=2 ) { output.Pos = input[i].Pos; output.Norm = input[i].Norm; output.Tex = input[i].Tex; OutputStream.Append( output ); } OutputStream.RestartStrip(); }

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Einsatzmöglichkeiten von GS - Expandierung von Point Sprites - dynamische Partikelsysteme - Generierung von Fell - Generierung von Schattenvolumen - Single-Pass Cubemap-Erzeugung - …

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Neuerungen in Direct3D 10 Ausgabe pipeline-generierter Daten in der Stream Output Stage

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Stream Output Stage (1) - Daten aus GS können in eine oder mehrere Buffer Resources im Speicher geschrieben werden - können in einem späteren Rendering Pass wiederbenutzt oder - zum Auslesen durch die CPU in eine Staging Resource kopiert werden

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Stream Output Stage (2) - GS liefert keine vorhersehbare Datenmenge Länge des Streams kann variieren Länge des Streams kann variieren - Lösung: ID3D10Device::DrawAuto() CPU braucht die Größe des Buffers nicht zu kennen CPU braucht die Größe des Buffers nicht zu kennen

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 SO-Stage in C++/HLSL (1) - Definition des GS mit StreamOutput: GeometryShader gsStreamOut = ConstructGSWithSO( CompileShader( gs_4_0, GSAdvanceParticlesMain() ), "POSITION.xyz; NORMAL.xyz; TIMER.x; TYPE.x" ); technique10 AdvanceParticles { pass p0 { SetVertexShader( CompileShader( vs_4_0, VSPassThroughmain() ) ); SetGeometryShader( gsStreamOut ); SetPixelShader( NULL ); SetDepthStencilState( DisableDepth, 0 ); }

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 SO-Stage in C++/HLSL (2) - Binden des Buffers an den Stream Output: D3D10_BUFFER_DESC vbdesc = …; ID3D10Buffer* g_pParticleStreamTo; ID3D10Buffer*pBuffers[1]; pd3dDevice->CreateBuffer( &vbdesc, NULL, &g_pParticleStreamTo ); pBuffers[0] = g_pParticleStreamTo; pd3dDevice->SOSetTargets( 1, pBuffers, offset );

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Neuerungen in Direct3D 10 Objekte und Modelle zur Reduzierung von CPU-Overhead

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 State Objects (1) - 5 State-Objects - ermöglichen billigen Wechsel von State Changes - jedes Objekt initialisiert einen bestimmten State in der Pipeline

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 State Objects (2) - Input-Layout State Format und Umfang der geometrischen Daten im Eingangspuffer - Rasterizer State - Depth-Stencil State - Blend State - Sampler State

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 State Objects (2) - Input-Layout State - Rasterizer State Status des Rasterisierers, u.a. Fill und Cull - Depth-Stencil State - Blend State - Sampler State

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 State Objects (2) - Input-Layout State - Rasterizer State - Depth-Stencil State Konfiguration Tiefenpuffer und Stencil-Test - Blend State - Sampler State

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 State Objects (2) - Input-Layout State - Rasterizer State - Depth-Stencil State - Blend State legt fest, wie PS-Ausgabe und Renderziel von der OM-Stage vermischt werden - Sampler State

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 State Objects (2) - Input-Layout State - Rasterizer State - Depth-Stencil State - Blend State - Sampler State legt Texturmuster fest

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Shader Constants - Shader Konstanten werden nur in Puffern abgelegt - 2 Typen: - Constant Buffer (cbuffer) - Texture Buffer (tbuffer) - Sollten nach Häufigkeit der Aktualisierung gruppiert werden Performancegewinn cbuffer cb0 { float4x4 g_mWorldViewProj; float4x4 g_mInvView; }; tbuffer tbAnimMatrices { matrix g_mTexBoneWorld[MAX_BONE_MATRICES]; };

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Neuerungen in Direct3D 10 Neue Ressourcentypen und -formate

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Buffer Resources - Vertex Buffer - wird vom Input-Assembler zu Primitiven zusammengesetzt - alle Werte im Vertex Buffer müssen den gleichen Typ haben - Index Buffer - Shader-Constant Buffer

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Buffer Resources - Vertex Buffer - Index Buffer - enthält 16- oder 32-bit Indizes - Shader-Constant Buffer

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Buffer Resources - Vertex Buffer - Index Buffer - Shader-Constant Buffer - ähnlich dem Vertex Buffer - wird per Flag (D3D10_BIND_CONSTANT_BUFFER) als Shader-Constant gekennzeichnet

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Texture Resources - Texels - kleinste Einheit einer Texture, die von der Pipeline gelesen/geschrieben werden kann - 1 bis 4 Komponenten, je nach ausgewählten DXGI- Format angeordnet (z.B. R8G8B8A8_UINT) - Texture1D / Texture1DArray - Texture2D / Texture2DArray - Texture3D

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Texture Resources - Texels - Texture1D / Texture1DArray - Texture2D / Texture2DArray - werden durch u(/v)- Werte/Vektoren adressiert - können MipMap-Levels enthalten - Spezialfall 2D-Array: CubeMaps - Texture3D Texture2DArray Texture2D Texture2DArray als Cubemap

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Texture Resources - Texels - Texture1D / Texture1DArray - Texture2D / Texture2DArray - Texture3D - adressiert durch (u,v,w)-Vektor - verhält sich als Rendertarget wie ein 2D-Array - kein Array-Konzept!

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Texture Subresources - Subresource: Kombination aus Textur-Ressource und Mipmap-Level - wird benutzt für Resource Views

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Neuerungen in Direct3D 10 Resource Views

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Resource Views (1) - legt die Hardware-Interpretation einer Ressource im Speicher fest - erlaubt Pipeline Stages, lediglich auf die benötigten Subresourcen zuzugreifen - Beispiel: Zugriff auf alle Mipmaps Level 2 eines Texture2DArray

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Resource Views (2) Verwendung als - Render-Target View - nur ein Mipmap-Level darf Render-Target sein - zugehöriger Depth Stencil View - Depth Stencil View - Shader Resource View

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Resource Views (2) Verwendung als - Render-Target View - Depth Stencil View - wird zusammen mit dem zugehörigen Render-Target View an die OM-Stage gebunden - Shader Resource View

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Resource Views (2) Verwendung als - Render-Target View - Depth Stencil View - Shader Resource View - bindet eine Ressource an eine Shader Stage - dieser View kann eine Ressource als etwas anderes interpretieren, als sie erzeugt wurde Texture2DArray CubeMap Texture2DArray CubeMap

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Neuerungen in Direct3D 10 Wegfall von Capability Bits

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Wegfall von Capability Bits von Microsoft gepriesen: - festgelegte Funktionalität von DirectX 10 – Hardware keine CAP Bits mehr nötig keine CAP Bits mehr nötigABER: für Ressourcen-Formate gibt es wiederum optionale Features u.a. für MSAA und FP32-Filterung

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Neuerungen in Direct3D 10 Layered Runtime: in Ebenen angeordnete Laufzeitstruktur

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Runtime Layers ermöglicht beim Erzeugen eines D3D10-Devices, die Funktionalität in Schichten anzugeben - Core Layer - bietet Grundfunktionen - ist die einzige obligatorische Ebene - Debug Layer - Switch-To-Reference Layer - Thread-Safe Layer

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Runtime Layers ermöglicht beim Erzeugen eines D3D10-Devices, die Funktionalität in Schichten anzugeben - Core Layer - Debug Layer - ermöglicht Parameter- und Konsistenzvalidierung - erzeugt Debugausgaben - wie üblich: Device mit Debug Layer läuft merklich langsamer - Switch-To-Reference Layer - Thread-Safe Layer

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Runtime Layers ermöglicht beim Erzeugen eines D3D10-Devices, die Funktionalität in Schichten anzugeben - Core Layer - Debug Layer - Switch-To-Reference Layer - ermöglicht einer Anwendung den Wechsel auf die von Hardware-Device (HAL) auf Referenz-Device (REF) - Thread-Safe Layer

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Runtime Layers ermöglicht beim Erzeugen eines D3D10-Devices, die Funktionalität in Schichten anzugeben - Core Layer - Debug Layer - Switch-To-Reference Layer - Thread-Safe Layer - ermöglicht Zugriff auf das Grafik-Device parallel aus mehreren Threads - Achtung! Dieses Layer ist standardmäßig aktiv und muß explizit abgeschaltet werden, falls dies gewünscht ist! D3D10_CREATE_DEVICE_SINGLETHREADED D3D10_CREATE_DEVICE_SINGLETHREADED

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Neuerungen in Direct3D 10 Common-Shader Core

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Common-Shader Core (1) - Gedanke: alle Shader-Arten bieten dieselbe Grundfunktionalität

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Common-Shader Core (2) - Input Data - Vertex Shader: vom Input Assembler - Pixel/Geometry Shader: vom vorherigen Shader - system-generierte Werte, werden von der ersten zutreffenden Pipeline-Einheit benutzt

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Common-Shader Core (2) - Output Data - Shader geben Daten an die nächste Stage weiter - Menge an GS-Output kann variieren

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Common-Shader Core (2) - Shader Code kann… - aus dem Speicher lesen - fp- und int-Arithmetik durchführen - Flußkontrolle - unbegrenzte Zahl von Anweisungen

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Common-Shader Core (2) - Samplers - definieren, wie Texturen gesampled und gefiltert werden - 16 Sampler pro Shader gleichzeitig

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Common-Shader Core (2) - Textures - können per Sampler gefiltert oder texelweise mit load() gelesen werden

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Common-Shader Core (2) - Buffers - können nicht gefiltert werden - werden elementweise per load() gelesen Buffer und Textures gleichzeitig pro Shader

computer graphics & visualization Oliver Rahner - Hauptseminar Computer Graphics, SS 2007 Common-Shader Core (2) - Constant Buffers - optimiert für Shader- Constants, also für häufige Updates durch die CPU - 16 Constant Buffers gleichzeitig pro Shader