gpt4 book ai didi

wpf - 对于复杂的应用程序,WPF 3D 是 DirectX 和 OpenGL 的良好替代品吗?

转载 作者:行者123 更新时间:2023-12-02 08:38:45 28 4
gpt4 key购买 nike

我曾经使用WPF的3D功能进行学习,并进行了一些实现,我发现它非常有能力,而且我也在学习DirectX 11,与在WPF中使用3D类相比,它非常棘手。我只将 WPF 3D 用于非常基本的东西,我的问题是:

对于 3D 建模工具、游戏引擎和 3D 模拟等高级应用程序来说,WPF 3D 是否同样适合作为 DirectX 和 OpenGL 的替代品?

如果同一联盟还有其他内容,请一并提及。

最佳答案

好问题。答案是这取决于!!

更有用的是,我可以这样说:几年前,我用 OpenGL 开发了一个 CAD 风格的 3D 渲染应用程序。这必须显示具有多达 1,000,000 个对象的石油钻机的 CAD 模型,并允许用户直接放大细节、缩小、移动对象等...我可以肯定地说,WPF 不适合这种情况类型的应用程序,因为它太慢了。该应用程序是使用 C++/CLI 开发的,并从 .NET GUI(工具栏、窗口)桥接到 C++ 再到 OpenGL(渲染表面),甚至由于 thunking 的原因,对 native C++/OpenGL 应用程序带来了性能损失。 。因此,如果您想要最高的性能,您无法通过 DirectX 或 OpenGL 击败 native C++。

WPF 可以为更简单的 3D 应用程序提供高性能 3D 图形和流畅的交互性。例如,3D 图表表面或 3D 轮播,甚至是 3D CAD 模型查看器,只要模型相当简单即可。一旦对象计数开始增加,您就会注意到渲染引擎无法处理它 - 这时您需要切换到允许直接访问 GPU 的渲染引擎。

对于中途之家解决方案(托管 + DirectX),请尝试 SharpDX 。这基本上是 Managed DirectX 的开源实现,功能极其强大且用途广泛。与 native C++ 相比,托管 C++ 的性能影响很小 (~5%),如果处理得当,托管 DirectX 可以实现极高的性能。

我们所做的就是通过 D3DImage 将 DirectX 直接与 WPF 集成。 。我们已经在 WPF 3D Chart Control 中实现了这一目标。它使用 DirectX11 进行绘图(不是 WPF3D)。这直接从 native DirectX 共享到 WPF,但您可以使用 SharpDX 获得同样好的结果。 ,我们用它来创建高速 WPF Drawing Plugin在这里。

对于 WPF3D 的展示,我建议您尝试 this link 。正如您所注意到的,WPF3D 可以制作极具视觉吸引力且有时很复杂的示例,但您不会在其中找到任何 1,000,000 个石油钻井平台对象;)

最后,您想在 WPF 3D 中做什么?只是一个兴趣点,或者您有一个具体的项目要实现并想知道它是否合适?

关于wpf - 对于复杂的应用程序,WPF 3D 是 DirectX 和 OpenGL 的良好替代品吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8941383/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com