所以现在在 C++ 中,我有一个第一人称相机,控制正常,相机移动正常。但我唯一的问题是相机的速度不是预期的,让我解释一下:
(3D 场景)
10个物体->相机速度很快
1000 对象 -> 慢镜头速度
所以基本上我所做的就是像这样随着时间的推移而倍增:
Newpos += 速度 * DeltaTime;
但是当我的程序有负载时,相机速度会降低很多!那么这里发生了什么,我做错了什么?
时间码(结果看起来不错,以秒为单位):
double DeltaTime::milliseconds_now()
{
static LARGE_INTEGER s_frequency;
static BOOL s_use_qpc = QueryPerformanceFrequency(&s_frequency);
if (s_use_qpc) {
LARGE_INTEGER now;
QueryPerformanceCounter(&now);
return (1000LL * now.QuadPart) / s_frequency.QuadPart;
} else {
return GetTickCount();
}
}
void DeltaTime::OnStart()
{
//ticks = (float)GetTickCount();
QueryPerformanceFrequency( &m_liPerformanceFrequency);
}
float DeltaTime::GetDelta()
{
return ((float)dTime/(float)1000000.0f);
}
void DeltaTime::OnFinish()
{
if (timeFirst)
{
//ticks = 0;
dTime = 0;
timeFirst = false;
return;
}
//ticks = ((float)ticks = (float)GetTickCount() - (float)ticks);
QueryPerformanceCounter( &liPerformanceCount);
dTime = double(liPerformanceCount.QuadPart)/double(m_liPerformanceFrequency.QuadPart);
}
框架:
void OnFrame(...)
{
...
timeHandler.OnFinish();
timeHandler.OnStart();
...
}
谢谢你