Libgdx – 在渲染时用Modelbuilder / MeshPartBuilder建立dynamic3D模型

背景:我正在用libgdx构建一个针对android的手机游戏。 这是一个无尽的高分基础的游戏。 环境/地形是dynamic构建的。 这是一种迷宫/墙/块地形。 我正在使用libgdx的ModelBuilder和MeshPartBuilder API来创建模型。

问题:由于游戏是无尽的,地形是随机的,所以我需要在保持一致的60fps的同时渲染模型。 我已经把生成代码放到工作线程中了。 这是有效的,但是由于需要opengl上下文,因此必须在渲染线程中调用ModelBuilder的end()方法。

即使我只使用meshpartbuilder构建一个矩形,我也可以调用ModelBuilder.end()来获得一个巨大的框架。

Codesnippet:

// we are in a worker thread modelBuilder.begin(); // ModelBuilder instance MeshPartBuilder wallBuilder = modelBuilder.part("mazePart", GL20.GL_TRIANGLES, Usage.Position | Usage.Normal | Usage.TextureCoordinates, modelMaterial); ... create some meshes with MeshPartBuilder ... Gdx.app.postRunnable(new Runnable() { @Override public void run() { Model model = modelBuilder.end(); // method that causes a framedrop from 60 to ~35 activeModels.add(model); } }); 

问题:在libgdx中dynamic构建模型时如何获得稳定的fps? 这甚至有可能吗?