レンダリング

Kanzi アプリケーションで 3D コンテンツのレンダリングを定義するには、レンダーパスを使用します。

たとえば、レンダーパスで定義できるのは、

レンダーパスプレハブ内で、特定のレンダリング結果を達成するためにレンダーパスの階層を作成できます。

Library > Rendering > Render Pass Prefabs では、各トップレベルのレンダーパスがレンダーパスプレハブのルートです。

Kanzi は、Library 内のレンダーパスプレハブに表示される順に、各レンダーパスプレハブのレンダーパスを上から下に実行します。各レンダーパスはその設定を適用し、その子をレンダリングします。レンダーパスを使用すること を参照してください。

例えば、Kanzi Studio に付属するレンダーパスプリセットの一つである Default Render Pass は、最初に不透明なノードをレンダリングし、その後に透明なノードをレンダリングする基本的なレンダーパスセットを作成します。Default Render Pass を使用する を参照してください。

../../_images/rendering.svg

レンダーパス (Render Passes)

これらのレンダーパスは Kanzi で利用可能です。

Blit Render Pass

Blit Render Pass は、特定のマテリアルを使用して、1つ以上の単一テクスチャまたはキューブマップテクスチャを画面にブリットします。

コンポジションターゲットへのコンテンツのレンダリング、複数のレンダーパスまたはテクスチャのレンダリング、および ポストプロセッシングエフェクトの作成 を参照してください。

../../_images/blit-render-pass.svg

Clear Render Pass

Clear Render Pass は、現在のレンダーコンテキストのバッファの一部またはすべてをクリアします。

Kanzi がカラー、デプス、およびステンシルバッファをクリアする値を設定できます。

../../_images/clear-render-pass.svg

Composition Target Render Pass

Composition Target Render Pass は、自身とその子孫のレンダーパスを1つ以上の合成ターゲットにレンダリングします。

コンポジションターゲットへのコンテンツのレンダリング を参照してください。

../../_images/composition-target-render-pass.svg

Cubemap Render Pass

Cubemap Render Pass は、Cubemap Render Target Texture や Cubemap Render Pass の Result Texture などのアクティブなコンポジションターゲットに対して、自身とその子レンダーパスをレンダリングします。

キューブマップ反射の作成 を参照してください。

../../_images/cubemap-render-pass.svg

Draw Objects Render Pass

Draw Objects Render Pass を使用すると、特定のライトノードを使用して特定のノードリストをレンダリングするために Camera ノードを設定できます。

Draw Objects Render Pass:

  • デフォルトで、Camera ノードを使用して Scene ノード内のすべてのノード、または最も近い先祖の Node List Render Pass から渡されたノードをレンダリングします。レンダーパスのためのカメラ設定 と レンダリングのためのノードの収集 を参照してください。

  • デフォルトで、ノードをその最も近い先祖の Gather Lights Render Pass によって提供されるライトノードを使用してレンダリングします。レンダリングでのライトの使用 を参照してください。

  • 最も近い先祖の Pipeline State Render Pass で設定したレンダリングパラメータを使用します。

  • フラスタムカリングを制御することができます。錐台カリングの制御 を参照してください。

../../_images/draw-objects-render-pass.svg

Draw Objects With Material Render Pass

Draw Objects With Material Render Pass は Draw Objects Render Pass のように機能しますが、コンテンツをレンダリングするために使用するマテリアルを設定することができます。レンダリングのためのマテリアル設定 を参照してください。

../../_images/draw-objects-with-material-render-pass.svg

Dynamic Batching Render Pass

Dynamic Batching Render Pass は Draw Objects Render Pass と同様に機能しますが、互換性のあるメッシュをバッチでレンダリングすることでドローコールの数を削減します。

ダイナミックバッチングの使用 を参照してください。

Dynamic Batching UBO Render Pass

Dynamic Batching UBO Render Pass は、ダイナミックバッチングを使用して互換性のあるメッシュをレンダリングし、バッチデータをユニフォームバッファオブジェクトに格納します。

ダイナミックバッチングの使用 を参照してください。

Dynamic Batching With Material Render Pass

Dynamic Batching With Material Render Pass は Draw Objects With Material Render Pass と同様に機能しますが、ダイナミックバッチングを使用して互換性のあるメッシュをレンダリングします。

ダイナミックバッチングの使用 を参照してください。

Dynamic Batching UBO With Material Render Pass

Dynamic Batching UBO With Material Render Pass は、Dynamic Batching With Material Render Pass の UBO バリアントです。

ダイナミックバッチングの使用 を参照してください。

Gather Lights Render Pass

Gather Lights Render Pass は、シーン内の3Dノードを照らすためのライトノードをノードのリストから収集することを可能にします。

レンダリングでのライトの使用 を参照してください。

../../_images/gather-lights-render-pass1.svg

Group Render Pass

Group Render Pass を使用すると、レンダーパスを収集して、Viewport 2D ノード内で単一のレンダーパスプレハブを参照することができます。

最上位のレンダーパスが他のすべてのレンダーパスを子として持つことができる場合、Group Render Pass は必要ありません。

../../_images/group-render-pass.svg

Material Setup Render Pass

Material Setup Render Pass を使用すると、マテリアルのプロパティを設定でき、そのマテリアルを使用したすべての後続のレンダリングで、このレンダーパスで設定したプロパティ値が使用されます。

レンダリングのためのマテリアル設定 を参照してください。

../../_images/material-setup-render-pass.svg

Node List Render Pass

Node List Render Pass は、他のレンダーパスを使用してレンダリングしたいノードのリストをフィルタリングして保持することを可能にします。

レンダリングのためのノードの収集 を参照してください。

../../_images/node-list-render-pass1.svg

Dynamic Batching Node List Render Pass

Dynamic Batching Node List Render Pass は Node List Render Pass と同様に機能し、ダイナミックバッチング用のメッシュを収集するために使用します。

ダイナミックバッチングの使用 を参照してください。

Pipeline State Render Pass

Pipeline State Render Pass は、その子レンダーパスに対して深度およびステンシルテスト、透明性、カリングを設定することができます。このレンダーパスは、子孫に制御を渡す前にレンダリング状態を設定します。Pipeline State Render Pass の子孫レンダーパスが実行された後、Kanzi はレンダリング状態を復元します。カルモードの設定、3Dコンテンツにステンシルを適用する、および デカールのレンダリング を参照してください。

../../_images/pipeline-state-render-pass.svg

Compose and Blit Pass

Compose and Blit Pass は、特定のマテリアルを使用して、Composition Target Render Pass のレンダーパスまたはテクスチャを画面にブリットすることを可能にするレンダーパス構造を含んでいます。

コンポジションターゲットへのコンテンツのレンダリング を参照してください。

../../_images/compose-and-blit-pass.svg

Default Render Pass

Default Render Pass には、透過設定のないノードを最初にレンダリングし、次に透過設定のあるノードをレンダリングする基本的なレンダーパスのセットが含まれています。

Default Render Pass をレンダーパス構造の開始点として使用してください。Default Render Pass を使用する を参照してください。

../../_images/default-render-pass.svg

Render to Texture Pass

Render to Texture Pass は、テクスチャにレンダリングするために必要なレンダーパスとテクスチャを作成します。

テクスチャへのレンダリング (Rendering to texture) を参照してください。

../../_images/render-to-texture-pass.svg

Image-Based Lighting Filter Pass

Image-Based Lighting Filter Pass には、リアルタイムのイメージベースのライティング用に動的な Environment Ambient Texture および Environment Reflection Texture キューブマップテクスチャを作成できるレンダーパスが含まれています。動的なイメージベースのライティング用にキューブマップをレンダリングする を参照してください。

../../_images/render-passes-image-based-lighting.svg

関連項目

レンダリングのベストプラクティス

レンダーパスを使用すること

ダイナミックバッチングの使用

Kanzi Studio レンダーパスプリセットを使用する

レンダリングでのライトの使用

レンダリングのためのノードの収集

複数のレンダーパスまたはテクスチャのレンダリング

コンポジションターゲットへのコンテンツのレンダリング

レンダリングのためのマテリアル設定

ポストプロセッシングエフェクトの作成

キューブマップ反射の作成

オブジェクトソース (Object Sources) を使用する

フィルタ

カリングの設定

チュートリアル: ブルームエフェクトを作成する

チュートリアル: 3Dコンテンツにステンシルを適用する

チュートリアル: リフレクションを作成する