我正在通过 OpenGL Superbible 第 5 版工作。有在屏幕上显示旋转圆环的示例代码。为确保旋转发生独立于处理器速度,旋转量基于时间。我的问题:在下面的示例代码中,我怎样才能“确定”正确的时间将传递给m3dRotationMatrix44()
方法?也就是说,在 之后rotTimer.GetElapsedSeconds()
,是什么阻止了操作系统处理其他任务,然后返回到m3dRotationMatrix44()
?或者,这是用于教程目的的基本计时技术吗?如果是这样,还有什么其他方法存在?
// Set up time based animation
static CStopWatch rotTimer;
float yRot = rotTimer.GetElapsedSeconds() * 60.0f;
// <initialize some stuff>
// Create a rotation matrix based on the current value of yRot
m3dRotationMatrix44(mRotate, m3dDegToRad(yRot), 0.0f, 1.0f, 0.0f);