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

Gather Lights レンダーパスを使用して、シーン内の 3D ノードを照らすためのライトノードをノードのリストから収集します。

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

ライトを収集しています

Gather Lights レンダーパスは、シーン内の 3D ノードを照らすためのライトノードを収集します。

デフォルトでは、Gather Lights レンダーパスは、シーン内のすべてのライトノード、または最も近い祖先の Node List レンダーパスが提供するライトノードのいずれかを収集します。

たとえば、このレンダーパスプレハブでは、Gather Lights レンダーパスは親の Node List レンダーパスが提供するライトノードを収集します。

../../_images/node-list-gather-lights-draw-objects.png

同じ Render Pass Prefab 内の任意の Node List レンダーパスを使用して、Gather Lights レンダーパスにライトノードを提供できます。フィルターを使用してレンダーパスにノードを渡す方法については、フィルタ を参照してください。

ライトの収集に使用する Node List レンダーパスを設定するには、以下の手順に従います。

  1. Library > Rendering > Render Pass Prefabs で、ライトノードの収集に使用する Gather Lights レンダーパスを選択します。

    ../../_images/gather-lights-render-pass-in-library1.png
  2. Properties で + Add Binding をクリックし、Binding Editor で設定します。

    • Property から Node List へ

    • Expression を Node List レンダーパスの Output Node List プロパティに設定

      たとえば、Gather Lights レンダーパスの兄弟である Node List レンダーパスが提供するライトノードを収集するには、Expression を以下に設定します。

      {@../Node List/NodeListRenderPass.OutputNodeList}
      

    Save をクリックします。

    ../../_images/gather-lights-render-pass-node-list-binding.png
  3. 収集したライトノードを使用して3Dコンテンツをレンダリングします。ライティング3D (Lighting 3D) ノード を参照してください。

ライティング3D (Lighting 3D) ノード

Draw Objects レンダーパスと Draw Objects With Material レンダーパスを使用して 3D ノードを描画します。デフォルトでは、Kanzi は Draw Objects レンダーパスまたは Draw Objects With Material レンダーパスが描画する 3D ノードを、最も近い祖先の Gather Lights レンダーパスが提供するライトノードを使用して照らします。

たとえば、このレンダーパスプレハブでは、Kanzi は Draw Objects レンダーパスが描画する 3D ノードを、親の Gather Lights レンダーパスが収集したライトノードを使用して照らします。

../../_images/gather-lights-draw-objects.png

Gather Lights レンダーパスには出力プロパティがあり、それぞれにその Gather Lights レンダーパスが収集した特定のタイプのライトのセットが含まれます。Draw Objects レンダーパスまたは Draw Objects With Material レンダーパスが、同じレンダーパスプレハブ内の任意の Gather Lights レンダーパスが提供するライトを使用するように手動で設定できます。

../../_images/gather-lights-render-pass-properties.png

3D ノードを照らすために出力ライトを使用する Gather Lights レンダーパスを設定するには、以下の手順に従います。

  1. Library > Rendering > Render Pass Prefabs で、3D コンテンツの描画に使用する Draw Objects レンダーパスまたは Draw Objects With Material レンダーパスを選択します。

    ../../_images/draw-objects-render-pass-sibling.png
  2. Properties で + Add Binding をクリックし、Binding Editor で設定します。

    • 使用したいライトのタイプに Property します。

      • Directional Lights の Directional Light ノード用

      • Point Lights の Point Light ノード用

      • Spot Lights の Spot Light ノード用

    • Expression を、使用する Gather Lights レンダーパスの出力ライトプロパティに設定

      • Output Directional Lights の Directional Light ノード用

      • Point Light ノードのための Output Point Lights

      • Output Spot Lights の Spot Light ノード用

    たとえば、バインディングを追加するレンダーパスの兄弟である Gather Lights レンダーパスの Directional Light ノードを使用するには、以下のように設定します。

    • Property から Directional Lights へ

    • Expression へ

      {@../Gather Lights/GatherLightsRenderPass.OutputDirectionalLights}
      

      Save をクリックします。

    ../../_images/directional-lights-binding-editor.png
  3. 前の手順を繰り返して、使用したい他のタイプのライトノードにバインディングを追加します。

    ../../_images/draw-objects-render-pass-light-bindings.png
  4. レンダーパスを使用する:

    1. Node Tree で、レンダリングしたい3Dコンテンツを含む Viewport 2D ノードを選択します。

    2. Properties で、Render Pass Prefab プロパティを、ライトノードの収集に使用する Gather Lights レンダーパスと、3D コンテンツを描画する Draw Objects レンダーパスまたは Draw Objects With Material レンダーパスを含むレンダーパスプレハブに設定します。

関連項目

レンダリング

フィルタ

ライトノードを使用する

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