Redshiftの最新バージョンにはCustomAOVが搭載されています。
これによりジオメトリ単位のシェーダーではく、AOVそのものに対してシェーダーを割り当てることが可能になりました。
これまでのAOVだと、Ambient OcclusionAOVを設定した場合、ジオメトリ自体にAOシェーダーが適用されていないとAOVの中が空になってしまっていました。
そこでCustomAOVを作成し、そのCustomAOVのDefault ShaderにrsAmbientOcclusionを接続します。
わかりやすくAOV名をCustomAOとしました。
これでRedshift Renderviewでレンダリングを行ってみました。
これでジオメトリに適用せずに必要なシェーダーの結果を取得することができます。
次にマテリアルIDを色として保存するようにCustomAOVを設定します。
Custom AOVを作成し、名前をIDとします。
次にRedshiftStoreColorToAOVノードを作成します。
オブジェクトに割り当てられているマテリアルのOutCOlorをStoreColorToAOVのBeautyに接続し、StoreColorToAOVのOutColorをShdingGroupのRedshift Surface Shaderに接続します。
rsStoreColorToAOVノードでAdd New Itemをクリックし、事前に作成しておいたIDというCustom AOVを指定し、横のスライダで色を決定します。
同じマテリアルが割り当てられたオブジェクトを同一カラーでマスクにすることができました。
新しいStoreColorToAOVを追加し、異なるマテリアルを同じID AOVに異なる色で格納するように設定します。
このような感じでマテリアル単位のマスクを同じAOVに格納していくことも可能です。