首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >LibGDX FrameBuffer共混

LibGDX FrameBuffer共混
EN

Stack Overflow用户
提问于 2012-08-14 23:24:17
回答 1查看 3.1K关注 0票数 3

在这里,我刚刚开始使用LibGDX框架,这是我第一次尝试开发安卓游戏。我试图使用他们的FrameBuffer类在精灵中构建纹理,我想使用这种纹理作为一种逐级动态/随机背景。

不幸的是,当精灵被添加到FrameBuffer中时,它们将完全覆盖它们下面的任何内容。一般来说,这是很好的,但是我将使用的许多精灵都有半透明的像素,而且由于这些透明像素会覆盖它们下面的任何实体像素,它会显示到基本的背景颜色,并产生非常不愉快的效果。

换句话说,从多个精灵中创建一个实体纹理的最佳方法是,在不完全删除较低像素的情况下,将它们层叠在一起(至少如果顶部像素是半透明的)?

在对此进行了几个小时的实验和搜索之后,我不知所措。耽误您时间,实在对不起!

--编辑-

下面是将雪碧添加到FBO中的代码。它非常缺乏,因为,就目前而言,我只是在随机地点添加一个雪碧来进行测试。我很乐意根据请求发布任何代码,但是现在整个设置非常简约,可以解决这个问题。

代码语言:javascript
复制
    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();
EN

回答 1

Stack Overflow用户

发布于 2013-03-12 10:53:53

老问题,但你能粘贴FBO初始化代码吗?你需要在FBO中有一个alpha通道。另一件事是,FBO是GLE2.0特性,所以您可能需要使用自己的着色器,因为alpha测试必须在GLE2.0上手动完成。

最后,你是否允许在批次上混合?

batch.enableBlending();

应该能起作用。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11962262

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档