Libgdx - 3d粒子混合问题

时间:2014-11-26 11:01:38

标签: libgdx

我尝试创建包含2个发射器(控制器)的简单粒子系统:1表示火,1表示烟。我这样做有问题,而不是使用编辑器。我开始使用fire并创建BilboardParticleBatch设置纹理,结果并不好。原因是内部批处理混合功能不正确。所以我在我自己的批次中覆盖它并将其更改为GL_SRC_ALPHA,GL_ONE - 这会产生更好的结果。 所以现在使用我的批次火看起来很好。然后我想添加烟雾,所以在这里我想使用Not pre-multiplied blend,所以我再次创建了新的批量扩展BillboardparticleBath并使其使用SRC_ALPHA,ONE_MINUS_SRC_ALPHA并为其指定烟雾纹理。烟雾是完美的。

主要问题是如何合并两个控制器。如果我将它们都放到ParticleEffect并将此效果放在ParticleSystem中,那么我就能将它们一起渲染,但问题是当两个发射器的粒子重叠时,有时它们会有错误的混合。这可能是因为他们使用2批次时可能没有排序。排序不是按效果级别应用,而是按批次级别应用。所以这不是一个解决方案:(

我可以尝试只使用一个批次并使用TextureRegion影响器,以便在1批次内使用不同的纹理进行烟雾和火灾,但是如何解决不同混合的问题,因为它对批次来说是一个相同的。

这是一种以某种方式将两个批次合并在一起并告诉它使用添加剂和烟雾使用alpha进行渲染的方式。

提前致谢!

1 个答案:

答案 0 :(得分:0)

问题解决了。现在它有2批次正常工作。我只是在覆盖粒子批次时为材质添加深度测试功能。

相关问题