繁体   English   中英

同步CefSharp渲染和WPF渲染

[英]Synchronize CefSharp render and WPF render

我在屏幕外模式下的WPF应用程序中使用CefSharp。

浏览器内部WebGL 3D模型。 在某些时候,模型必须是“广告牌”,但必须是WPF二维空间中的WPF对象。

在每个帧渲染中,我都计算3D点到2D屏幕坐标的投影,并使用2D坐标将回调发送到WPF。

在视觉上,WPF的2D对象比3D模型移动1-2帧的速度更快。 这很奇怪,因为我正在捕获CEF的onRender事件,并在浏览器渲染后设置广告牌坐标。

如何在WPF中同步3D模型和2D广告牌的渲染?

罪魁祸首可能是WPF应用程序没有可预测的刷新率的事实。 它根据受硬件和操作系统当前状态影响的后台启发式方法重绘UI。 除非您使用DirectDraw解决它,否则不能强迫WPF重绘。 请在此处详细阅读: https : //rhnatiuk.wordpress.com/2008/12/21/wpf-video-playback-problems/

如果在WPF应用程序中进行连续的运动渲染,例如视频,动画效果或带有WebGL渲染的移动对象的浏览器,则无法可靠地对其进行帧同步以进行屏幕截图。 我尝试在WPF CefSharp应用程序中运行视频,并且在我能找到的每台(甚至高端)计算机上,性能(感知和测量)都非常糟糕。

您可以尝试将应用程序移植到WinForms中,以受益于恒定的帧速率。 在WinForms中,您将必须获取表单或浏览器控件的屏幕快照,该屏幕很杂乱但应该可行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM