一些背景知识,我刚开始使用LibGDX框架尝试开发Android游戏。我正在尝试使用他们的FrameBuffer类通过放置精灵来构建纹理,并且我想将这个纹理作为一种逐层动态/随机背景。不幸的是,当精灵添加到FrameBuffer时,它们会完全覆盖它们下面的任何东西。通常情况下这没问题,但我将使用许多具有半透明像素的精灵,因为这些透明像素将覆盖任何在其下方的实心像素,从而显示出基础背景颜色并产生非常不愉快的效果。
换句话说,创建由多个精灵组成的一个坚固的纹理,并将它们层叠在彼此之上,而不完全删除较低的像素(至少如果顶部像素是半透明的),最好的方法是什么?
经过几个小时的实验和搜索,我束手无策。感谢您的时间!
-----编辑-----
以下是用于将精灵添加到FBO的代码。它非常简单,因为现在我只是为了测试目的在随机位置添加一个精灵。如果需要,我很乐意发布任何代码,但整个设置现在非常简约,以解决此问题。
换句话说,创建由多个精灵组成的一个坚固的纹理,并将它们层叠在彼此之上,而不完全删除较低的像素(至少如果顶部像素是半透明的),最好的方法是什么?
经过几个小时的实验和搜索,我束手无策。感谢您的时间!
-----编辑-----
以下是用于将精灵添加到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();