Libgdx decalbatch粒子alpha

时间:2017-02-27 13:34:30

标签: android libgdx

我有一个decalbatch和一些贴花。让我们说50.我有一个集体策略和一个cuszom着色器。

我的问题是,当我在该着色器中执行某些操作时,我的所有粒子都会响应。因此,当我更改着色器上的alpha而不是更改所有粒子贴花时。

如何在该着色器上逐个更改? 感谢

1 个答案:

答案 0 :(得分:1)

着色器制服和常量会影响批次中的所有内容。

如果你想继续使用着色器制服,你可以刷新批次,然后在每次更改参数值时提交更多贴花,但是你需要将它们保持为透明贴花的排序,看起来是正确的。您可以通过创建一个对所有贴花进行排序然后从远到近按升序分配它们的GroupStrategy来完成此操作,每次受影响的参数不同时创建一个新组。

以上内容可能导致大量批次冲洗,从而导致性能下降。另一种方法是使用现有的顶点属性对每个贴花进行数据编码。然而,唯一真正可用的是顶点颜色,因为您需要纹理坐标和位置属性。因此,如果您没有使用颜色进行着色,则只能将数据添加到贴花的颜色中。

第三种可能性是使用允许比DecalBatch更多自定义的库,例如FlexBatch。 FlexBatch可以像DecalBatch一样使用,但您可以定义所需的任何顶点属性。