我正在努力创建一个全屏 3-D 应用程序(基于Johnny Lee 的 Wii 头部跟踪应用程序),它具有一些增强现实功能,而且似乎 WPF 太慢而无法渲染我正在使用的简单模型合理的帧率。我认为问题在于我需要在几乎每一帧上更改相机的视图和投影,因为应用程序的性质(它使用网络摄像头来跟踪你的脸,并使用该数据来移动相机并改变其视角)。
我花了很多时间试图缩小问题范围,它肯定与图形有关,而不是我使用的头部跟踪 API 的速度。此外,我在 XNA 中重新创建了该应用程序,它似乎在那里运行良好(28 FPS 与 WPF 中的 9)。最后,当我移除“墙”或使窗口更小(例如,800 x 600)时,WPF 的性能大大提高,这让我认为瓶颈是图形计算。
因此,我需要找到一个新的图形后端来使用,或者找到一种方法让这个应用程序的 WPF 更快。我主要关注 DirectX 和 XNA,可能还有 OpenGL。关于哪些 API 最适合在 .NET 中用于此应用程序的任何建议?或者,知道我在 WPF 中做错了什么会减慢速度吗?