レンダリングのためのマテリアル設定¶
Kanzi では、これらのレンダーパスを使用してレンダリング用のマテリアルを設定できます。
Draw Objects With Material Render Pass は、特定のマテリアルを使用して Viewport 2D ノード内のノードをレンダリングすることを可能にします。
Dynamic Batching With Material Render Pass は Draw Objects With Material Render Pass と同様に機能しますが、ダイナミックバッチングを使用して互換性のあるメッシュをレンダリングします。
Dynamic Batching UBO With Material Render Pass は、UBO ダイナミックバッチングを使用して同じ機能を提供します。
ダイナミックバッチングレンダーパスの選択 を参照してください。
例えば、Draw Objects With Material Render Pass を使用して異なるレンダリングモードを作成します。ナイトビジョンモードを作成する を参照してください。
Material Setup Render Pass を使用すると、マテリアルのプロパティを設定でき、そのマテリアルを使用したすべての後続のレンダリングで、このレンダーパスで設定したプロパティ値が使用されます。
例えば、Material Setup Render Pass を使用して、Composition Target Render Pass の出力をマテリアルのテクスチャとして設定します。無限ミラーの作成 を参照してください。
ナイトビジョンモードを作成する¶
Draw Objects With Material Render Pass を使用して、特定のマテリアルで Viewport 2D ノードの下にあるすべてのノードをレンダリングできます。例えば、ナイトビジョンモードを作成することができます。
ナイトビジョンモードを作成するには、以下のようにします。
ナイトビジョンモードでレンダリングしたいコンテンツを作成します。
例えば、Factory Content から Car を使用します。
Factory Content アセットを使用する を参照してください。
ナイトビジョンモードでコンテンツをレンダリングするために必要なレンダーパスを作成して適用します。
Library > Rendering Alt を押しながら右クリック Render Pass Prefabs で、Group Render Pass を選択し、Night Vision と名付けます。
この Group Render Pass レンダーパスプレハブを使用して、コンテンツにナイトビジョンモードを適用するレンダーパスを収集します。
Node Tree で、ナイトビジョンモードでレンダリングしたいコンテンツを持つ Viewport 2D ノードを選択し、Properties で Render Pass Prefab プロパティを Night Vision レンダーパスプレハブに設定します。
この方法で、Kanzi を設定して、Viewport 2D ノードを Night Vision レンダーパスプレハブを使用してレンダリングします。Night Vision レンダーパスプレハブには子レンダーパスがないため、Preview はコンテンツを表示しません。
Night Vision レンダーパスプレハブで作成:
Clear Render Pass
このレンダーパスは、深度バッファをクリアします。
Gather Lights Render Pass
Gather Lights Render Pass は、シーン内の3Dノードを照らすためのライトノードをノードのリストから収集することを可能にします。
Gather Lights Render Pass で Draw Objects With Material Render Pass を作成します。
Draw Objects With Material Render Pass レンダーパスを使用して、Viewport 2D ノードの下にあるすべてのノードを、Draw Objects With Material Render Pass で設定した特定のマテリアルでレンダリングすることができます。
Material プロパティを Draw Objects With Material Render Pass でまだ設定していないため、Kanzi はデフォルトのマテリアルを使用して、Night Vision レンダーパスを使用する Viewport 2D ノード内のコンテンツをレンダリングします。
ナイトビジョンモードで使用したいマテリアルを作成します。
例えば、Library > Materials and Textures > Material Types Alt を押しながら右クリック VertexPhong で、Material を選択し、マテリアルに Night Vision Material と名前を付けます。
この方法で、VertexPhong マテリアルタイプを使用するマテリアルを作成します。
ヒント
プロジェクトに VertexPhong マテリアルタイプが含まれていない場合、Library > Materials and Textures Alt を押しながら右クリック Material Types で、VertexPhong を選択します。
Library > Rendering > Render Pass Prefabs で Draw Objects With Material Render Pass を選択し、Properties で Material プロパティを前のステップで作成したマテリアルに設定します。
Kanzi は、あなたが作成したマテリアルを使用して、Night Vision レンダーパスプレハブを使用する Viewport 2D ノード内のすべてのノードをレンダリングします。
Properties で、Material プロパティの隣にある
をクリックして、作成したマテリアルのプロパティを開き、望む外観を実現するようにマテリアルのプロパティを設定します。
Library > Rendering > Render Pass Prefabs で Clear Render Pass を選択し、Properties で Clear Color 0 プロパティを追加し、Lightness (L) プロパティフィールドを0に設定します。
この方法で、ナイトビジョンモードでシーンの背景を黒にするために、カラーバッファを黒でクリアします。
昼間モードと夜間モードの切り替えを制御します。
例えば、State Manager を作成し、次のための状態を定義します。
デイモードは、Viewport 2D ノードで Render Pass Prefab プロパティを DefaultRenderPassPrefab に設定します。
ナイトビジョンモードは、Viewport 2D ノードで Render Pass Prefab プロパティを Night Vision レンダーパスプレハブに設定します。
ステートマネージャーの作成 を参照してください。
作成したステート間を切り替えると、Kanzi が通常のレンダリングとナイトビジョンモードでのレンダリングを交互に行います。
無限ミラーの作成¶
Material Setup Render Pass を使用すると、マテリアルのプロパティを設定でき、そのマテリアルを使用したすべての後続のレンダリングで、このレンダーパスで設定したプロパティ値が使用されます。
例えば、Material Setup Render Pass を使用して無限ミラー効果を作成することができます。
無限ミラーを作成するには:
Node Tree で作成:
ミラーリングしたい3Dコンテンツを含む Viewport 2D ノード。
例えば、Factory Content から Car を使用します。
Factory Content アセットを使用する を参照してください。
ミラーとして使用するノード。
例えば、ミラーリングしたいコンテンツと同じ Scene ノード内に、Plane ノードを作成します。
鏡に3Dコンテンツをレンダリングするために使用するマテリアルを作成します。
テクスチャ付きマテリアルを作成します。
例えば、Library > Materials and Textures > Material Types Alt を押しながら右クリック Textured で、Material を選択し、マテリアルに Mirror Material と名前を付けます。
Node Tree でミラーとして使用したいノードを選択し、Properties で Mesh Material プロパティを前のステップで作成したマテリアルに設定します。
3Dコンテンツをミラーにレンダリングします。
Library で、Alt を押しながら右クリック Rendering を選択し、Compose and Blit Pass を選択します。
Compose and Blit Pass は、特定のマテリアルを使用して、Composition Target Render Pass のレンダーパスまたはテクスチャを画面にブリットすることを可能にするレンダーパス構造を含んでいます。
Compose and Blit Pass レンダーパスプリセットには、次のレンダーパスが含まれています。
Composition Target Render Pass は、自身とその子孫のレンダーパスを1つ以上の合成ターゲットにレンダリングします。
Clear Render Pass は、現在のレンダーコンテキストのバッファの一部またはすべてをクリアします。
デフォルトで、Compose and Blit Pass の Clear Render Pass は、最初のカラーバッファを透明な黒色で、デプスバッファを値1でクリアします。
例えば、最初のカラーバッファを異なる色でクリアするには、Clear Color 0 プロパティを、Kanzi が Composition Target Render Pass にレンダリングするコンテンツの背景色として使用したい色に設定します。
Gather Lights Render Pass は、Compose and Blit Pass を使用するように設定した Viewport 2D ノード内の Light ノードを収集し、それらを子の Draw Objects Render Pass レンダーパスに渡します。
Draw Objects Render Pass という名前の Draw Objects は、特定のノードリストをレンダリングするために Camera ノードを設定し、それらのノードをフィルタリングし、フラスタムカリングを制御することができます。Draw Objects Render Pass はデフォルトで、最も近い先祖の Gather Lights Render Pass によって提供されるライトを使用してノードをレンダリングします。デフォルトで、Draw Objects Render Pass はデフォルトの Camera ノードを使用して Viewport 2D ノード内のすべてのノードをレンダリングします。
Blit Render Pass は、特定のマテリアルを使用して、1つ以上の単一テクスチャまたはキューブマップテクスチャを画面にブリットします。
デフォルトで、この Blit Render Pass は Composition Target Render Pass がそのコンテンツをレンダリングする最初のカラーテクスチャを画面に描画します。
Node Tree で、ミラーにレンダリングしたいコンテンツを持つ Viewport 2D ノードを選択し、Properties で Render Pass Prefab プロパティを Compose and Blit Pass に設定します。
Kanzi を設定して、Compose and Blit Pass を使用して Viewport 2D ノードをレンダリングします。
Compose and Blit Pass の Library で、2番目の Composition Target Render Pass を作成し、その Composition Target Render Pass に Blit Render Pass をドラッグします。
2番目の Composition Target Render Pass を使用して、最初の Composition Target Render Pass をコンポジションターゲットにレンダリングします。
同じレンダーパスに同時に書き込みと読み込みを行うと、レンダリングの動作が未定義になるため、Composition Target Render Pass レンダーパスを2つ作成します。
Compose and Blit Pass で Default Render Pass を作成します。
Default Render Pass には、透過設定のないノードを最初にレンダリングし、次に透過設定のあるノードをレンダリングする基本的なレンダーパスのセットが含まれています。
このレンダーパスを使用して、Viewport 2D ノードのコンテンツを画面にレンダリングします。
Compose and Blit Pass で Material Setup Render Pass を作成し、Properties で Material プロパティをこの手順で以前に作成したマテリアルに設定します。
たとえば、それを Mirror Material に設定します。
Properties に Texture プロパティを追加し、Library から2番目の Composition Target Render Pass を Properties ウィンドウにドラッグし、Material Setup Render Pass の Texture プロパティにドロップします。
ここで、作成したマテリアルの Texture プロパティの値を設定し、Kanzi が Compose and Blit Pass を使用してコンテンツをレンダリングする際にその値を使用するようにします。この方法で、Kanzi を設定して、Mirror Material を使用するノードで Composition Target Render Pass 2 をレンダリングします。
Library で、Compose and Blit Pass > Composition Target Render Pass > Clear Render Pass を選択し、Properties で Clear Color 0 プロパティを、ミラー内のシーンの背景色として使用したい色に設定します。
Kanzi は、ミラー内で Viewport 2D ノードの内容を再帰的にレンダリングします。