2

SharpDX 2.5.0 を使用していて、ゲーム クラスがあり、固定時間ステップを無効にしようとしましたが、うまくいかないようで、それでも 59 ~ 60 FPS が得られます。私はユタ州のティーポットしか描いていないので、もっと多くの (1000 などの) FPS で動作するはずだと確信しています。これが私がすることです:

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

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

        // ...

        base.LoadContent();
    }

私は何かを忘れていますか?この変更を何らかの方法で適用する必要がありますか? それとも、間違った場所でやっていますか(成功せずに他の場所でも試しました)?答えてくれてありがとう:

ムアディブ

4

2 に答える 2

3

vsync と固定タイムステップの両方を無効にする必要があります。これをゲーム コンストラクターに追加してみてください。

// GraphicsDeviceManager is mandatory for a Toolkit Game
_graphicsDeviceManager = new GraphicsDeviceManager(this);
// disable vsync
_graphicsDeviceManager.SynchronizeWithVerticalRetrace = false;
// disable fixed timestep
this.IsFixedTimeStep = false;
于 2013-09-12T12:47:54.300 に答える
1

また、vsync を無効にしてみましたか? vsync が有効で、モニターが 60 Hz で動作している場合 (可能性は非常に高い)、この動作も見られます。Gameクラスについてはよくわかりませんが、通常はPresentationParametersデバイスを作成するときに行います。

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

「即時」は、現在がモニターのリフレッシュを待たないことを示します。

これは D3D9 を想定していますが、どのバージョンの DirectX を使用していますか?

于 2013-09-08T09:00:06.027 に答える