レンダー項目に示される正式なインタフェースは、MRenderItem クラスです。
MRenderItem にはさまざまなプロパティがあります。レンダー項目が更新フェーズまたはレンダリング フェーズに関連しているかどうかに応じて、これらのプロパティのインタフェースは、書き込み可能である場合とない場合があります。
深度の優先順位は、描画時にレンダー項目がアクティブなカメラに向かって移動する距離を設定します。これは、深度が相互にオーバーラップする描画を使用するレンダー項目で発生する可能性がある深度の競合を防ぐのに役立ちます。たとえば、レンダー項目の描画ワイヤフレームと別の塗り潰し描画が同じ深度で描画される場合があります。ワイヤフレーム項目がシェーディング項目によって隠されないようにするために、ワイヤフレーム項目の深度の優先順位を「高く」して隠されるのを回避できます。
これらのプロパティにより、このクラスは次の Maya オプションのいずれかまたはすべてを表すことができます。
単一のレンダー項目ではすべての可能性を表せないので、レンダー項目のコレクション(MRenderItemList)がレンダリング可能オブジェクトごとに保持されます。ただし、レンダリングする必要があるものによっては、これらの項目のゼロまたは複数が描画に対して「有効」になる(パイプラインを渡される)可能性があります。
例として、レンダリング可能オブジェクトは、4 つの項目(シェーディング サブ領域用に 2、ワイヤフレーム用に 1、頂点表示用に 1)を持つことがあります。更新時に削減が行われて、ワイヤフレームおよび頂点の表示項目だけが残ります。さらに削減が行われて、「ワイヤフレーム」レンダー項目が除去され、頂点表示項目だけが残ることがあります。削減は通常、ビューポート表示モードなどの内部要件を反映します。
MRenderItem オブジェクトは一時的とみなされるので、このクラスのインスタンスへの参照をプラグインでは保持できません。MRenderItem のインスタンスを直接作成したり、削除することはできません。プラグインでは、MRenderItem のスタティックな Create() および Destroy() メソッドを使用する必要があります。これにより、メモリを異なる DLL から割り当てる/割り当て解除するときに安定します。