我正在尝试在 WPF(.NET 4.0) 中编写一个类似 CAD 的应用程序,它需要能够显示大量 2D 点/线。它将用于通过鼠标悬停时的缩放、平移、旋转和点捕捉来显示整个城市的 CAD 平面图。
现在我纯粹使用WPF。我从 CAD 文件中读取对象,将它们绘制到 StreamGeometry 中,将其用作新路径的笔画,并将其添加到 Canvas 中,并进行多次变换。
我的问题是这个解决方案的扩展性不够好。它适用于小型 CAD 文件,但当我想显示半个城市(有房屋和土地边界)时,它会非常非常延迟。
我还尝试将 CAD 文件转换为图像,但是
- 32000x32000 的分辨率有时是不够的
- 缩小时线条太细。
最后我需要能够将其放置在画布(2D/3D)上作为背景。
我在这里最好的选择是什么?
谢谢,
尼克拉斯
wpf 不适合大型 3d 模型。恐怕速度太慢了。你最好的选择是直接 3d 或 openGL
然而,即使具有 direct3d、openGL 的速度,如果您试图显示整个城市,您仍然需要在渲染场景之前弄清楚如何剔除尽可能多的多边形/顶点。
有大量关于这方面的信息(通常在游戏开发下)
有一些技术,包括视锥体剔除、近平面和远平面剔除。
另外,由于您可能有一个静态场景,因此您可以使用二进制空间分区。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)