反射オクルージョン

 
 
 

[アンビエントオクルージョン]シェーダは、反射オクルージョンも実行できます。反射オクルージョンが有効になっていると、シェーダはサンプリング パターンを変更して、サーフェイス法線(または曲がったサーフェイス法線)の方向ではなく、反射の方向の周囲にサンプルを分散させます。環境マップを使用して作成した環境のみの反射にディテールを追加するには、この方法が最も便利です。

反射オクルージョンはオブジェクトごとに作成することができますが、環境マップ シェーダが現在のパスのシェーダ スタックに追加されている次の例で示すように、この操作はレンダ パスのレベルで行うのが最も簡単です。

立法体、球体、およびグリッドがすべて反射していますが、反射タイプは[環境のみ]に設定されています。つまり、これらは、現在のレンダパスに適用されている環境マップ(スカイ テクスチャ)のみを反射しています。レイトレーシングを使用した反射が行われないので、オブジェクトはフロア グリッドや別のオブジェクトを反射しません。

ここでは、[XSIAmbientOcclusion]シェーダがパス マテリアルの[Environment Shader Stack]ポートに接続されています。環境マップ自体は、[XSIAmbientOcclusion]シェーダの明色を処理するため、反射された環境はオブジェクトが遮られていない場所に表示されます。暗色(この場合は赤色)は遮られている領域を塗りつぶし、遮っている側のオブジェクトのアウトラインを(まだレイトレースされていない)反射に追加します。[スプレッド]が 0 に設定されているため、オクルージョンは非常にシャープです。これにより、リアリズムとまではいかなくても、ディテールをシーンの反射に追加することができます。

[アンビエントオクルージョン]シェーダのプロパティ エディタにある[反射](Reflective)パラメータをオンにしておく必要があります。これにより、アンビエント オクルージョンではなく、反射を表示する必要がある場所でオクルージョンが実行されます。

最後に、[アンビエントオクルージョン]シェーダの暗色を処理するために、[反射]シェーダが追加されます。これにより、レイトレーシングを使用した反射を、遮られているエリアのみに対して計算できますので、反射をリアルに表現できます。

環境マップの詳細については、「環境マップシェーダを使用する」(「テクスチャリング」)を参照してください。パス レベルのシェーダの詳細については、「パーティションへのシェーダーの適用」(「レンダリング」)を参照してください。

シーン全体の反射オクルージョンをレンダ パスを使用して適用するには

[作業を開始する前に](Before you start): この手順は、シーンに反射オブジェクトが格納されており、これらのオブジェクトのサーフェイス シェーダ(またはその他の反射シェーダ)の[反射モード](Reflection Mode)パラメータは[環境](Environment)のみに設定する必要があることを前提としています

反射率の詳細については、「反射率」(「マテリアルとシェーダ」)を参照してください。環境マップの詳細については、「環境マップシェーダを使用する」(「テクスチャリング」)を参照してください。

  1. Explorer を開き([8]キーを押す)、[P]キーを押してスコープをパスに設定します。

  2. 屈折オクルージョン エフェクトを作成したいパスを選択し、[7]キーを押してRender Treeを開きます。

  3. Render Tree の[ノード]メニューから次のシェーダを取得します。

    • [環境](Environment) [環境](Environment)

    • [イルミネーション](Illumination) [アンビエントオクルージョン](Ambient Occlusion)

  4. [アンビエントオクルージョン]シェーダを[Material]ノードの[Environment Shader Stack]ポートに接続します。

  5. [Environment]ノードを[アンビエントオクルージョン]シェーダの[Bright Color]ポートに接続します。

  6. [Environment]ノードのプロパティを編集して、環境マップとして使用するイメージを選択します。

  7. [Ambient Occlusion]ノードのプロパティを編集し、必ず次のように設定します。

    • [反射](Reflective)パラメータをオンにします。

    • [スプレッド](Spread)値を減らして、オブジェクトの反射サーフェイスのオクルージョンをシャープにします。

  8. 必要に応じて、アンビエント オクルージョンのパラメータを調整します。詳細については、「アンビエント オクルージョン シェーダ オプションを設定する」を参照してください。

反射オクルージョンをオブジェクトに適用するには

[作業を開始する前に](Before you start): この手順は、該当するオブジェクトが反射性であることを前提としています。つまり、オブジェクトに、反射率をコントロールするサーフェイス シェーダまたはその他の反射シェーダが適用されていることを前提としています。さらに、サーフェイス シェーダの Reflection Mode パラメータは[Environment]のみに設定する必要があります。

反射率の詳細については、「反射率」(「マテリアルとシェーダ」)を参照してください。環境マップの詳細については、「環境マップシェーダを使用する」(「テクスチャリング」)を参照してください。

  1. 屈折オクルージョン エフェクトを作成したいオブジェクトを選択し、[7]キーを押してRender Treeを開きます。

  2. Render Tree の[ノード]メニューから次のシェーダを取得します。

    • [環境](Environment) [環境](Environment)

    • [イルミネーション](Illumination) [アンビエントオクルージョン](Ambient Occlusion)

  3. [アンビエントオクルージョン]シェーダを[Material]ノードの[Environment]ポートに接続します。

  4. [Environment]ノードを[アンビエントオクルージョン]シェーダの[Bright Color]ポートに接続します。

  5. [Environment]ノードのプロパティを編集して、環境マップとして使用するイメージを選択します。

  6. [Ambient Occlusion]ノードのプロパティを編集し、必ず次のように設定します。

    • [反射](Reflective)パラメータをオンにします。

    • [スプレッド](Spread)値を減らして、オブジェクトの反射サーフェイスのオクルージョンをシャープにします。

  7. 必要に応じて、アンビエント オクルージョンのパラメータを調整します。詳細については、「アンビエント オクルージョン シェーダ オプションを設定する」を参照してください。