2012-05-13 147 views
1

我正在设计一款游戏,并考虑使用WPF制作基本游戏的简单原型。WPF实时渲染

是否有可能在WPF中实时呈现基本的2d图形?通过基本的图形,我的意思是简单的形状,如线条,圆形等。“实时”是指根据参数(如速度,加速度等等)根据玩家输入而变化的东西 - 我假设我可以不使用动画故事板。

感谢

回答

8

检查出良好的相关讨论前一个问题High Performance Graphics using the WPF Visual Layer。虽然WPF为丰富的矢量图形提供了一个很好的框架,但它对于实时2D性能还是有所欠缺的。

有一些解决方法,例如,取决于您使用DrawingVisuals或虚拟Shape类(WPF矢量图形)绘制小精灵的场景复杂性。在较低的级别上,您可以使用.NET4.0中提供的BitmapCache模式来缓存子图,或者将它们预先预渲染到位图并使用各种optimization patterns来提高吞吐量。

尽管级别较低,但您可以使用fantantastic WriteableBitmapEx项目混合矢量/光栅图形,或使用D3DImage将Vector/GPU图形混合使用。

关于如何更新您的场景,您需要编写一个原始游戏引擎,在CompositionTarget.Rendering事件(在重绘屏幕时触发)处获得更新参数并计算您的精灵位置/方向。一些可能对此有帮助的是这个伟大的codeplex project,它集成了WPF/Silverlight和Farseer物理。