2D-Zeichnung-Performance (GDI+ vs SlimDX)

Ich bin ein Teil von einem team, dass hat wurde ein tool zum anzeigen und interagieren mit sehr großen und stark vernetzten Graphen in C#/WPF. Die Anzeige und Interaktion mit dem Graphen geschieht durch ein benutzerdefiniertes Steuerelement, das nimmt in einer Reihe von DrawingVisuals und zeigt Sie auf einer Leinwand. Knoten im graph kann eine custom-Form erstellt mit unserer Redaktion. Die aktuelle Steuerung funktioniert sehr gut und ist ziemlich gepaart mit unserem Programm, aber es gibt berechtigte sorgen über die Leistung, wenn man bedenkt viel größere Grafiken (20.000+ Einträge-Knoten und die Menge der Verbindung).

Nachdem ich ein wenig Forschung, scheint es, die beiden Ansätze sind:

  • Ein GDI+ - route, wo Grafiken gezogen werden, um ein WriteableBitmap-Objekt oder InteropBitmap.
  • SlimDX oder DirectX Variante (gehostet in einem D3DImage)


Angesichts dieser beiden sehr unterschiedlichen Ansätze, welche route wäre am besten zu nehmen, nachzudenken:

  • Die Interaktion mit dem graph muss schnell sein, auch während der Anzeige der gesamten Grafik.
  • Aktualisierung der Grafik sollte schnell sein (Farbe oder Größe ändern)
  • Treffer Tests müssen schnell sein (Punkt und Rechteck).
  • Entwicklung abgeschlossen sein muss in einer fristgerechten Weise.

Welche Methode würden Sie verwenden und warum?

EDIT:

Es sieht aus wie ein ähnliche Frage wurde gefragt, aber nicht beantwortet.

  • GDI+ langsamer. GDI-schnell, aber hässlich. D2D ist besser, aber langsam. SlimDX ist eine große Abhängigkeit und großen abstrakte Lernkurve. Option 3, mit DX9 oder (DX11 per DXGI) wie es in der hand, schüttelt mit dem WPF-D3DImage-Schnittstelle. Gewährt eine Lernkurve, aber mehr wartbar zu erstellen 3DX-Gerät, Kontext -, Puffer -, shader-und erhalten Sie Ihre app-rendering über Direct3D. Die Dokumentation ist schrecklich und es dauert einige Forschungs-und trial-error, aber es ist nicht so schlimm, wie es scheint. Sehen Sie hier eine real world small 18 meg demo-download WinForm WPF und MFC, und seine vor allem WAV-und GIS-Daten.
InformationsquelleAutor CBent | 2012-04-23
Schreibe einen Kommentar