WPF - 交互式实时渲染(C#)

问题描述:

我目前正在研究一个项目,我想在重建的小地图上显示游戏数据和我自己的图形。WPF - 交互式实时渲染(C#)

数据以与该tick中更改的实体数据相同的游戏刻度给出。起初,我想绘制地图,然后绘制第一个刻度线上存在的所有实体。然后为每个滴答我想要更新的位置和画线之间的实体

我的WPF用户界面设置与MVVM模式。

现在我正在为迷你地图的创作和技巧而努力。

我想微缩支持/创建什么:

  1. 交互

    • 点击实体在球场上显示更多关于他们的信息。
    • 缩放地图
    • 关注实体(在游戏领域的缩放)
    • 的toogle不同的视觉效果(禁用一个团队,强调某事等)
    • ...(以及其他交互象上面)
  2. 性能

    • 图形看起来应该尽可能平滑(地图,图片,抗锯齿,无口吃)
    • 高帧率(至少30FPS)
    • 在最好的情况应该是大部分建在上述特征的解决方案(见1)
  3. 导出截图和整场比赛的视频(用我自己的图表和材料)

我已经考虑(这个职位WPF real-time rendering

  • 数据结合和帆布

问题:缓慢而不是performant..at至少是我实现它) - WriteableBitmap的(问题:没有内置的funcitionalities(见1)

  • DrawingVisuals

问题:如何实现MVVM?它有效吗?

  • WriteableBitmap的

问题:我要建立的1对我自己的功能)。但看起来效率很高

在我开始实施很多自己想要的功能之前,我想询问是否有任何适合我的需求或上述任何技术不适合。

我希望我的问题很清楚。

随时让我知道是否有遗漏。

+0

[此库](https://github.com/teichgraf/WriteableBitmapEx/)将为您提供用于在'WritableBitmap'上绘图的所有绘图函数。 –

+0

@BradleyUffner:它是否也支持命中测试?使用缩放和平移时,它可能比想象中更加复杂。 – JanDotNet

+0

这只是一个绘图库,你仍然需要自己测试。我建议创建一个'UserControl',用'WritableBitmapEx'绘制并直接在'UserControl'的代码后面进行命中测试。你可以使用'DrawingVisual'来进行命中测试。 MVVM真的打破了这样的事情,因为命中测试实际上是直接UI层的一部分,而不是视图模型层。 –

DataBinding很适合将视图模型连接到输入控件,但不能实时更新图形对象的状态。

我会去DrawingVisual,因为它是相对轻量级的并且支持hit testing。即使您没有MVVM支持,也可以轻松地“手动”更新视觉效果。