wpf - OpenTK、SharpGL 和 WPF

标签 wpf opengl graphics opentk

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

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

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

最佳答案

说到性能,我其实只能给你一个答案:自己做一个基准测试!但当你要求一个详细的猜测时:

SharpGl 应该需要更少的间接步骤,因为它忽略了 Windows 窗体主机控件作为“中间”位 block 传输目标。不过,我对此持保留态度,我既没有查看来源,也没有亲自测试过。

但实际上来说:性能应该非常相似。归根结底,计算量大的操作可能是渲染本身,这是由 OpenGL 完成的。位 block 传输最终结果只需要花费一小部分时间。因此,我希望,无论您如何决定,这些选项都不会真正损害您的表现。

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

但令我困惑的是你对这方面有多少疑问。最后,您正在使用 OpenGL 进行工作,并且在出现问题时简单地切换底层实现应该不会太麻烦?对我来说,这些界面似乎并没有太大不同。

关于wpf - OpenTK、SharpGL 和 WPF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13228878/

相关文章:

c# - 包含数字和字母的orderby()

opengl - 当今 OpenGL 中 NPOT 纹理的状态

opengl - 基于物理的着色器未产生预期结果

android - 动态壁纸教程

javascript - 图形计数器校正

c# - 更新项目时,Datagrid 不维护排序

wpf - 在 WPF TreeView 中更改数据的上下文菜单

wpf - 智能客户端Winform vs MVVM + Prism

c++ - OpenGL 中的照明问题

matlab - 如何在 MATLAB 中填充两条直线和一条不直的曲线之间的区域(该区域不是多边形)