Schnelles Pixelzeichnen in WPF

8

Ich würde gerne einen einfachen Raytracer mit WPF schreiben. Es ist ein Lernprojekt und daher bevorzuge ich die Konfigurierbarkeit gegenüber der Leistung (sonst würde ich mich für C ++ entscheiden).

Ich möchte immer noch relativ schnelles Pixelzeichnen. Eine vorherige Frage zu StackOverflow enthält Code, um dies in WPF zu erreichen, indem eine GDI-Bitmap erstellt wird. Von den relativ kleinen, die ich über Windows-Programmierung weiß,

  1. GDI ist langsam
  2. DirectX ist schnell
  3. WPF verwendet DirectX unterhalb (nicht sicher, welche Teile von WPF)

Ist es möglich, Zugriff auf Pixelebene mit DirectX (nicht GDI) über WPF Canvas (oder ähnlich) zu erhalten?

Ich werde auch Vorschläge für die Einbindung von DirectX-API-Aufrufen in ein WPF-Fenster (zusammen mit anderen WPF-Steuerelementen) prüfen, wenn dies möglich ist.

Vielen Dank im Voraus.

    
Gigi 25.09.2012, 12:02
quelle

3 Antworten

5

Interessant, aber mit Raytracing wird das Schreiben der Pixel auf den Bildschirm nicht der langsame Teil sein. Sie können WriteableBitmap jedoch für diesen Zweck verwenden. Es ist sicherlich schnell genug für das, was Sie wollen.

Ссылка

(Für Informationen verwende ich es in dieser emu / IDE - Ссылка - und es kann ein Low-Res-Display mit großer Leistung aktualisieren Es gibt die Quelle dazu im github-Repository, das LEM1802-Plugin.)

Ah, dieses Bit: Ссылка - siehe UpdateDisplay .

    
Kieren Johnstone 25.09.2012, 12:29
quelle
2

Es gibt ein Open-Source-Projekt namens Direct Canvas, das eine hardwarebeschleunigte 2D-Zeichnungs-API ist, die Vektorgrafiken, Multimediadateien, erweiterbare Pixel-Shader, Füllmethoden und vieles mehr unterstützt!

Ссылка

Demo Ссылка

    
Pascalsz 25.09.2012 12:21
quelle
2

Eine andere Lösung ist WriteableBitmapEx . Es erweitert die eingebaute WriteableBitmap.

    
Joel Lucsy 25.09.2012 13:48
quelle

Tags und Links