我正在使用SharpDX 2.5.0并且我有一个游戏类,我尝试禁用固定时间步,但它似乎不起作用,我仍然得到59-60 FPS。我只画一个犹他茶壶,所以我很确定它必须能用更多(如1000)FPS。这是我的工作:
protected override void LoadContent()
{
// ...
// Disabling fix time step.
this.IsFixedTimeStep = false;
// ...
base.LoadContent();
}
我会忘记一些事吗?我是否必须以某种方式应用此更改?或者我是在错误的地方做的(我也试过在别处做过没有任何成功)?谢谢你的回答:
Muad'Dib
答案 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?