这里有一些简单的背景知识,我刚开始使用 LibGDX 框架进行 Android 游戏开发的第一次尝试。我正在尝试通过放置精灵来使用他们的 FrameBuffer 类构建纹理,并且我想将此纹理用作一种逐级动态/随机背景。
不幸的是,当精灵被添加到 FrameBuffer 时,它们似乎会完全覆盖它们下面的任何东西。一般来说这很好,但是我将使用的许多精灵都有半透明像素,并且因为这些透明像素会覆盖它们下面的任何实心像素,它会显示为基本背景颜色并产生非常不愉快的效果.
换句话说,从多个精灵中创建一个实体纹理并将它们层叠在一起而不完全移除较低像素(至少如果顶部像素是半透明的)的最佳方法是什么?
在这方面进行了几个小时的试验和搜索,我不知所措。谢谢你的时间!
- - - 编辑 - - -
这是用于将精灵添加到 FBO 的代码。它非常缺乏,因为目前我只是在随机位置添加一个精灵以进行测试。我很乐意根据要求发布任何代码,但是现在整个设置都非常简约,可以解决这个问题。
m_fbo.begin();
batch.begin();
batch.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
sprite.draw(batch);
batch.end();
m_fbo.end();