如何在 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

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

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/193185.html

大家都在问