レンダー出力に対するマスク処理


https://www.youtube.com/watch?v=qyNTp3h3Ymo

MODO 11ではレンダー出力に対するマスク処理が行えるようになりました。

従来のシェーダツリーではマテリアルに対してレイヤーマスクやグループマスクを適用することにより、マテリアルやテクスチャの重なり合いをコントロールすることができました。MODO 11ではレンダー出力に対しても、このマスク機能を適用することができるようになっています。

まずはサンプルシーンを見てみます。白い壁の前に複数のモデルが配置されている、ごく普通のシーンです。まずは通常のマテリアルに対するマスク処理を見てみましょう。例えば、円柱には現在一つだけマテリアルが設定されていますが、もう一つマテリアルを追加すると、上に配置しているマテリアルで下のマテリアルを覆っています。MODOではPhotoshopと同様、下から上へと効果が重ねられるために、このような結果になりますが、この上のマテリアルに対してマスクをつけてみます。まずはテクスチャを追加し、これを上のマテリアルへとドラッグします。そうするとテクスチャのエフェクトは自動的にディフューズの色からレイヤーマスクへと切り替わり、上のマテリアルに対してマスクがかけられ、下のマテリアルが見えるようになります。これがレイヤーマスクの効果です。

MODO 11では、これがレンダー出力に対しても行えるようになっています。

例えば今回、後ろ側に並んでいるボックスと円錐、円柱だけをレンダー出力してみましょう。この三つのアイテムを選択し、Ctrl+Gでグループロケータにひとまとめにしておきます。次にシェーダツリーでマテリアルのグループを一つ作成し、アイテムに対し作成したGroup Locatorを設定します。これでこのマテリアルグループは三つのアイテムに対して影響を及ぼすようになります。

では作成したグループの中に、レンダー出力でFinal ColorとAlphaを追加してレンダリングしてみましょう。そうすると、この三つのアイテムだけがレンダリングされるFinal ColorとAlphaが出力されるようになります。

ここでさらに、このグループに対してテクスチャを追加し、それをFinal Color Outputへと適用します。プロシージャルテクスチャだけでなく、グラディエントも同様にレイヤーマスクとして適用可能です。グラディエントを追加し、Alphaへと適用します。ただしこの設定だけでは実際にはマスクは適用されません。

シェーダツリーでRenderアイテムを選択した上で、チャンネルタブへと移り、一番下にリストされているレンダー出力マスクをTrueへと変えておきます。デフォルトではFalseになっていますが、ここをTrueに変えることで、レイヤーマスクをレンダー出力に対して適用できるようになります。ではレンダリングしてみましょう。

Final ColorとAlphaに対して、それぞれテクスチャとグラディエントによるレイヤーマスクの効果が確認できます。さらにもう一つテクスチャを追加し、エフェクトからシェーダコントロールグループマスクを適用すれば、Final ColorとAlpha双方に対して、同じマスクを重ねて適用することもできます。