ステップ2 - リフレクションをレンダリングする

前のステップで、プロジェクト内のノードにタグを付けました。このステップでは、まず2つのタグフィルタを作成します。1つは、リフレクションを作成するためにノードを選択するためのもので、もう1つはリフレクションに使用する Instantiator ノードを選択するためのものです。その後、レンダーパスを使用してノードをレンダリングし、リフレクションでカリングを設定します。

反射をレンダリングするには:

  1. 起点ノードと反射ノードを選択するフィルタを作成します。

    1. Library > Rendering Alt を押しながら右クリック Object Sources で、Tag Filter を選択し、それに Origin という名前を付け、Properties で Included Tags プロパティを Origin に設定します。

      このフィルタは、リフレクションを作成しているノードを含む Content ノードを選択します。

      ../../_images/create-tag-filter2.png ../../_images/add-included-tag-origin.png ../../_images/origin-tag-filter.png
    2. Library > Rendering > Object Sources で別の Tag Filter を作成し、Reflection と名付け、Properties で Included Tags プロパティを Reflection に設定します。

      このフィルタは、反射を作成するために使用する Reflection ノードを選択します。

      ../../_images/reflection-tag-filter-in-library.png ../../_images/reflection-tag-filter.png
  2. オリジンノードとその反射をレンダリングするために使用するレンダーパスを作成します。

    1. Library > Rendering Alt を押しながら右クリック Render Pass Prefabs で、Group Render Pass を選択し、Render Reflections と名付けます。

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

      ../../_images/create-group-render-pass3.png ../../_images/group-render-pass.png
    2. Node Tree で Viewport 2D ノードを選択し、Properties で Render Pass Prefab プロパティを Render Reflections に設定します。

      Kanzi は現在、Viewport 2D ノードを Render Reflections レンダーパスを使用してレンダリングします。Render Reflections レンダーパスはまだ何も描画していないため、Preview はコンテンツを表示しません。

      ../../_images/viewport-2d-in-project2.png ../../_images/select-scene-render-pass.png
    3. Render Reflections の Library で Clear Render Pass レンダーパスを作成します。

      このレンダーパスは、深度バッファをクリアします。

      ../../_images/clear-render-pass1.png
    4. 原点ノードをレンダリングする:

      1. Render Reflections の Library で Node List Render Pass を作成し、Filter Origin と名付けます。

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

        ../../_images/filter-origin.png
      2. Properties に Filter プロパティを追加し、Object Sources/Origin に設定します。

        Filter Origin レンダーパスを使用して、Origin タグフィルタによって選択された Content ノードを収集します。

        ../../_images/filter-origin-properties.png
      3. Filter Origin レンダーパスの Library で、Gather Lights Render Pass レンダーパスを作成します。

        このレンダーパスを使用して、Filter Origin レンダーパスが収集する起点ノードから Light ノードを収集します。

        ../../_images/gather-lights-render-pass.png
      4. Filter Origin > Gather Lights Render Pass の Library で Draw Objects Render Pass レンダーパスを作成します。

        このレンダーパスは、Camera ノードをデフォルトで使用して Viewport 2D ノードにレンダリングし、Render Reflections レンダーパスプレハブを使用して、すべてのオリジンノードをレンダリングします。

        ../../_images/draw-origin-in-library.png ../../_images/preview-origin-only.png
    5. 反射をレンダリングします。

      1. Library で Filter Origin レンダーパスを複製し、それを Filter Reflection にリネームし、Properties で Filter プロパティを Object Sources/Reflection に設定します。

        このレンダーパスを使用して、Reflection タグフィルタによって選択された Reflection ノード Instantiator をレンダリングします。

        ../../_images/filter-reflection.png ../../_images/object-source-reflection.png
      2. Library で、Filter Reflection レンダーパスを Filter Origin レンダーパスの上にドラッグします。

        この方法で、Render Reflections レンダーパスを設定し、オリジンノードをレンダリングする前に反射をレンダリングします。これにより、最初に反射をレンダリングし、その後、オリジンノードの1つである反射面とブレンドします。

        ../../_images/render-passes-and-tag-filters.png ../../_images/step-2-with-reflections.png
      3. Filter Reflection > Gather Lights Render Pass の Library で Pipeline State Render Pass を作成し、それに Cull Reflection という名前を付け、Draw Objects Render Pass レンダーパスを Cull Reflection レンダーパスにドラッグします。

        リフレクションのカリングを設定するために、Cull Reflection レンダーパスを使用します。

        ../../_images/cull-reflection.png ../../_images/reflection-in-library-final.png
      4. Library で Cull Reflection レンダーパスを選択し、Properties で Cull Mode プロパティを追加し、それを Front に設定します。

        Cull Reflection レンダーパスを、Camera ノードから外側を向いている法線を持つポリゴンのみをレンダリングするように設定します。

        デフォルトで、Kanzi は法線が Camera ノードを向いているポリゴンのみをレンダリングします。

        ../../_images/reflection-cull-mode-front.png ../../_images/end-of-step-2-no-material-adjustment.png
  3. (オプション) Node Tree で Reflection Plane ノードを選択し、Properties で Ambient Color と Blend Intensity プロパティを調整して、希望する反射面を得るまで調整します。

    例えば、反射面を背景とブレンドさせるには、Ambient Color プロパティを調整します。

    ../../_images/reflection-plane.png ../../_images/reflection-plane-material-ambient-property.png ../../_images/end-of-step-21.png

次の作業

このチュートリアルでは、Kanzi Studio で反射を作成する方法を学びました。これで、次のことができます。

関連項目

Kanzi アプリケーションでフィルタを使用する方法の詳細については、フィルタ を参照してください。

Kanzi のレンダーパスについて詳しく知るには、レンダリング を参照してください。

マテリアルとマテリアルタイプについて詳しく学ぶには、マテリアルタイプとマテリアル を参照してください。