我有一个 WPF 应用程序,屏幕的一部分显示了一个需要以 3D 动态呈现的对象,速度可能为 20 FPS。我知道通常 WPF 应用程序会使用 DirectX 进行 3D 渲染。(我也知道 WFP 有一个简化的 3D API,但我认为这不适用于我的情况,因为我有太多的三角形要渲染。)在我的情况下,我想使用 OpenGL,因为很有可能整个应用程序将被移植到非 Windows 机器上,我不想重写 3D 代码。
我看到有人尝试创建一个 OpenGL 可以直接渲染到其中的 WPF 控件,但是它们看起来都太粗糙/太冒险了。
作为一种更安全的方法,我认为我可以使用带有 OpenGL 的 FBO 将帧渲染到屏幕外,然后获取位图并将它们作为常规 2D 图像实时传递给 WPF。
我的问题是关于速度。您是否预计该计划中存在破坏交易的瓶颈?我假设 FBO 渲染将与 OpenGL 端的直接窗口渲染一样快?我希望从渲染的 OpenGL 图像 (FBO) 中提取位图应该很快?我不太确定将这些图像交给 WFP 并看到它们以 20 FPS 的速度更新。
你有具体的经验可以帮助我决定这是否是一个合理的方法吗?