0

我正在编写用于生成巨大图形并显示它们的应用程序。首先,我尝试使用带有 sharpGL 的 WPF,但性能很糟糕。然后我尝试了XNA,它更好。但是我缺少界面。我可以尝试在 WinForms 中使用 XNA,但它会降低性能。目前这是我唯一的选择。所以我尝试在 XNA 上绘制图形。现在,我通过图元绘图来解决这个问题,但我对性能不太满意。我在现场画了两张图。首先有 10k 顶点和大约 30k 边,其次有 20k 顶点和 30k 边。我正在画这样的边:

    GraphicsDevice.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.LineList, verticesDelanuay, 0, Graph.DelaunayEdges.Count);
    GraphicsDevice.DrawUserPrimitives<VertexPositionColor>(PrimitiveType.LineList, verticesVoronoi, 0, Graph.VoronoiEdges.Count);

但是对于每个顶点,我都想绘制某种正方形。现在,我正在为每个顶点绘制四个三角形。像这样:

graphics.GraphicsDevice.DrawUserIndexedPrimitives(PrimitiveType.TriangleList, vertices, 0, vertices.Length, indices, 0, (int)CircleStep, VertexPositionColor.VertexDeclaration);

对于所有这些绘图,我想要一个可以放大、缩小和移动的相机。我通过 basicEffect.View 并传递适当的矩阵来做到这一点。

对于这些数据,我有 10 - 15 fps。这是正常的表现还是我可以做些什么来加快速度?

我想知道绘制这样的东西最快的方法是什么,它是比 WinForm + XNA 更好的方法吗?

4

0 回答 0