OpenTK,SharpGL和WPF

Gil*_*lad 11 opengl wpf graphics opentk

我即将开始一个新项目.有些决定是我无法控制的:使用WPF和OpenGL是其中的一部分.

但是,我已将OpenGL选项缩小为两个:OpenTK或SharpGL.SharpGL有一个WPF控件,而OpenTK只有一个Windows窗体控件,这使我必须将它嵌入到Windows窗体主机中: - /虽然我不介意空域限制,但我确实希望有不错的性能,因为我正在构建一个实时应用程序.不是游戏,但仍然是实时.

与使用具有"纯"WPF控件的SharpGL相比,我的程序在Windows窗体上使用OpenTK会带来多少性能影响?

Mar*_*mer 6

在性能方面,我实际上只能给你一个答案:自己做一个基准!但正如你要求做出精心猜测:

SharpGl 应该要求间接步骤少,因为它将Windows窗体主机控件省略为"中间"blitting目标.尽管如此,我还没看过来源,也没有亲自测试过.

但实际上说:表现应该非常相似.在一天结束时,计算繁重的操作可能是渲染本身,这是由OpenGL完成的.Blitting完成的结果应该只花费一小部分时间.因此,我希望,无论您如何决定,这些选项都不会真正损害您的表现.

为了论证:让我们假设渲染本身(OpenGL部分)需要16毫秒,因此我们的理论性能约为60 FPS.框架A增加1毫秒的开销,框架B增加4毫秒的开销.即使在开销方面存在相当大的差异,框架a也会以~58 FPS和框架B提供~50 FPS.因此,在这两种情况下,应用程序都应保持可用.

但让我感到困惑的是你对这方面有多么疑惑.最后你正在使用OpenGL,如果事情变坏,简单地切换底层实现应该不会太麻烦?界面对我来说似乎并没有太大的不同.

  • 我想你错过了我的观点:主要的​​工作是在OpenGL中完成的,它应该是硬件加速的.为了从OpenGL输出"桥接","结果"图像简单地在各种表面上进行.这些blitting操作应该只需要渲染所需时间的一小部分.哦,WPF硬件加速在这里买不多.我不认为有可能从WPF访问OpenGL图像,因此无论如何都必须制作"软件"副本. (4认同)
  • 那么,当人们提出模糊的性能相关问题时,我可以做的任何事情,"真正的"答案是第一段.其余的只是个人经历,随意证明我错了;) (2认同)