ステップ2 - リフレクションをレンダリングする¶
前のステップで、プロジェクト内のノードにタグを付けました。このステップでは、まず2つのタグフィルタを作成します。1つは、リフレクションを作成するためにノードを選択するためのもので、もう1つはリフレクションに使用する Instantiator ノードを選択するためのものです。その後、レンダーパスを使用してノードをレンダリングし、リフレクションでカリングを設定します。
反射をレンダリングするには:
起点ノードと反射ノードを選択するフィルタを作成します。
Library > Rendering Alt を押しながら右クリック Object Sources で、Tag Filter を選択し、それに Origin という名前を付け、Properties で Included Tags プロパティを Origin に設定します。
このフィルタは、リフレクションを作成しているノードを含む Content ノードを選択します。
Library > Rendering > Object Sources で別の Tag Filter を作成し、Reflection と名付け、Properties で Included Tags プロパティを Reflection に設定します。
このフィルタは、反射を作成するために使用する Reflection ノードを選択します。
オリジンノードとその反射をレンダリングするために使用するレンダーパスを作成します。
Library > Rendering Alt を押しながら右クリック Render Pass Prefabs で Group レンダーパスを選択し、Render Reflections という名前を付けます。
Group レンダーパスを使用するとレンダーパスをまとめることができるため、Viewport 2D ノードで単一のレンダーパスプレハブを参照できます。
Node Tree で Viewport 2D ノードを選択し、Properties で Render Pass Prefab プロパティを Render Reflections に設定します。
Kanzi は現在、Viewport 2D ノードを Render Reflections レンダーパスを使用してレンダリングします。Render Reflections レンダーパスはまだ何も描画していないため、Preview はコンテンツを表示しません。
Library の Render Reflections で Clear レンダーパスを作成します。
このレンダーパスは、深度バッファをクリアします。
原点ノードをレンダリングする:
Library の Render Reflections で Node List レンダーパスを作成して Filter Origin という名前を付けます。
Node List レンダーパスを使用すると、他のレンダーパスでレンダリングするノードのリストをフィルタリングして保持できます。
Properties に Filter プロパティを追加し、Object Sources/Origin に設定します。
Filter Origin レンダーパスを使用して、Origin タグフィルタによって選択された Content ノードを収集します。
Library の Filter Origin レンダーパスで Gather Lights レンダーパスを作成します。
このレンダーパスを使用して、Filter Origin レンダーパスが収集する起点ノードから Light ノードを収集します。
Library の Filter Origin > Gather Lights レンダーパスで Draw Objects レンダーパスを作成します。
このレンダーパスは、Camera ノードをデフォルトで使用して Viewport 2D ノードにレンダリングし、Render Reflections レンダーパスプレハブを使用して、すべてのオリジンノードをレンダリングします。
反射をレンダリングします。
Library で Filter Origin レンダーパスを複製し、それを Filter Reflection にリネームし、Properties で Filter プロパティを Object Sources/Reflection に設定します。
このレンダーパスを使用して、Reflection タグフィルタによって選択された Reflection ノード Instantiator をレンダリングします。
Library で、Filter Reflection レンダーパスを Filter Origin レンダーパスの上にドラッグします。
この方法で、Render Reflections レンダーパスを設定し、オリジンノードをレンダリングする前に反射をレンダリングします。これにより、最初に反射をレンダリングし、その後、オリジンノードの1つである反射面とブレンドします。
Library の Filter Reflection > Gather Lights レンダーパスで Pipeline State レンダーパスを作成して Cull Reflection という名前を付け、Draw Objects レンダーパスを Cull Reflection レンダーパスにドラッグします。
リフレクションのカリングを設定するために、Cull Reflection レンダーパスを使用します。
Library で Cull Reflection レンダーパスを選択し、Properties で Cull Mode プロパティを追加し、それを Front に設定します。
Cull Reflection レンダーパスを、Camera ノードから外側を向いている法線を持つポリゴンのみをレンダリングするように設定します。
デフォルトで、Kanzi は法線が Camera ノードを向いているポリゴンのみをレンダリングします。
(オプション) Node Tree で Reflection Plane ノードを選択し、Properties で Ambient Color と Blend Intensity プロパティを調整して、希望する反射面を得るまで調整します。
例えば、反射面を背景とブレンドさせるには、Ambient Color プロパティを調整します。
次の作業¶
このチュートリアルでは、Kanzi Studio で反射を作成する方法を学びました。これで、次のことができます。
Kanzi Studio でマテリアルとテクスチャを調整する方法を学びます。チュートリアル: マテリアルとテクスチャ を参照してください。
3Dコンテンツにステンシルを適用して、Kanzi がコンテンツの選択された領域のみをレンダリングする方法を学びます。チュートリアル: 3Dコンテンツにステンシルを適用する を参照してください。
Kanzi アプリケーションを作成し、Kanzi Engine API を使用する方法を学びます。チュートリアル: Hello world! を参照してください。
関連項目¶
Kanzi アプリケーションでフィルタを使用する方法の詳細については、フィルタ を参照してください。
Kanzi のレンダーパスについて詳しく知るには、レンダリング を参照してください。
マテリアルとマテリアルタイプについて詳しく学ぶには、マテリアルタイプとマテリアル を参照してください。