libgdx桌面多纹理多着色器

libgdx桌面多纹理多着色器,libgdx,textures,shader,desktop,Libgdx,Textures,Shader,Desktop,我想寻求帮助或辅导。我在谷歌上搜索了几个关键词,没有一个给出我想要的结果。我尝试在一个帧中使用多个着色器渲染多个纹理。现在我有一个灰度和一个模糊着色器工作。我通读了大部分教程和其他一些教程。但我发现的只是一张图像,而不是一整套纹理 假设我有这样的东西,在哪里 屏幕上有一个按钮 B是一种字体位图字体 C到F是纹理 现在我想以不同的方式渲染每个纹理 B获取灰度着色器 C得到了一个模糊着色器我得到了这个-非常简单,但代码是不可重用的 D获得与上面相同的灰度和模糊 从E到F一直呆在那里,因为我在那里得到

我想寻求帮助或辅导。我在谷歌上搜索了几个关键词,没有一个给出我想要的结果。我尝试在一个帧中使用多个着色器渲染多个纹理。现在我有一个灰度和一个模糊着色器工作。我通读了大部分教程和其他一些教程。但我发现的只是一张图像,而不是一整套纹理

假设我有这样的东西,在哪里

屏幕上有一个按钮 B是一种字体位图字体 C到F是纹理 现在我想以不同的方式渲染每个纹理

B获取灰度着色器 C得到了一个模糊着色器我得到了这个-非常简单,但代码是不可重用的 D获得与上面相同的灰度和模糊 从E到F一直呆在那里,因为我在那里得到了这个。。。容易的 最后,A再次获得模糊着色器。
非常感谢您的帮助。

首先,将精灵C和D分别绘制到各自的帧缓冲区中,并对其进行模糊处理。然后在屏幕大小的新帧缓冲区中:spriteBatch.setShadergrayScaleShader;spriteBatch.begin;spriteBatch.drawbitmapFontCacheB;spriteBatch.drawframebuffered;spriteBatch.setShadernull;spriteBatch.drawframeBufferC;spriteBatch.drawspriteE;spriteBatch.drawspriteF;spriteBatch.end;然后模糊这个帧缓冲区并将其绘制到屏幕上。我想spriteBatch.draw会在屏幕上绘制吗?或者我必须创建多个sprite批处理吗?它根据您的需要绘制。在frameBuffer.begin和.end之间执行spriteBatch.begin和.end,它将绘制到该帧缓冲区。您可以在任意多个不同的帧缓冲区上重复使用同一批sprite。@Tenfour04我想您应该添加这一点作为答案,这似乎是正确的解决方案,您对此进行了很好的解释。