首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenTK、SharpGL和WPF

OpenTK、SharpGL和WPF
EN

Stack Overflow用户
提问于 2012-11-05 17:04:18
回答 2查看 10.9K关注 0票数 12

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

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

与使用带有“纯”WPF控件的SharpGL相比,在Windows Forms Host上使用OpenTK会对我的程序造成多大的性能影响?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-11-12 17:22:52

当谈到性能时,我只能给你一个答案:自己做一个基准测试!但是当你想要一个精心设计的猜测时:

SharpGl需要更少的间接步骤,因为它省略了Windows窗体宿主控件作为“中间”host目标。尽管对此持保留态度,但我既没有查看过源代码,也没有亲自测试过它。

但实际上:性能应该非常相似。归根结底,繁重的计算操作可能是渲染本身,这是由OpenGL完成的。对最终结果进行分块应该只需要很少的时间。因此,我希望,无论您如何决定,这些选项都不会真正影响您的性能。

为了便于讨论:让我们假设渲染本身( OpenGL部分)需要16毫秒,所以理论上我们的性能大约是60FPS。框架A增加了1ms的开销,框架B增加了4ms的开销。即使在开销上有如此巨大的差异,框架A将以约58FPS呈现,框架B以约50FPS呈现。因此,在这两种情况下,应用程序都应该保持可用。

但让我困惑的是,你对这方面有多想知道。最后,您正在使用OpenGL进行工作,在事情变得糟糕的情况下,简单地切换底层实现应该不会有太多麻烦?对我来说,界面似乎并没有太大的不同。

票数 5
EN

Stack Overflow用户

发布于 2012-11-13 23:20:10

我会说使用OpenTK,或者如果使用SharpGL更舒服,那么在Winforms模式下使用它,并将其嵌入到WPF应用程序中。

原因是OpenGL驱动程序知道如何使用窗口句柄,窗口句柄是随每个winforms控件提供的。在WPF应用程序中,只有一个窗口句柄,即主窗口之一。您可以尝试使用它,但我认为它会带来太多问题。

如果您不希望将内容直接渲染到屏幕上,并且考虑使用PixelBufferObject或RenderBufferObject,那么您可能可以在WPF模式下使用SharpGL (它渲染到RenderBufferObject,然后将生成的缓冲区放在图像中,可能使用WritableBitmap或更多),或者您也可以自己做同样的事情。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13228878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档