我在屏幕外模式的WPF应用程序中使用CefSharp。
浏览器内部WebGL三维模型。模型的某些点必须是“广告牌”,但在WPF的二维空间中必须是WPF对象。
在每一帧渲染中,我计算出3D的投影,指向2D屏幕上的同弦,然后用2D坐标向WPF发送回调。
视觉上的二维对象的WPF移动在1-2帧比三维模型更快。这很奇怪,因为我正在捕捉CEF的onRender事件,并在浏览器呈现后设置广告牌。
如何在WPF中同步渲染3D模型和2D广告牌?
发布于 2015-05-24 21:40:47
原因可能是WPF应用程序没有可预测的刷新速率。它基于受硬件和操作系统当前状态影响的底层启发式方法重新绘制UI。除非您与DirectDraw一起工作,否则WPF不能被迫随意重绘。在这里阅读更详细的内容:https://rhnatiuk.wordpress.com/2008/12/21/wpf-video-playback-problems/
如果在WPF应用程序(如视频、动画效果或带有WebGL呈现的移动对象的浏览器)中具有连续的运动呈现,则不能可靠地将其帧同步用于屏幕截图。我试着在WPF CefSharp应用程序中运行视频,在我能找到的每台(甚至是高端)计算机上,性能(感知和测量)都很糟糕。
--您可以尝试将应用程序移植到WinForms,以从固定的帧速率中获益。在WinForms中,您必须抓取表单或浏览器控件的截图,这是混乱的,但应该是可行的。
https://stackoverflow.com/questions/30095709
复制相似问题