Ich entwickle Tiefenbearbeitung (Xbox Kinect, Asus Xtion, usw.) Anwendungen mit OpenNI.C# schnelles Pixel-Rendering
Ich brauche eine wirklich einfache und schnelle Möglichkeit, auf einem Windows-Formular zu zeichnen, wenn neue Tiefeninformationen vom Sensor verfügbar sind (30 oder 60 fps je nach Auflösung).
Zur Zeit mache ich ein doppelt gepuffertes Panel aus einem separaten Thread ungültig, wenn die Daten verfügbar sind, und setze dann Pixel einer Bitmap in der Paint-Methode des Panels ein, was zu einem vorhersagbar schrecklichen 5fps führt.
System.Drawing.Graphics scheint eine schnelle Möglichkeit zu fehlen, einzelne Pixel zu setzen, es sei denn jemand kann etwas anderes anweisen.
Ich muss im wahrsten Sinne des Wortes nur Pixelfarben setzen, daher möchte ich möglichst keine Hochgeschwindigkeits-Rendering-APIs von Drittanbietern verwenden und idealerweise etwas so Natives wie möglich verwenden.
Hat jemand irgendwelche Vorschläge?
Wie stellen Sie die Pixel derzeit ein? – leppie
Erstellt eine Bitmap mit image.SetPixel (x, y, color). Nach alldem ist das Aufrufen von graphics.drawImage (Bild usw.) –
'SetPixel' sehr langsam. Sehen Sie sich den Scanline-Ansatz an. – leppie