【发布时间】:2015-10-26 13:45:08
【问题描述】:
我正在开发一个图像查看器,其中图形以抗锯齿模式呈现。图像可以首先使用生成 DXF 文件的 Autocad 进行编辑。
应用程序是使用 Visual C++ 和 Direct2D 编写的。
虽然我能够非常快速地加载图像,但与 Autocad 对相同图像(相同数量的形状)的性能相比,缩放和平移对我来说仍然是一个问题。
以下是用于渲染图形的代码:
auto shapes = quadTree.get_visible_shapes();
shapes.sort_by_Zorder();
for each shape in shapes:
shape.draw();
在分析之后,我可以说超过 90% 的计算时间都花在了旨在绘制形状的循环中。
由于四叉树的实现,只绘制可见的形状,性能得到了巨大的提升;我也在平移时以别名模式渲染图形,但与 Autocad 仍有很大差异。
我想知道 Autocad 是否会绘制图像的位图表示,即使我还没有尝试过这种方法,所以我不知道是否可以有效地提高速度。
考虑到这些假设,有什么方法可以改善平移和缩放的动作吗?
【问题讨论】:
标签: c++ directx rendering autocad direct2d