改善绘图时间 - VB.net

时间:2012-08-21 08:38:09

标签: vb.net directx gdi+ slimdx

我目前正在开展一个项目,以显示Gerber文件的2D图形表示。该函数从列表中绘制每个元素,在我当前的测试文件中可能有大约50,000个形状。

我在系统绘图命名空间中使用绘图函数的初始方法,我认为它使用GDI +,并渲染到屏幕外位图,但证明太慢,特别是每当用户放大或移动图像时必须重新绘制位图

然后我试着在slim dx库中使用直接2d,但这实际上比较慢,这似乎不正确(任何人都可以提供任何见解吗???我做了一个测试文件在随机位置绘制1000000个椭圆形状测试,如果我找时间可以/可以上传)

我正在寻找下一步的想法。我想知道是否应该考虑使用direct3d11而不是direct2d。有些人推荐XNA,但我想更多的是游戏设计。

任何想法都会受到欢迎......

尼克

1 个答案:

答案 0 :(得分:0)

您应该做的第一件事是只绘制可见对象。不要试图绘制屏幕外的任何内容。这将限制需要绘制的形状数量。

如果形状列表不经常更改,您可以在位图中绘制它们,然后只缩放/缩放/平移位图。这样,您不需要每次都绘制形状。

另一种技术是通过使用双缓冲来使用户体验更加流畅,而不是更快。 http://msdn.microsoft.com/en-us/library/b367a457.aspx

GDI +应该是快速的。