0

Unity でマルチパス シェーダーを作成していますが、特定の三角形でいくつかのパスをスキップしたいと考えています。パスの順序が同じではないため、複数のマテリアルでこれを行うことはできません。たとえば、4 つのパス ABCD がある場合、ABD を使用していくつかの三角形が描画され、ACD を使用していくつかの三角形が描画されます。すべての「A」パスを実行し、次にすべての「B」パスを実行する必要があります。したがって、単一のマテリアルと単一のシェーダー内で実行する必要があります。

これを行う最も効率的な方法は何ですか? オブジェクトを白黒画像にテクスチャ マップし、それをパスのアルファ値として使用することもできますが、これは最適とは言えません。

4

1 に答える 1

0

これを行う最も効率的な方法は、サブメッシュを使用することです。マテリアル パスに関して魔法のように特別なことは何もありません。それらを単純なワンパス マテリアルに安全に置き換え、代わりにサブメッシュを使用することができます。Unity は描画時にサブメッシュの順序を保持するため ( 4.2 にはバグがありましたが、修正されました)、すべて問題ないはずです。

于 2014-06-08T02:24:53.920 に答える