導入
このドキュメントでは、シーンにライトを追加するさまざまな方法について説明します。
このドキュメントのビジュアル例には、当社のMini Studioストックシーンが使用されています。
ライトの種類
オブジェクトを照らす方法は3種類あります:ダイナミックライト、スタティックライト、およびイメージベースドライト。
ダイナミックライト
ダイナミックライトは、移動するオブジェクトやライトにリアルタイムの影や光を投射するために使用されます。パフォーマンス面では比較的負荷が高いため、数を少なく保つことが推奨されます。スタティックライトほど美しい結果を得られません。
Aximmetryでは以下のダイナミックライトを使用できます:
色、強度、方向、および投射する影のパラメーターを変更できます。
アンビエントライトとポイントライトは影を投射しません。
接続を次のように設定してください:
NOTE: この例では方向性ライトを使用しましたが、他のタイプも同様の設定が必要です
Children-Parent接続に加え、Affecting Lights - Affected Object接続が作成されています。
これは、ライトがオブジェクトを照らし、影を投射するために必要です。
また、シーンノードに接続したライトの影響を与えるライト - 影響を受けるオブジェクト接続の下にあるすべてのオブジェクト/シーンノードは、Pin ValuesウィンドウでInherit Lightsプロパティがオフになっていない限り、影響を受けます。
この例では、Scene Node 3のInherit Lightsプロパティをオフにしているため、Scene Node 3とScene Node 4はライトの影響を受けません。
より複雑な例を以下に示します:
これにより、ライトの影響を受けないボックスが1つ、影響を受けるボックスが1つ、およびInherit Lightsプロパティをオフにしているため影響を受けないボックスが1つ生成されます:
Affection接続を使用すると、どのオブジェクトがどのライトの影響を受けるかを正確に設定できます。
ボリュームライト
3Dグラフィックスでは「ゴッドレイ」とも呼ばれる、霧や塵の環境で光の束を表示するソリューションです。
シーンにボリュームライトを追加するには、Light Volumeノードを使用します。
シーンのRendererコンパウンドの末尾に追加し、Lights出力を次のように露出させます:
デフォルトのレンダラーコンパウンドを使用している場合は、リンクを解除することをおすすめします。
その後、任意のダイナミックライトの影響を受けるボリュームピンを接続すると、そのライトがボリュームライトを投射します。
Light Volumeノードで設定を調整できます:
- Max Distance - カメラからの最大距離(メートル)で、この距離を超えると効果がフェードアウトします。
- 値が大きすぎると効果の品質が低下します。そのため、シーンに適した最小値に設定してください。
- Ray Steps - 各ビューのレイに沿った計算ステップ数。値が大きいほど効果の品質が向上しますが、GPUへの負荷も増大します。
- Absorption - 空気の光吸収率。値が大きいほど、距離に応じて効果の減衰が顕著になります。
- アルベド - 効果の全体的な強度を設定します。
- ブラーシャープネス - 値が高いほど、エッジのボケがより鮮明に保たれます。
静的ライト
静的ライト/ライトマップは、現実的な光、影、色滲みを再現する良い選択肢です。静的ライトはパフォーマンス効率も非常に高いです。ただし、名前が示す通り、静的であるため移動できません。
ライトマップには拡散光のみが含まれます。スペキュラーハイライトを再現するには、ダイナミックライトやイメージベースドライト、またはその組み合わせを使用する必要があります。
ライトマップは、名前の中にLIGHTを含むシェーダーと組み合わせて使用できます。
ライトマップの詳細はこちらをご覧ください。
イメージベースドライト(IBL)
IBLを使用すると、シェーダーは環境マップを使用してオブジェクトを照らし、反射を再現します。
IBLは周囲の環境を単一の光源として扱い、オブジェクトにより現実的な質感を与えます。
環境マップはシーンに多くの現実感を追加するため、使用が推奨されます。
一般的に、環境マップはキャプチャされたポイントの周囲の環境を保存するテクスチャです。
環境マップは、特定の機能を果たすための特殊な環境マップに変換できます。これらの変換はAximmetryまたはサードパーティのソフトウェアで実行できます。
Aximmetryでは、3種類の特殊な環境マップを区別できます:
- Irradiance Environment Map - このマップは環境の平均色または照明を格納し、拡散反射を生成します。
- Specular Environment Map - このマップはオブジェクトにスペキュラーハイライトを付与します。
- Sheen Environment Map - このマップはSheenマテリアルと組み合わせて、より現実的な反射を実現できます。
当社のPBR IBLシェーダーのほとんどは、同じ環境マップ(Env map)を、Irradiance Env Mapと/またはSpecular Env Mapと/またはSheen Env Mapとして設定できます。
- Irradiance、Specular、およびSheen Env Mapsは、キャプチャまたは生成された環境マップからAttributesを使用して生成できます。
NOTE: 最も現実的な拡散反射を得るためには、hereで説明されているようにライトマップを使用することをおすすめします。
Aximmetryでは、環境マップとしてキューブマップを使用しています。これは、テクスチャがキューブ形式またはキューブ形式に変換可能なレイアウトである必要があります。
一部のケースでは、異なるレイアウト(主に球面)のテクスチャを使用する場合があります。
キューブマップへの変換方法は、こちらで確認できます。 - 近日公開予定
対応レイアウトとその表示順序:
- 垂直クロス - 上、左、前、右、後ろ、下
- 水平クロス - 上、左、前、右、後ろ、下
- 水平ストリップ - 右、左、上、下、前、後ろ
環境マップを使用する方法は2つあります:
既存のものをロードするか、Aximmetryで生成します。環境マップの生成については、こちらをご覧ください。
どちらの方法を選択しても、シェーダー名に「_IBL_」を含むシェーダーを使用する必要があります。これにより、シェーダーが環境マップを使用してオブジェクトを照らすことができます。
環境マップのロード
Aximmetryで事前作成された環境マップをロードする際は、使用しているファイル形式に応じて属性設定が必要です。
属性の設定方法については、こちらをご覧ください。
Aximmetryは次の環境マップ形式をサポートしており、指定された属性設定が必要です:
- DDSキューブ
- Irradiance Env / Specular Env / Sheen Env属性を設定
- 垂直/水平クロス
- Irradiance Env / Specular Env / Sheen Env属性を設定
- Cube属性をVertical / Horizontal Crossに設定
- Horizontal strip
- Irradiance Env / Specular Env / Sheen Env属性を設定
- Cube属性をHorizontal Stripに設定
NOTE: Irradiance、Specular、および/またはSheen Env Mapがインポート前に既に変換されている場合、それらを対応する入力としてのみ使用できます。そうでない場合、不正な結果が得られます。
この場合、レイアウト属性のみを設定してください。
環境マップを対応する入力ピンに接続してください。
これは例です。他の方法でテクスチャを接続することもできますが、属性を正しく設定してください。
環境マップ用の特殊なトンネル
既にご存知かもしれませんが、Aximmetryには「トンネル」と呼ばれる構造があります。これらのトンネルは、直接接続せずにデータを伝送できます。
特殊なトンネルを使用して、接続/追加されていないすべてのIBLシェーダーに環境マップを直接伝送できます。
これらのトンネルには名前を付ける必要があります:
- Global Specular Env Map - スペキュラー環境マップ用
- Global Irradiance Env Map - イルミネーション環境マップ用
- Global Sheen Env Map - シーン環境マップ用
ベストプラクティス
ベストプラクティスは、静的ライト(ライトマップ)とスペキュラー環境マップを組み合わせることです。これにより、最も現実的な結果を得ることができます。
ライトマップはモデリングソフトウェアで生成し、スペキュラー環境マップはAximmetryで生成してください。
完全に設定されたシェーダーは次のような見た目になるはずです:
NOTE: 私たちは平面にも平面反射を追加しましたが、これについてはこちらで説明します。
これは単なる例です。テクスチャを他の方法で接続することも可能です。ただし、トンネルは必ずこの方法で接続する必要があります。