2017-02-27 80 views
0

我有一个decalbatch和在它的一些贴花。让我们说50.我有一个组策略和一个cuszom着色器。Libgdx decalbatch颗粒阿尔法

我probleme是当我在着色器的东西比我的回应,所有的粒子。所以当我更改着色器上的alpha值时,它会在所有粒子贴花上发生变化。

我怎样才能改变一个接一个上着色器? 感谢

回答

1

着色器的制服和常量影响批次的一切。

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

上述内容已经引起了很多批冲洗可能导致性能损失的可能性。另一种方法是使用现有的顶点属性来为每个贴图的数据进行编码。但是,唯一真正可用的是顶点颜色,因为您需要纹理坐标和位置属性。因此,如果您不使用颜色进行着色,只能将数据放入贴花的颜色中。

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

+0

谢谢我会试试看 – lacas