Creating Transparency and Reflections(透明度と反射を作成する)

 
 
 

トゥーン ホスト シェーダが適用されたオブジェクトは、透過性および反射性の両方を兼ね備えることができます。オブジェクトの透明度および反射を適切にレンダリングできるかどうかは、オブジェクトの透明度プロパティと反射プロパティ、トゥーン インク レンズ シェーダのトレース深度、およびレンダ パスまたはレンダ領域のレイトレーシングの深度設定に左右されます。

前者には、オブジェクトの透明度または反射度あるいはその両方が定義されるほか、透明なオブジェクトを透かして見たときまたは反射性オブジェクト内に反射したときの、サーフェイスおよびインク ラインの見栄えが定義されます。後者 2 つには、透明度または反射度、あるいはその両方の計算方法が指定されます。

トレース深度の設定

トレース深度は、インク ラインをレンダリングするときに計算対象となる輪郭検出レベルの数を判定するものです。たとえば、透明なオブジェクトの前面および背面のインク ラインをレンダリングするには、トレース深度の値が 2(輪郭検出レベル 2)でなければなりません。その透明なオブジェクトの背後にあるオブジェクトの前面インク ラインをレンダリングするには、レベルを増分する必要があります。

[トレース深度]を増分すると、レンダリング時間が大幅に増大する点に注意してください。

  • 透明度または反射を可視にするには、トレース深度の値が 1 よりも大きくなければなりません。

  • [トレース深度]を大きい値に設定しても、反射または転送のレベルを、[Render Options]または[View Render Options](レンダ領域)プロパティ エディタに設定されている[レイトレーシング深度]設定値により許容されるレベルよりも高くはできません。

    たとえば、レンダリング プロパティの[反射](Reflection)または[最大レイ深度](Maximum Ray Depth)を 0 に設定した場合、[トレース深度]を 1 よりも大きい値に設定できますが、反射を受けた輪郭はいっさい得られません。

トレース深度を設定するには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティ エディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. プロパティエディタの[サンプリング]タブで、[トレース深度](Trace Depth)値を調整します。

透明度を作成する

トゥーンシェーダが適用されたオブジェクトの透明度の制御は、ほかのタイプのサーフェイス シェーディングが適用されたオブジェクトの透明度の制御と似ています。転送および屈折は、指定された深度まで計算されます。適切な屈曲があれば、透明なオブジェクトの背後にあるオブジェクトが透かして見えます。

しかし、トゥーンシェーダを使用すれば、透明なオブジェクトを透かして見たときの、オブジェクトの色およびインク ラインの見栄えを制御できます。

元のレンダリング イメージ。透明度は追加されていません。

このイメージの場合、オブジェクトの透明度 RGB 値は、0.5, 0.5, 0.5 に設定されているため、オブジェクトが半透明になっています。オブジェクトの屈折率がデフォルト値 1 に設定されているため、透明な前景のサーフェイスを透かしても背景のサーフェイスが歪んで見えません。

屈折率を 1.1 に設定した場合は、前景のサーフェイスを透かして見えた背景のサーフェイスのあらゆる場所に、何らかの屈折の歪みが生じます。

トゥーンシェーダ オブジェクトを透明にするには

以下の手順は、オブジェクトにトゥーン ペイント/ホスト シェーダが適用されていることを前提にしたものです。また、トゥーン ホスト シェーダに同一のコントロールが存在しています。

  1. 透明にするトゥーンシェーダ オブジェクトを選択します。

  2. [Render]ツールバーから[修正](Modify) [シェーダ](Shader)を選択し、オブジェクトのトゥーン マテリアル シェーダを編集します。[Toon_Paint_and_Host]プロパティ エディタが開きます。

  3. [透明度]タブで、透明度を有効にします。

  4. 必要に応じて以下のパラメータを設定します。

    • [モード]から以下のいずれかの方法を選択し、オブジェクトのサーフェイスカラーを透過カラー(透明なオブジェクトを透過して見えるカラー)と組み合わせます。

      [スタンダード ブレンド](Standard Blend): 透明度に基づいて 2 つのカラーをミックスし、サーフェイス カラーと透過カラーを組み合わせます。

      [色を保持](Preserve Colors): 閉塞したサーフェイスの不透明度に基づいて、透過カラーをサーフェイスに合成します。サーフェイスの背面にオブジェクトがない場所ではサーフェイス カラーが変更されないという効果があります。

    • [カラー](Color): R、G、および B チャンネルの透明度を指定します。このカラーは、フィルタのように透過カラーを変更します。たとえば、赤に設定されている場合は、サーフェイスを通して見えるオブジェクトは薄い赤色になります。

    • [屈折率](Index of Refraction): 透過オブジェクトの屈折率を指定します。

    • [検知しきい値](Detection Threshold): サーフェイスを透過するしきい値を設定します。透明度 RGB チャンネルの大きさをこのしきい値と比較し、しきい値を超えると透明に、しきい値を下回ると不透明になります。しきい値を超えたサーフェイスは、透明として認識されます。

    • [サーフェイスインクの修正](Modify Surface Ink): このオプションを有効にすると、サーフェイス上でレンダリングされるインクラインのカラーおよびアルファに対してサーフェイスのトランスペアレンシが作用します。

      [カラー](Color): インク カラーがサーフェイスの透明度の影響を受ける度合いです。0 を設定するとインク カラーは影響を受けず、1 を設定すると透明度カラーの割合が 100% になります。

      [合成](Compositing): 透明度カラーとインク カラーをどのように組み合わせるかを指定します。選択可能なコンポジット モードについては、「 合成(転送)モード」を参照してください。

      [アルファ](Alpha): インク アルファがサーフェイスの透明度の影響を受ける度合いです。0 を設定するとインク アルファは影響を受けず、1 を設定すると透明度カラーの割合が 100% になります。

    • [屈折インクの修正](Modify Refracted Ink): サーフェイスを透過して表示されるインク ラインのカラーおよびアルファに対してサーフェイスの透明度が作用します。このオプション項目は[サーフェイス インクの修正]のオプションと同じです。

反射を作成する

トゥーンシェーダ オブジェクトの反射率の制御は、トゥーンシェーダ以外のサーフェイス シェーディングを施したオブジェクトの反射率の制御と似ています。指定のレベルで反射が計算され、反射オブジェクトの周囲のオブジェクトは適切な歪みが生じた状態で反射内に表示されます。

しかし、トゥーンシェーダは、反射オブジェクト内で反射するときにオブジェクトのカラーおよびインク ラインがどのように表示されるかを制御します。

元のレンダリング イメージ。透明度は追加されていません。

このイメージでは、オブジェクトの反射 RGB 値を 0.5、0.5、0.5 に設定し、オブジェクトが半反射するようにしています。反射は[トレース深度]の設定範囲内で計算されます。

トゥーンシェーダ オブジェクトを反射させるには

以下の手順は、オブジェクトにトゥーン ペイント/ホスト シェーダが適用されていることを前提にしたものです。また、トゥーン ホスト シェーダに同一のコントロールが存在しています。

  1. 透明にするトゥーンシェーダ オブジェクトを選択します。

  2. [Render]ツールバーから[修正](Modify) [シェーダ](Shader)を選択し、オブジェクトのトゥーン マテリアル シェーダを編集します。[Toon_Paint_and_Host]プロパティ エディタが開きます。

  3. [反射]タブで、反射を有効にします。

  4. 必要に応じて以下のパラメータを設定します。

    • [モード]から以下のいずれかの方法を選択し、オブジェクトのサーフェイス カラーを反射カラー(反射オブジェクト内に表示されるカラー)と組み合わせます。

      [スタンダード ブレンド](Standard Blend): 反射率に基づいて 2 つのカラーをミックスし、サーフェイス カラーと反射カラーを組み合わせます。

      [色を保持](Preserve Colors); 反射するサーフェイスの不透明度に基づいて、反射カラーをサーフェイスに合成します。

      反射するオブジェクトがない場所では反射カラーが変更されないという効果があります。

    • [カラー](Color): R、G、および B チャンネルの反射率を指定します。

      このカラーは、フィルタのように反射カラーを変更します。たとえば、赤に設定されている場合は、サーフェイス上で反射されるオブジェクトは薄い赤色になります。

    • [サーフェイスインクの修正](Modify Surface Ink): このオプションを有効にすると、サーフェイス上でレンダリングされるインクラインのカラーおよびアルファに対してサーフェイスの反射が有効になります。

      [カラー](Color): インク カラーがサーフェイスの反射の影響を受ける度合いです。0 を設定するとインク カラーは影響を受けず、1 を設定すると反射カラーの割合が 100% になります。

      [合成](Compositing): 反射カラーとインク カラーをどのように組み合わせるかを指定します。選択可能なコンポジット モードについては、「 合成(転送)モード」を参照してください。

      [アルファ](Alpha): インク アルファがサーフェイスの反射の影響を受ける度合いです。0 を設定するとインク アルファは影響を受けず、1 を設定すると反射カラーの割合が 100% になります。

    • [屈折インクの修正](Modify Refracted Ink): サーフェイスから反射されて表示されるインク ラインのカラーおよびアルファに対してサーフェイスの反射が作用します。このオプション項目は[サーフェイス インクの修正]のオプションと同じです。

トレース深度テーパリングの設定

トレース深度テーパリングはインク ラインを徐々に細くし、レイトレーシングされた奥行きを付けます。プライマリ レイのトレース深度は 0 であり、テーパの影響を受けません。一方、反射と透過のトレース深度は 1 以上であり、その奥行きに比例して徐々に細くなるようにレンダリングされます。

トレース深度テーパリングを設定するには

  1. インクラインをレンダリングしているカメラを選択し、そのプロパティ エディタを開きます([Render]ツールバーから[修正](Modify) [シェーダ](Shader))。

  2. [レンズ シェーダ](Lens Shaders)タブに、レンズ シェーダ スタックが表示されます。シェーダ スタックから[Toon_Ink_Lens]シェーダを選択し、[インスペクト](Inspect)ボタンをクリックしてシェーダのプロパティ エディタを開きます。

  3. [テーパ]タブの[トレース深度](Trace Depth)に 0 以外の値を指定し、テーパリングを有効にします。

    • 1 を設定すると、最初の反射時および透過時に輪郭の拡散を 100% 減少させます。

    • 0 に設定すると、影響はありません。

    • 負の値を設定すると、反射サーフェイス内または透過サーフェイスの奥により細い輪郭が作成されます。