Libgdx-三维粒子混合问题

Libgdx-三维粒子混合问题,libgdx,Libgdx,我尝试创建包含2个发射器(控制器)的简单粒子系统:1个用于火焰,1个用于烟雾。我做这件事有问题,不使用编辑器。我从fire开始创建BilboardParticleBatch设置纹理,结果一点也不好。原因是批内混合功能不正确。所以我在自己的批处理中覆盖它,并将其更改为GL_SRC_ALPHA,GL_ONE-这会产生更好的结果。 因此,现在使用我的批次,火看起来不错。然后我想添加烟雾,所以这里我想使用非预乘混合,所以我再次创建了新的批处理扩展BillboardParticlePath,使其使用SRC

我尝试创建包含2个发射器(控制器)的简单粒子系统:1个用于火焰,1个用于烟雾。我做这件事有问题,不使用编辑器。我从fire开始创建BilboardParticleBatch设置纹理,结果一点也不好。原因是批内混合功能不正确。所以我在自己的批处理中覆盖它,并将其更改为GL_SRC_ALPHA,GL_ONE-这会产生更好的结果。 因此,现在使用我的批次,火看起来不错。然后我想添加烟雾,所以这里我想使用非预乘混合,所以我再次创建了新的批处理扩展BillboardParticlePath,使其使用SRC_ALPHA,一减去SRC_ALPHA,并为其指定烟雾纹理。所以烟是完美的

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

我可以尝试只使用一个批次,并使用TextureRegion influencer,以便在一个批次内使用不同的烟雾和火焰纹理,但如何解决不同混合的问题,因为这将是一个相同的批次

这是一种将两个批次合并为一个批次的方法,并告诉它使用添加剂渲染火,使用alpha渲染烟


提前感谢!

问题已经解决。现在它可以在两个批次中正常工作。我只是在覆盖粒子批次时为材料添加了深度测试功能