WPF实时渲染

时间:2012-05-13 13:07:51

标签: wpf rendering 2d real-time

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

是否可以实时渲染WPF中的基本2D图形?基本图形我的意思是简单的形状,如线条,圆圈等。“实时”我指的是基于速度,加速度等参数渲染的东西,这些参数会根据玩家的输入而变化 - 我认为这意味着我可以不要使用故事板制作动画。

由于

1 个答案:

答案 0 :(得分:9)

查看上一个问题High Performance Graphics using the WPF Visual Layer,以获得良好的相关讨论。虽然WPF为丰富的矢量图形提供了一个很好的框架,但它在某种程度上缺乏实时的2D性能。

例如,根据您使用DrawingVisuals或虚拟化Shape类(WPF矢量图形)绘制精灵的场景复杂性,可以使用变通方法。更低级别,您可以使用.NET4.0中提供的BitmapCache模式缓存精灵,或者将它们预先预先添加到位图并使用各种optimization patterns来提高吞吐量。

更低级别,你可以使用奇妙的WriteableBitmapEx项目或使用D3DImage的矢量/ GPU图形混合矢量/光栅图形。

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