Простая анимация OpenGL C++
Я делаю 3D игру на OpenGL, модельки загружаю с помощью Assimp, создаю окно, обрабатываю нажатия клавиатуры, загружаю текстуры и звук с помощью SFML. Захотел я сделать загрузку анимации, нашёл на ютубе видео, где человек просто загружает много obj файлов, а потом рисует. Я сделал так, получилось, только вот загружается оно не особо быстро.
class Animation {
private:
Model m[200]; //Мой класс для загрузки моделей
public:
void LoadAnimation(std::string filename) {
for (int i = 1; i <= 200; i++) {
if (i <= 9) {
m[i].Load(filename + "_00000" + std::to_string(i) + ".obj");
}
else if (i <= 99 && i > 9) {
m[i].Load(filename + "_0000" + std::to_string(i) + ".obj");
}
else if (i <= 999 && i > 99 && i > 9) {
m[i].Load(filename + "_000" + std::to_string(i) + ".obj");
}
std::cout << "Frame " << i << " loaded" << std::endl;
}
}
void DrawAnimation(int frame, GLuint texture) { //Рисуем 1 кадр с текстурой
m[frame].Draw(texture);
}
void DrawAnimation(int frame) { //Рисуем 1 кадр без текстуры
m[frame].Draw(false);
}
};
//В main
int frame = 0;
Animation a;
a.LoadAnimation("resources/Models/Animations/Test/animation");
//В главном цикле
glTranslatef(100, 40, 100);
if (frame >= 199) {
frame = 0;
}
frame++;
a.DrawAnimation(frame, texture);
glTranslatef(-100, -40, -100);
Да и как-то хранить 200 разных файлов не особо хочется. Я бы хотел загружать анимацию из fbx. P. S. Я знаю, что Assimp прекрасно понимает скелетную анимацию, но мне нужен не только такой тип анимации. К тому же это довольно сложно.