Q100407: キャッシュの使用によりブレンド モードをより速く適用します

フォローする

まとめ

Mari 3.3v1 以前では、シェーダーを再コンパイルする必要があるため、ブレンド モードの変更は非常に困難なプロセスになる場合がありました。この記事では、ブレンド モード キャッシュを使用してパフォーマンスを向上させ、ダイナミック モードで必要なシェーダーの再コンパイルの数を減らす方法について説明します。

詳しくは

ダイナミックシェーダ コンパイル モードは、シェーダがかなり重くなるという代償を払って、シェーダのコンパイル速度を向上させます。このダイナミック モードは複数の操作をキャッシュすることでコンパイル レートを削減しますが、一部のアーティストは依然として、異なるブレンド モードを切り替えるときに定期的にシェーダーの再コンパイルに遭遇します。

Mari 3.4v1 では、再コンパイルの回数を減らすために、動的キャッシュ システムにブレンド モードが組み込まれています。ダイナミック モードでは、ユーザーがレイヤー、マージ ノード、またはペイント バッファのブレンド モードを変更した場合、ビューポート内で回転ホイールが完了するのを待つ必要はなく、即座に変更される必要があります。

キャッシュ システムは、アーティストが再コンパイルを実行することなく使用できる 5 つのブレンド モードの「履歴」をサポートします。

注:ブレンド モードの詳細については、 Mariオンライン ヘルプの「ペイント ブレンド モード」セクションを参照してください。

注:デフォルトのシェーダー コンパイル モードは自動です。これは、必要に応じて動的モードと最適化モードの両方を使用するため、ほとんどのMariセッションに最適です。

ブレンド モードのキャッシュ状態からメリットを得られるようにカスタム ノードを調整する方法

カスタム ノード内でブレンド モード属性を使用している開発者は、カスタム ノード XML に次のようなものを含める可能性があります。
 <Attribute Name="BlendMode" PrettyName="Mode" Group="" Type="userenum">Dynamic:  MriBlendMode:Comp_Default</  Attribute> 
ブレンド モードを使用するには、開発者には次の 2 つのオプションがあります。
  1. 動的:MriBlendMode:Comp_デフォルト-通常のブレンド モード タイプ (すべてのモード)。
  2. 動的:MriBlendModeNoAlpha: Comp_Default - アルファ ブレンド モードを含まないタイプ用。
さらに、コンパイルを高速化するブレンド モードのサポートを追加するには、次のように XML ファイルを変更してこれらの変更を有効にする必要があります。
前に:

 Output = $BlendMode(_Base, _Over, #Mask.r * AdvancedBlendAmount);
:
 #if defined(MRI_GENERAL_ COMPOSITION)
Output = Comp_General($BlendMode, _Base, _Over, #Mask.r * AdvancedBlendAmount);
#else
Output = $BlendMode(_Base, _Over, #Mask.r * AdvancedBlendAmount);
#endif // defined(MRI_GENERAL_COMPOSITION)

    私たちはそれを聞いて申し訳ございません

    理由をお聞かせください