我正在尝试将 3ds 动画导出到 OpenGL,并且我想一点一点地转到下一帧。为此,我使用具有 100 个键的 3ds 文件,所以如果我不犯错误,那就可以了。
为了运行我的动画,我使用了 lib3ds_file_eval 语句,但似乎我做错了
这是我的做法:
void animationTimer(int value) {
if (g_haltAnimation != 0) {
lib3ds_file_eval(g_scenes3DS[ANIMATED_KART_ID].lib3dsfile, g_currentFrame);
g_currentFrame = (g_currentFrame + 1) % g_scenes3DS[ANIMATED_KART_ID].lib3dsfile->frames;
glutTimerFunc(10, animationTimer, 0);
}
}
所以这很简单。我将场景的 lib3dsfile 放入参数和下一帧的编号。当我检查节点中的变换矩阵时,它没有改变,我找不到原因。
我注意到lib3dsFile中的current_frame也没有变化,我不知道它是否正常。