如何在 c# 中不开启 vsync 的情况下对 directX11 游戏进行良好的截图

问题描述

在我的应用程序中,我需要截取 DirectX11 游戏的屏幕截图。 这是我用来获取屏幕位图的代码

Bitmap bmpScreenshot = new Bitmap(length,length,PixelFormat.Format32bppArgb);
Graphics gfxScreenshot = Graphics.FromImage(bmpScreenshot);
gfxScreenshot.copyFromScreen(0,new Size(1920,1080),copyPixelOperation.sourcecopy);

如果在游戏中启用了 vsync,此代码可以完美运行,但当关闭时,有时屏幕截图会出现故障和错误显示仍在菜单中时正在渲染的地图区域。启用 vsync 会对性能造成相当大的影响,我想找到一种方法来在关闭它的情况下获得良好的屏幕截图。我可以更改我的代码添加哪些内容,以便我的屏幕截图仍然看起来像在关闭 vsync 的情况下屏幕上显示内容。游戏是彩虹六号围攻,这里的上下文是屏幕截图的外观: Normal Screenshot。 这就是禁用 vsync 时有时会出现的情况: Glitched Screenshot

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)