XNADeviceEnumeration

Noch nicht veröffentlicht!


The download and a english description of the component is available on the original projectpage!

Der Download ist auf der originalen Projektseite zu finden!

Projektbeschreibung

Die XNADeviceEnumeration Component hilft eine Grafikkartenenumeration schnell durchzuführen. Die Komponente wird mit einer beispielhaften WPF-Anwendung ausgeliefert, die einige Funktionen zeigt. Die Komponente ist in XNA 3.0 beta geschrieben aber eventuell werde ich noch eine 2.0 Variante veröffentlichen. Für die Demoapplikation ist das .Net 3.5 Framework notwendig.

Grafikkartenenumeration!Warum?

Angefangen von den verschiedenen Auflösungen, bis hin zur hardwaregestützten Lichtberechnung, über Pixel- und Vertexshader und Oberflächenformaten unterscheiden sich Grafikkarten grundlegend. Da diese von Grafikkarte zu Grafikkarte sehr unterschiedlich sein können bzw. sind und sich nicht die Hardware unseren Programmen anpasst, müssen wir uns der Hardware anpassen. Wir müssen also alle wichtigen Leistungen und Fähigkeiten auflisten. Der Fachbegriff dafür, der aus der Mathematik und Informatik kommt, heißt Enumeration. Eine ordentliche Enumeration ist das A und O einer Grafikanwendung. Denn nichts ist schlimmer als ein Programmabsturz, nur weil man einfach bestimmte Dinge voraussetzt, die aber die Grafikkarte gar nicht unterstützt.

So kann man nicht davon ausgehen das auf allen PC’s ein 4-faches Multisampling unterstützt wird, nur weil es auf dem eignem Enwicklungs-PC läuft!Solche Beispiele gibts es Unmengen aber ich denke die Ursachen und Gründe für eine gute Enumeration dürfte klar sein.

So viel zur Theorie was bietet die XNADeviceEnumeration Component…

Komponentenbeschreibung

So eine Komponente ist mehr eine Fleißarbeit und kapselt viele Methoden des GraphicsAdapter und hilft so eine Enumeration schneller und mit weniger Arbeit durchzuführen.

  • Allgemein
  • Einfach zu benutzen und in jedes Spiel/Engine einzubinden
  • Dokumentation
  • Demoapplikation
  • Enumeration
  • Adapterenumeration(Treiber, Adaptername etc.)
  • Videomodies (Auflösung, Surfaceformat, AspectRatio)
  • direkte Überprüfung auf verschiedene Videomodies
  • DeviceType
  • BackBuffer Überprüfungen
  • Depth/Stencil Buffer Überprüfungen
  • MultiSample (Type und Qualität)
  • Formatkonverter
  • AspectRatioConverter
  • FormatConverter (formatiert XNA Surface Formate nach D3D Formatbezeichnung)

Ich würde vorschlagen die Komponente als Singleton oder statische Klasse einzubinden um von überall Zugriff zu haben!

WPF-Demo

Die Demo zeigt die Komponente in Aktion und benutzt viele ihrer Funktionen. Sicherlich, so ein Dialog ist mehr zum Test für mich gedacht bzw. für die Entwicklungszeit eines Projekts. So eine Art Dialog ist natürlich nicht für den Endbenutzer gedacht. Die Demo zeigt sehr schön die klare Überprüfungshierachie einer Basisenumeration. So muss man beispielsweiße, wenn man das BackBufferformat ändert, die Depth/Stencilformate und auch die MultiSampleeunmeration erneut durchführen. Folgende Hierachie ist vorhanden:

  • Adapter
  • DeviceType
  • windowed?
  • Videomodes
  • BackBuffer
  • Depth/Stencil Buffer
  • MultiSampling

Bei Fragen, Bugs/Fehlern oder (Verbesserungs)vorschläge meldet euch bitte bei mir oder hinterlasst hier ein Kommentar!

  1. 1 Trackback(s)

  2. Okt 21, 2008: florian-oeser.de » Blog Archive » Facharbeit: Grafikkartenenumeration mit Direct3D

Post a Comment