【问题标题】:C++ OpenGL - How do I get delta time?C++ OpenGL - 我如何获得增量时间?
【发布时间】:2016-03-19 19:09:49
【问题描述】:

我目前正在使用 GLUT、GLEW、SDL 和 GLM 用 C++ 编写 OpenGL 游戏。我试图以一致的速度旋转立方体,但不幸的是,我的游戏依赖于帧速率。有什么办法可以得到增量时间吗?

【问题讨论】:

  • 这个我试过了,还是不行。
  • 如果您至少没有显示一些代码,那么这里没有太多的帮助潜力......说您尝试了某些东西但它没有工作并没有就您可能遇到的问题展开讨论尝试实施。如果您可以编辑您的问题以包含一些显示您尝试过的代码,那将是理想的。
  • 什么版本的 C++? C++11 有<chrono>

标签: c++ opengl glut glew


【解决方案1】:

glutGet(GLUT_ELAPSED_TIME) 是可能的,如果您使用 GLUT 并且毫秒就足够了:

void idle(void) {
    int t;
    /* Delta time in seconds. */
    float dt;
    t = glutGet(GLUT_ELAPSED_TIME);
    dt = (t - old_t) / 1000.0;
    old_t = t;
    glutPostRedisplay();
}

void init(void) {
    old_t = glutGet(GLUT_ELAPSED_TIME);
}

如果你有的话,C11 和 C++11 中还有纳秒时钟:

【讨论】:

    猜你喜欢
    • 2011-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多