实际上,乒乓球渲染非常适合这个目的!这是一个在 LibGDX 中工作的代码示例,其中有一个实际绘制到屏幕的“批处理”对象,我们可以使用 FrameBuffers 捕获输入:
FrameBuffer ping = fbo; // the framebuffer containing your rendered texture
for (ShaderProgram shader : shaders) {
pong.clear();
pong.begin();
batch.begin();
batch.setShader(shader);
batch.draw(ping.getColorBufferTexture(), 0, 0, width, height);
batch.end();
pong.end();
ping = pong;
}
batch.begin();
batch.draw(pong.getColorBufferTexture(), 0, 0, width, height);
batch.end();
对 pong 的明确调用(在我的情况下,创建一个新的帧缓冲区)是昂贵的,因此预分配可能会提供一些加速。这更像是对 Matias 回答的后续行动,而不是回答本身,但不适合发表评论。