WPF和XNA渲染千个精灵我需要渲染几千个椭圆和直线相通。在WPF应用程序中呈现它的最佳方式(就性能而言)是什么。WPFCanvas绘画比XNA绘画差吗?实际上,隐藏的问题是:是否可以在WPF主机内部进行一些xna渲染?我看到一些使用无边界xna窗口覆盖的示例,但没有本地解决方案...谢谢,Aurélien如果做得好,您可以在WPF渲染中获得相当高的性能,这样做的好处是您不必求助于WPF-XNA互操作的痛苦。如果您使用WPF的低级呈现API(例如CompositionTarget.Rendering和DrawingContext),您可以呈现(和制作动画)大量视觉效果。您还可以利用.net4.0中新的缓存合成功能。还有更多只是以此为起点。通过首先将XNA场景渲染到WinForms控件,然后使用WindowsFormsHost元素在WPF中托管该控件,我已经成功地将XNA与WPF“集成”。我刚刚在CodeProject上找到这篇文章:我们希望将我们的XNA场景集成到WPFUI中,就像我们集成画布或任何小部件一样。但在XNA中查看3D场景的最佳方式是将其合并到一个窗口中。使用WinForms不可能获得任何WPF控件的句柄。诀窍就是围绕Game类重写XNA框架的一部分。目标是从Panel继承一个新的Game类(在我们的例子中是Canvas),以便能够将其包含在WPF可视化树中。面板的可见边界将是XNA场景的可见区域。但是,我们刚刚说过,不可能获得不从WindowWin继承的可视控件的句柄。那么我们如何使用XNA显示3D呢?我们只是在面板顶部显示一个没有边框的窗口。当应用程序获得焦点且面板可见时,此窗口将始终位于顶部,并在这种情况下隐藏。此外,当面板不可见时,我们将停止游戏活动。Microsoft论坛上的这篇帖子对此进行了讨论,其中一位发帖者指出:那么,结论是您可以毫无问题地将XNA渲染为WPF形式,但是您必须避免使用Game和GraphicsDeviceManager类,因为后者需要运行Game实例(构造函数定义为newGraphicsDeviceManager(GameGame))并且Game类不提供任何方法来定义它呈现的窗口。所以它看起来是可能的,但需要在等式的XNA方面做一些工作。但是请注意,XNA应用程序将无法在没有至少具有1.1着色器的GPU的系统上运行。以上就是C#学习教程:WPF和XNA呈现万千精灵分享的全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
