Opengl,简单的动画

时间:2015-05-30 15:16:19

标签: opengl

我试图在Opengl中制作简单的动画。我的议程是将对象向一个方向移动。我是通过使用glm:translate:

来做到这一点的
int iModelViewLoc = glGetUniformLocation(program, "modelViewMatrix");

mModelView = glm::translate(mModelView,
    glm::vec3(dxb1, 0.0, -12.41989));

glUniformMatrix4fv(iModelViewLoc, 1, GL_FALSE, glm::value_ptr(mModelView));
brama1->Draw();

我的动画制作功能是按功能键,按键激活:

for (int i = 0; i < 116; i++)
    {
        dxb1 = dxb1 + 0.05;
    }

但我看不到动画,只是第一个移动点和最后一个移动点。如何更改此内容以查看动画?

1 个答案:

答案 0 :(得分:0)

你必须创建一个动画循环,并在每一帧上更新该值。更好的是,如果在每一帧上,您可以根据时间计算所需的位置。如果你使用过剩:

int oldTimeSinceStart = 0;

while( ... )
{
     int timeSinceStart = glutGet(GLUT_ELAPSED_TIME);
     int deltaTime = timeSinceStart - oldTimeSinceStart;
     oldTimeSinceStart = timeSinceStart;

     //your part
     dxb1 = dxb1 + deltaTime * 0.05;
}