夏普DX修复了时间步长问题

本文关键字:问题 时间 DX 夏普 | 更新日期: 2023-09-27 18:30:36

我正在使用 SharpDX 2.5.0,我有一个游戏类,我尝试禁用固定时间步长,但它似乎不起作用,我仍然得到 59-60 FPS。我只画了一个犹他州的茶壶,所以我很确定它必须适用于更多(如 1000)FPS。这是我的工作:

    protected override void LoadContent()
    {
        // ...
        // Disabling fix time step.
        this.IsFixedTimeStep = false;
        // ...
        base.LoadContent();
    }

我忘了什么吗?我是否必须以某种方式应用此更改?还是我在错误的地方做了(我也尝试在其他地方做过,但没有任何成功)?感谢您的回答:

穆阿德迪布

夏普DX修复了时间步长问题

您需要禁用垂直同步和固定时间步,尝试将其添加到游戏构造函数中:

// GraphicsDeviceManager is mandatory for a Toolkit Game
_graphicsDeviceManager = new GraphicsDeviceManager(this);
// disable vsync
_graphicsDeviceManager.SynchronizeWithVerticalRetrace = false;
// disable fixed timestep
this.IsFixedTimeStep = false;

您是否也尝试过禁用虚拟同步?如果启用了 vsync,并且您的显示器以 60Hz 运行(很可能),那么您也将看到此行为。我不确定Game类,但我通常在创建设备时在PresentationParameters中执行此操作。

new PresentParameters(width, height) {
    PresentationInterval = PresentInterval.Immediate
}

"立即"表示当前不会等待显示器刷新。

这是假设 D3D9,您使用的是哪个版本的 DirectX?