巨大なグラフを生成して表示するためのアプリケーションを作成しています。まず、sharpGL で WPF を試してみましたが、パフォーマンスは最悪でした。次に、XNA を試してみましたが、改善されました。しかし、そこにはインターフェースがありません。おそらくWinFormsでXNAを使用してみることができますが、パフォーマンスが低下します。今のところ、それが私の唯一のオプションです。だから私はXNAでグラフを描いてみました。今のところ、プリミティブ描画でこれに取り組んでいますが、パフォーマンスに満足していません。シーンに2つのグラフを描いています。最初に 10k の頂点と約 30k のエッジがあり、2 番目に 20k の頂点と 30k のエッジがあります。次のようにエッジを描いています。
GraphicsDevice.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.LineList, verticesDelanuay, 0, Graph.DelaunayEdges.Count);
GraphicsDevice.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.LineList, verticesVoronoi, 0, Graph.VoronoiEdges.Count);
しかし、すべての頂点に対して、ある種の正方形を描きたいと思っています。今のところ、頂点ごとに 4 つの三角形を描いています。このような:
graphics.GraphicsDevice.DrawUserIndexedPrimitives(PrimitiveType.TriangleList, vertices, 0, vertices.Length, indices, 0, (int)CircleStep, VertexPositionColor.VertexDeclaration);
このすべての図面について、ズームイン、ズームアウト、移動できるカメラが必要です。これは、basicEffect.View と適切な Matrix を渡すことで行いました。
これらのデータについては、10 - 15 fps です。それは通常のパフォーマンスですか、それとも速度を上げるために何かできることはありますか?
このようなものを描画するための最速の方法は何かを知りたいのですが、WinForm + XNA よりもインターフェイスとグラフィカル環境を 1 つにする方が良い方法ですか?