SharpDX固定时间步问题

时间:2013-09-07 18:16:57

标签: c# sharpdx

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

    protected override void LoadContent()
    {
        // ...

        // Disabling fix time step.
        this.IsFixedTimeStep = false;

        // ...

        base.LoadContent();
    }

我会忘记一些事吗?我是否必须以某种方式应用此更改?或者我是在错误的地方做的(我也试过在别处做过没有任何成功)?谢谢你的回答:

Muad'Dib

2 个答案:

答案 0 :(得分:3)

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

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

答案 1 :(得分:1)

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

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

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

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