パルテア

どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス ライティング ライトプローブグループ〜

ライトプローブグループ

シーンにライト プローブを配置するには、ライト プローブ グループ コンポーネントがアタッチされたゲーム オブジェクトを使用する必要があります。メニューから、ライト プローブ グループ コンポーネントを追加できます: コンポーネント > レンダリング > ライト プローブ グループ。

シーン内の任意のゲーム オブジェクトにライト プローブ グループ コンポーネントを追加できます。ただし、プロジェクトから誤って削除する可能性を減らすために、新しい空のゲーム オブジェクト (メニュー: ゲーム オブジェクト > 空の作成) を作成し、それに追加することをお勧めします。

ライトプローブグループコンポーネント

リンギング

特定の状況下では、ライト プローブは「リンギング」と呼ばれる望ましくない動作を示します。これは、ライト プローブの周囲の光に大きな差がある場合によく発生します。たとえば、ライト プローブの片側に明るい光があり、反対側に光がない場合、光の強度が裏側で「オーバーシュート」する可能性があります。このオーバーシュートにより、裏側に光点が発生します。

ライト プローブのリンギングの例

これに対処するには、いくつかの方法があります:

ライト プローブ グループ コンポーネントで、[リンギングの削除] を有効にします。Unity は、意図しないライト スポットを自動的に削除します。ただし、これにより、ライト プローブの精度が低下し、光のコントラストが低下するため、視覚的な結果を確認する必要があります。
ゲーム内の障害物は、プレイヤーがライト スポットを見ることができる位置に到達できないように配置します。

ライト プローブに直接光をベイクしないでください。直接光は、鋭い不連続性 (シャドウ エッジなど) を持つ傾向があるため、ライト プローブには適していません。間接光のみをベイクするには、混合照明を使用します。

ライト プローブの配置

ライト プローブ グループを編集する場合、ゲーム オブジェクトと同様に個々のライト プローブを操作できます。ただし、ライト プローブはゲーム オブジェクトではなく、ライト プローブ グループ コンポーネント内のポイントのセットです。

新しいライト プローブ グループの編集を開始すると、以下に示すように、立方体に配置された 8 つのプローブのデフォルトの構成から開始します。

ライトプローブのデフォルトの配置。

ライトプローブ グループ インスペクターのコントロールを使用して、グループに新しいプローブの位置を追加できるようになりました。プローブはシーンに黄色の球体として表示され、ゲームオブジェクトと同じように配置できます。通常の「複製」キーボード ショートカット (ctrl+d/cmd+d) を使用して、個々のプローブまたはグループを選択して複製することもできます。

ライトプローブの編集が完了したら、ライトプローブ グループの編集モードを無効にしてください。そうすれば、通常どおりシーン内のゲームオブジェクトの編集と移動を続行できます。

ライト プローブの位置の選択

通常、オブジェクトの表面全体で連続的な解像度を持つライトマップとは異なり、ライト プローブ情報の解像度は、ライト プローブをどの程度密に配置するかによって異なります。

ライト プローブが保存するデータの量と、ゲームのプレイ中に実行される計算量を最適化するには、通常、ライト プローブをできるだけ少なく配置するようにします。ただし、ある空間から別の空間への光の変化が許容できるレベルで記録されるように、十分な数のライト プローブを配置する必要があります。つまり、複雑な光やコントラストの強い光がある領域の周りにはライト プローブをより密集したパターンで配置し、光が大きく変化しない領域にはライト プローブをより広範囲に分散したパターンで配置することができます。

シンプルなシーンの周囲にさまざまな密度で配置されたライトプローブ

上記の例では、ライト プローブは、コントラストと色の変化が大きい建物の近くや建物の間に密集して配置され、照明が大きく変化しない道路沿いには密集して配置されていません。

ライト プローブを配置する最も簡単な方法は、規則的な 3D グリッド パターンで配置することです。この設定はシンプルで効果的ですが、必要以上にメモリを消費する可能性があり、冗長なライト プローブが多数存在する可能性があります。たとえば、上記のシーンでは、道路沿いに多数のライト プローブが配置されていると、リソースの無駄になります。道路の長さに沿って光はあまり変化しないため、多くのライト プローブは、隣接するライト プローブとほぼ同じ照明データを保存します。このような状況では、より少ない、より広範囲に分散したライト プローブ間でこの照明データを補間する方がはるかに効率的です。

ライト プローブは個別に大量の情報を保存しません。技術的な観点から見ると、各プローブはサンプル ポイントからのビューの球状のパノラマ HDR 画像であり、27 個の浮動小数点値として保存される球面調和関数 L2 を使用してエンコードされます。ただし、数百のライト プローブがある大規模なシーンでは、ライト プローブが積み重なる可能性があり、ライト プローブが不必要に密集していると、ゲームで大量のメモリが無駄になる可能性があります。

ボリュームの作成

ゲームプレイが 2D 平面で行われる場合でも (たとえば、車が道路の表面を走り回る場合)、ライト プローブは 3D ボリュームを形成する必要があります。

つまり、ライト プローブのグループには少なくとも 2 つの垂直の「レイヤー」のポイントが必要です。

以下の例では、左側でライト プローブが地面の表面全体にのみ配置されていることがわかります。ライト プローブ システムはライト プローブから適切な四面体ボリュームを計算できないため、これでは適切な照明が得られません。

右側では、ライト プローブが 2 つのレイヤーに配置されており、一部は地面の低い位置にあり、その他は高い位置にあるため、これらが一緒になって多数の個別の四面体で構成された 3D ボリュームを形成します。これは適切なレイアウトです。

左の画像は、ライト プローブによって定義されたボリュームに高さがないため、ライト プローブの位置の選択が適切でないことを示しています。右の画像は、ライト プローブの位置の選択が適切であることを示しています。

動的リアルタイム グローバル イルミネーション用のライト プローブの配置

Unity の Enlighten リアルタイム グローバル イルミネーション機能により、移動するライトが静的なゲーム オブジェクトに動的な反射光を投影できるようになります。

Enlighten リアルタイム グローバル イルミネーションとともにライト プローブを使用すると、移動するライトが移動するゲーム オブジェクトに動的な反射光を投影することもできます。ただし、ライト プローブを配置する場所と、それらをグループ化する密度については慎重に検討する必要があります。

ライト プローブには 2 つの別々の機能があります。1 つ目は、静的なベイクされたライトを保存することです。2 つ目は、動的グローバル イルミネーションが実行時に移動するオブジェクトに投影されるライトに影響を与えることを可能にするサンプリング ポイントを表します。

通常、静的ライトの広い領域では、ライト プローブは少数しか必要ありません。ただし、この静的ライト領域内に移動するライトを配置し、移動するオブジェクトがこれらの移動するライトから正確な反射光を受け取るようにする場合は、十分な精度を提供するために、この領域内にライト プローブの密なネットワークが必要です。ライトのサイズと範囲、ライトの移動速度、動的ライトを受け取る移動オブジェクトのサイズによって、ライト プローブの間隔が決まります。

ライト プローブの配置に関するトラブルシューティング

ライト プローブの位置を選択する際は、ライト プローブのセット間で照明が補間されることを考慮する必要があります。ライト プローブがシーン全体の照明の変化を適切にカバーしていない場合は、問題が発生する可能性があります。

以下の例は、両側に 2 つの明るい街灯があり、中央に暗い領域がある夜間のシーンを示しています。ライト プローブが街灯の近くにのみ配置され、暗い領域には配置されていない場合、街灯からの照明は暗い隙間を越えて移動オブジェクトに「にじみ」ます。これは、照明が 1 つの明るいポイントから別のポイントに補間されており、その間の暗い領域に関する情報がないためです。

この画像はライト プローブの配置が適切でないことを示しています。2 つのランプ間の暗い領域にはライト プローブがないため、暗い領域は補間にまったく含まれません。

リアルタイム ライトまたは混合ライトを使用している場合、ギャップに漏れるのは間接光だけなので、この問題はそれほど目立たないかもしれません。完全にベイクされたライトを使用している場合、この問題はより目立ちます。この状況では、移動するオブジェクトへの直接光もライト プローブから補間されるからです。このサンプル シーンでは、2 つのランプがベイクされているため、移動するオブジェクトはライト プローブから直接光を得ます。ここで結果を確認できます。移動するオブジェクト (救急車) は、暗い領域を通過している間も明るく照らされたままですが、これは望ましい効果ではありません。黄色のワイヤーフレームの四面体は、明るく照らされた道路の端と端の間で補間が行われていることを示しています。

これは望ましくない効果です。暗いエリアにライト プローブが配置されていないため、救急車は暗いエリアを通過している間も明るく照らされたままです。

これを解決するには、以下に示すように、暗いエリアにライト プローブをさらに配置する必要があります。

これで、シーンの暗い領域にもライト プローブが配置されました。その結果、救急車がシーンの一方から他方へ移動するときに、より暗い照明が当てられるようになりました。

救急車は、希望どおりに、シーンの中央で暗い照明を受けるようになりました。



    Course

  • 日時:2024/04/01 ~ 2025/03/31
  • 名称:どうぶつの森の美術館 〜ゲームエンジン(Unity)グラフィックス ライティング ライトプローブグループ〜
  • 場所:オンラインスクール
  • 料金:¥0 (消費税込)