Camera, Lights, Action… Dirk Primbs Developer Evangelist Developer Platform & Strategy Group Microsoft Deutschland GmbH
Agenda Einordnung von DirectX Ein Wenig von Vektoren und Matrizen Riding the Render Pipeline Ausblick
Was ist DirectX ? DirectX sind eine Sammlung von Technologien, die einer Windows-Applikation Multimedia-Fähigkeiten zur Verfügung stellen. Es ist eine hardware-unabhängige API. Download http://msdn.microsoft.com/directx Keine Überdeckung mit Avalon.
DirectX Übersicht Komponenten von DirectX DirectX Grafik DirectX Audio Direct3D – 3D Grafik DirectDraw – 2D Grafik DirectX Audio DirectSound Aufnahme und Abspielen Echtzeit Mischen Surround Sound und 3D Anordnung Filter und Effekte (reverb, distortion, etc) DirectMusic – Abspielen von Kompositionen
DirectX Übersicht Komponenten von DirectX DirectInput Behandelt Controler-Eingaben (Tastatur, Joystick, Maus, etc) Force Feedback Unterstützung DirectPlay – Multiplayer Netzwerkunterstützung Protokolunabhängig Arbeitet auch über NAT und Firewalls Voice Chat DirectShow – Streaming Media DirectShow Editing Services – Video Editing DirectSetup – Installation
Managed DirectX Managed DirectX Komponenten DirectX Grafik 2D – DirectDraw 3D – Direct3D DirectSound DirectInput DirectPlay AudioVideoPlayback Einfaches Audio/Video Playback Unterstützung aller Features!
Managed DirectX Nicht in Managed DirectX DirectShow DirectMusic DirectSetup Nicht sinnvoll für .NET Programme
Ein wenig 3D Theorie
Koordinaten und Primitive Linkshändiges Koordinatensystem Vektor = Tupel mit 3 Zahlen, definiert X-,Y-,Z-Wert eines Punktes im Raum Primitive: Punkte(1), Linien(2), Dreiecke(3) y z x
Direct3D Grundlagen (1) 3D Primitive Meshes Sammlung von Vertices bildet eine 3D Entität Punktlisten Polygone Mindestens 3 Vertices Komplexere Primitive werden meist aus Dreiecken aufgebaut Würfel 6 Flächen á 2 Dreicke Kugel Geoid mit Dreieckstesselierung Meshes 1 – N Polygone
Direct3D Grundlagen(2) Vertices Quaternions Positionsvektor Farbe Texturkoordinaten Normalvektor Quaternions Vektor für Achse + Rotationswinkel Alternative zu Matrizen Komplexe Animationspfade werden in einfachen Quaternions ausgedrückt Kombinierbar oder interpolierbar Bspw. Rotation um (1,4,2) um 1 Radiant dann Rotation um (2,1,3) um 0.6 Radiant
Direct3D Grundlagen(3) Normalvektoren auf Faces Backface Culling Lightning Shading
Direct3D Grundlagen(4) Dreiecke Grundelement für Zeichenoperationen Viele Werte werden interpoliert Farbe (Diffuse, Specular) Alphablending Diffuse: Opacity Specular Nebelfaktor Specular Alpha (fixed function pipeline) Fogregister (programmable pipeline) Texturkoordinaten
Transformationen Transformationen im Leben eines Vektors World Transform Aus dem Model-Raum in den Darstellungsraum Verwendet für Translationen, Rotationen und Skalierung View Transform Positioniert die Kamera Wohin sieht die Kamera Welche Richtung ist oben Projection Transform Wie sieht die Kamera Dinge Beschreibt den sichtbaren Kegel
Projection Transform Hintere Clipping-Ebene Vordere Clipping-Ebene Sichtbarer Kegel
Arbeiten mit Direct3D Device erstellen Device wiederherstellen bei Verlust Vertexdaten verarbeiten Szene Rendern
Szene Rendern Device.Clear BeginScene VertexBuffer erstellen Vertices transformieren Primitive zeichnen EndScene Präsentieren
Dreiecke sind interessanter als man glaubt…
Fazit Managed DirectX ermöglicht es, die 3D Grafikhardware direkt zu programmieren MDX ist gar nicht so schwer… … und kann nicht nur für Spiele genutzt werden.
Resources msdn.microsoft.com/ directX www.thezbuffer.com DirectX WebCasts auf www.microsoft.com/germany/msdn/webcasts
Eine Demo hab’ ich noch…
Links zur Demoscene http://www.farb-rausch.de http://www.scene.org http://www.digitalekultur.org
© 2005 Microsoft Deutschland GmbH. All rights reserved. This presentation is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS SUMMARY.