Ich muss Tausende von 3D-Linien pro Sekunde für eine industrielle WPF-App zeichnen, aber WPF scheint keine native HW-beschleunigte Linienfunktion zu haben.Hardwarebeschleunigte 3D-Linien in WPF
Mit "3D" meine ich, dass sie in 3 Achsen gedreht werden können, in Perspektive usw. Durch "Linien" meine ich genau das - das sind keine Drahtgitter eines 3D-Objekts, also mache ich nicht wollen Tesselation einer 3D-Oberfläche und ich tun nicht wollen diese beleuchtet oder schattiert.
Variationen dieser Frage wurden zuvor in StackOverflow gestellt. Die Leute haben vorgeschlagen:
- XNA, aber XNA ist
- Helix3D veraltet, aber seine Linien seltsam, nicht akzeptabel Rendering-Artefakte
- OpenGL (zB OpenTK oder SharpGL), aber ich habe viele Gespräche geführt mit Leute in den OpenGL-Foren und alle OpenGL-Schnittstellen mit WPF scheinen große Probleme mit anderen WPF-Funktionen zu haben und erfordern Hacks, um zu umgehen.
Ich denke, meine beste Wette ist DirectX oder Direct3D. Aber ich weiß nicht, wie ich sie mit WPF integrieren soll. Direct3D hat auch kein natives Linienprimitiv (es verwendet texturierte Dreiecke) siehe: https://msdn.microsoft.com/en-us/library/windows/desktop/bb323719%28v=vs.85%29.aspx
Wenn nötig, bin ich bereit, 2D hardwarebeschleunigte Linien zu machen und mein eigenes 3D-2D-Mapping zu machen.
Aber die Hauptsache ist, dass diese reibungslos mit WPF zu integrieren hat, so kann ich die Grafik mit einer transparenten WPF-Leinwand überlagert, auf das ich Marker zeichnen kann, Text, ROI usw.
Wie mache ich das?
Gibt es in Direct3D9 die "Single-Pixel-Linien nativ mit oder ohne Beleuchtung mit oder ohne Textur-Bitmaps"? Wenn ja, gibt es einen Grund, nicht einfach D3DImage zu verwenden? Wenn WPF bereits eine D3DImage-Klasse hat, warum benötige ich SharpDX oder SlimDX? – user316117
Gemäß [dieser] (http: // stackoverflow.com/questions/19480373/sharpdx-render-in-wpf) SharpDX ist veraltet. – user316117
Lesen Sie es vorsichtiger: [SharpDX Tool Kit] (https://github.com/sharpdx/Toolkit) ist veraltet, nicht [SharpDX] (http://sharpdx.org/) selbst. SharpDX Tool Kit könnte für Sie nützlich sein, aber Sie können die SharpDX-Baugruppen direkt verwenden. –