我是堆栈溢出的新手,也是 3D 图形编程的新手。我的任务是创建一个将读取数据的应用程序(目前我正在从分隔的文本文件中读取,但最终将从数据数组中读取)并以 3D 图形方式显示数据。数据是从正在扫描日志的 3D 扫描仪读取的 x、y、z 坐标。我需要从 4 个不同的角度在屏幕上显示这些日志的 3D 表示。我正在将数据读入二维 Point3D 数组,然后使用它在 HelixViewport3D 中创建 3D 模型。我使用嵌套的 for 循环来检查数组中的数据点是否在特定的 x、Z 范围内——如果是,我需要从该数据中创建一个三角形。传递整个数组后,我将 Model3DGroup 添加到我的视口的子项中:
topModel.Content = topGroup;
this.mainViewport.Children.Add(topModel);
这需要大约 8 秒,缩放、平移、旋转非常慢,屏幕上的所有这些数据(大约 500,000 个三角形)。有什么方法可以提高 WPF 3D 图形的性能?我实际上不需要能够在完成的应用程序中进行缩放/平移/旋转,但它有助于调试。最终的应用程序将只是从不同方面以 4 种不同方式静态显示的相同模型。但是,我需要能够读取数据并在 1-5 秒内显示图形。非常感谢任何帮助,我希望我的问题很清楚!
编辑:在深入研究顶点缓冲之后,这就是我需要做的。我使用的积分太多了。如果有人可以向我指出一些关于在 c# 中进行顶点/索引缓冲的文献,将不胜感激!