2017-02-27 7 views
0

デカールバッチとデカールがあります。私はグループ戦略とcuszomシェーダを持っています。Libgdxデカールバッチ粒子アルファ

私の問題は、私がすべての粒子がそれに応答するよりも、そのシェーダで何かをするときです。シェーダのアルファ値を変更すると、すべてのパーティクルデカールで変化します。

どのようにシェーダ上で1つずつ変更できますか? ありがとう

答えて

1

シェーダーの制服と定数は、バッチ内のすべてに影響します。

shaderユニフォームでこれを続けたい場合は、バッチをフラッシュしてパラメータの値を変更するたびにデカールをさらに送信することができますが、透明ステッカーが正しく表示されるようにソートしておく必要があります。これを行うには、すべてのデカールをソートし、グループを遠くから近い順に割り当て、影響を受けるパラメータが異なるたびに新しいグループを作成するというGroupStrategyを作成します。

上記は、パフォーマンスが低下するバッチフラッシュが発生する可能性があります。別の方法として、既存の頂点属性を使用してデカールごとにデータをエンコードする方法があります。しかし、実際に使用できる唯一のものは、テクスチャ座標と位置属性をそのまま使用する必要があるため、頂点カラーです。したがって、色付けの目的で色を使用していない場合にのみ、デカールの色にデータを入れることができます。

第3の可能性は、FlexBatchのようにDecalBatchより多くのカスタマイズを可能にするライブラリを使用することです。 FlexBatchはDecalBatchのように使用できますが、必要な頂点属性を定義することができます。

+0

お礼ありがとうございます。 – lacas

関連する問題