2017-02-27 79 views
0

我有一個decalbatch和在它的一些貼花。讓我們說50.我有一個組策略和一個cuszom着色器。Libgdx decalbatch顆粒阿爾法

我probleme是當我在着色器的東西比我的迴應,所有的粒子。所以當我更改着色器上的alpha值時,它會在所有粒子貼花上發生變化。

我怎樣才能改變一個接一個上着色器? 感謝

回答

1

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

如果要繼續使用着色器制服進行此操作,則可以刷新批次,然後在每次更改參數值時提交更多貼花,但需要將它們按透明貼花排序才能看起來正確。您可以通過創建一個GroupStrategy來完成此操作,將所有貼圖進行排序,然後按從小到大的升序將它們分組,然後每次受影響的參數不同時創建一個新組。

上述內容已經引起了很多批沖洗可能導致性能損失的可能性。另一種方法是使用現有的頂點屬性來爲每個貼圖的數據進行編碼。但是,唯一真正可用的是頂點顏色,因爲您需要紋理座標和位置屬性。因此,如果您不使用顏色進行着色,只能將數據放入貼花的顏色中。

第三種可能性是使用庫,允許比DecalBatch更多的定製,如FlexBatch。 FlexBatch可以像DecalBatch那樣使用,但您可以定義您需要的任何頂點屬性。

+0

謝謝我會試試看 – lacas