Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

WPF 3D Programmierung

7,120 views

Published on

.NET Usergroup Dresden Präsentation:
3D Programmierung mit WPF
http://dd-dotnet.de

Published in: Technology
  • Be the first to comment

WPF 3D Programmierung

  1. 1. T-Systems Multimedia Solutions GmbH Lars Jonuscheit 03.12.2008 3D-PROGRAMMIERUNG MIT WPF
  2. 2. AGENDA WPF – Ein kurzer Überblick  3D-Grafik  1. Viewport3D 2. Kamera 3. 3D-Modell – Meshes, Normale und Texturen 4. Licht 3D-Benutzeroberflächen  Software zur Erstellung von 3D-Modellen  1. ZAM 3D 13.02.2009 2
  3. 3. WPF – EIN KURZER ÜBERBLICK
  4. 4. WPF – EIN KURZER ÜBERBLICK WPF (Windows Presentation Foundation)  Grafik-Framework, Teil des .NET Frameworks 3.0 von Microsoft  Präsentation (XAML) und Geschäftslogik (C#, VB.NET) getrennt  Hardwarebeschleunigung (GPU) beim Rendern von Grafikelementen (auch  Fenster, etc.) 3D-Grafiken können in 2D-Anwendungen angezeigt werden (Viewport3D) • Unterstützung von Vektorgrafiken • Vordefinierte Bitmap-Effekte (Schatten etc.) stehen ab Version 3.5 mit SP1 zur Verfügung • Nicht als Spielentwicklungsplattform gedacht, sondern zur Erstellung datenorientierter Software • Desktop- als auch Web-Anwendungen möglich  Entwicklungsumgebungen:  Präsentation = Expression Blend (u.a.), Visual Studio (eingeschränkt) Geschäftslogik = Visual Studio 13.02.2009 4
  5. 5. 3D-GRAFIK
  6. 6. 3D-GRAFIK - ÜBERBLICK Ziel = Abbilden eines oder mehrerer Körper/Modelle im Raum  Komponenten  • Kamera, Licht, Modell ( + Viewport3D) VIEWPORT3D Darstellung von dreidimensionaler Inhalte auf zweidimensionaler Fläche  (Bildschirm) Koordinatensystem e © Microsoft zweidimensional dreidimensional 13.02.2009 6
  7. 7. 3D-GRAFIK - KAMERA Ziel = Abbilden eines oder mehrerer Körper/Modelle im Raum  Benötigte Komponenten:  1. Kamera 13.02.2009 7
  8. 8. 3D-GRAFIK - KAMERA Ziel = Abbilden eines oder mehrerer Körper/Modelle im Raum  Benötigte Komponenten:  1. Kamera Perspektivische Kamera • Strahlen treffen sich im Unendlichen • Je weiter Objekt entfernt desto kleiner • wirkt es Funktion wie Kameraobjektiv • Orthographische Kamera • Strahlen verlaufen parallel • Objekte nicht verkleinert oder verzerrt • perspektivisch orthographisch © Microsoft © Microsoft 13.02.2009 8
  9. 9. 3D-GRAFIK - MODELL Ziel = Abbilden eines oder mehrerer Körper im Raum  Benötigte Komponenten:  1. Kamera 2. Model(l) Aus Dreiecken zusammengesetzt, die ein 3D-Gittnetz (Mesh) bilden • Meshes werden mit Materialien bespannt (texturiert) • DiffuseMaterial • (keine Reflexion von Licht) SpecularMaterial • (Glänzendes Material simuliert, welches Licht reflektiert) EmissiveMaterial • (Objekt emitiert Licht in der Farbe des Materials) Normale für Lichteinfall berechenbar • (Vektor der senkrecht zu den Dreiecken des Objektes steht) © Microsoft 13.02.2009 9
  10. 10. 3D-GRAFIK - MODELL Ziel = Abbilden eines oder mehrerer Körper im Raum  Benötigte Komponenten:  1. Kamera 2. Model(l) Texturen = Brushes • © Microsoft 13.02.2009 10
  11. 11. 3D-GRAFIK - LICHT Grafiken © Microsoft Ziel = Abbilden eines oder mehrerer Körper im Raum  Benötigte Komponenten:  1. Kamera 2. Model(l) 3. Licht AmbientLight (z.B. Tageslicht) SpotLight PointLight (z.B. Glühbirne) DirectionalLight 13.02.2009 11
  12. 12. 3D-GRAFIK - ÜBERBLICK Ziel = Abbilden eines oder mehrerer Körper im Raum  Benötigte Komponenten:  1. Kamera 2. Model(l) 3. Licht + + = 13.02.2009 12
  13. 13. ANIMATION VON 3D-MODELLEN
  14. 14. ANIMATION VON 3D-MODELLEN Elemente können transformiert werden  • Translation (Verschiebung) • Rotation • Skalierung Transformation kann animiert werden  • Basisanimation Angabe eines Start, End- und Delta-Wertes (From, To, By) • • Keyframe-Animation • Pfad-Animation Beispiel für Basisanimation <DoubleAnimation Storyboard.TargetName=quot;roationLeftquot; Storyboard.TargetProperty=quot;(AxisAngleRotation3D.Angle)quot; Duration=quot;00:00:02quot; AutoReverse=quot;Truequot; RepeatBehavior=quot;Forever“ From=quot;30quot; To=quot;-30“ /> 13.02.2009 14
  15. 15. PROGRAMMIERBEISPIEL
  16. 16. PROGRAMMIERBEISPIEL 13.02.2009 16
  17. 17. 3D-BENUTZEROBERFLÄCHEN
  18. 18. 3D-BENUTZEROBERFLÄCHEN Dreidimensionale Elemente können in Viewport3D abgelegt werden  Zweidimensionale Elemente werden im Viewport2DVisual3D abgelegt  • Eigenschaften Geometry = Mesh der 3D-Oberfläche • Visual = 2D-Element das auf der 3D-Oberfläche angezeigt werden soll • Material = Material das zum Rendern des 2D-Inhaltes genutzt wird • Transform = Transformation der 3D-Oberfläche • • Elemente wie Kamera und Licht sind Bestandteil des Viewport3D und müssen nicht geändert werden 13.02.2009 18
  19. 19. SOFTWARE ZUR ERSTELLUNG VON 3D-MODELLEN
  20. 20. ZAM 3D Erstellen von 3D-Inhalten und Export nach XAML  © electricrain Modellierung komplexer Inhalte möglich  • Funktionalität zur 3D-Modellierung (Extrude, Bevel, Polygonbearbeitung, Splinebearbeitung etc.) • Materialeditor • Animation (Keyframes, Pfadanimation) • Vergleichbar mit Maya, 3ds Max u.a. Konverter nach XAML für diverse 3D-Programme • verfügbar (3ds Max, Maya, Blender u.a.) 13.02.2009 20

×