Насколько я понимаю, нам придется использовать два разных урока
https://github.com/mattdesl/lwjgl-basics/wiki/FrameBufferObjects
https://xoppa.github.io/blog/basic-3d-using-libgdx/ (вы, вероятно, уже знакомы с этим)
FrameBuffer fbo = new FrameBuffer(Pixmap.Format.RGBA4444, width, height, hasDepth);
// I've never used a FrameBuffer before so you may have to play around with constructor parameters
ModelBatch batch = // your ModelBatch initialization here
fbo.begin(); // make fbo the current buffer
glClearColor(0f, 0f, 0f, 1f);
glClear(GL_COLOR_BUFFER_BIT);
batch.resize(fbo.getWidth(), fbo.getHeight());
batch.begin();
batch.render(modelInstance, environment);
batch.end();
fbo.end(); // Now you can draw on the display again
// If you want to, you can resize your batch and use it to draw on the display
batch.resize(Display.getWidth(), Display.getHeight());
Как только вы сделаете все, что вам нужно сделать со своим FrameBuffer, вы можете получить текстуру
fbo.getTexture();
РЕДАКТИРОВАТЬ: Этот метод не существует, посмотрите наВопрос ОП для решения РЕДАКТИРОВАТЬ 2: FrameBuffer действительно имеет метод getColorBufferTexture ()
Для сохранения текстуры посмотрите на https://www.badlogicgames.com/forum/viewtopic.php?p=8358#p8358 или https://www.badlogicgames.com/forum/viewtopic.php?t=5686
Я использовал это дляполучить одну из ссылок: Libgdx сохранить SpriteBatch в текстуре все остальное, что я утешил
Если что-то не работает, дайте мне знать, и я могу попытаться осмотреться.