我试图在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;
}
但我看不到动画,只是第一个移动点和最后一个移动点。如何更改此内容以查看动画?
答案 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;
}