リアルタイム GI
Enlighten を使用してリアルタイムに GI の影響を計算する。「ライティング」 (Lighting) ウィンドウの「シーン」 (Scene) タブで、「リアルタイムライティング > リアルタイムグローバルイルミネーション」 (Realtime Lighting > Realtime Global Illumination) を有効にする。
**DEPRECATED**
Enlighten が廃止されるため、リアルタイム GI も廃止される。廃止予定であったが代替手段がすぐに用意されず、Unity 2024 LTS まではサポートが予定されている。
公式サイト:
リアルタイムグローバルイルミネーション | Unity 2020.3 マニュアル [公式]
導入
参考:
Unity の Realtime GI を試してみる/Emission のオンオフをしよう – Qiita
使い方
- 「ライティング」 (Lighting) ウィンドウの「シーン」 (Scene) タブで、「リアルタイムライティング > リアルタイムグローバルイルミネーション」 (Realtime Lighting > Realtime Global Illumination) を有効にする。
- ライトの「モード」 (Mode) を
リアルタイム
(Realtime
) または混合
(Mixed
) に設定する。
リアルタイムライティング
- カメラから「シャドウディスタンス」で指定された距離より近い範囲で影を生成する。
- リアルタイム GI によって間接光の影響を反映させる。(負荷が高い)
事前計算リアルタイム GI
(出典:Unity マニュアル )
ドキュメント:
リアルタイムライティング | Unity 2018.4 マニュアル [公式]
参考:
Unity の Realtime GI を試してみる/Emission のオンオフをしよう – Qiita
ライトモード
- リアルタイム (Realtime):リアルタイム GI が有効な場合、リアルタイムライトはシーンの間接光に影響する。
- 混合 (Mixed):「ライティングモード」 (Lighting Mode) の設定応じて、直接光あるいは間接光をライトマップにベイクする。ランタイムにプロパティを変更できるが、ベイクしたライティングは更新されないため、大幅な変更は視覚的な不整合を招く。
ドキュメント:
リアルタイム – ライトモード | Unity 2020.3 マニュアル [公式]
混合 – ライトモード | Unity 2020.3 マニュアル [公式]
ライトマップ設定
メッシュレンダラーで「ライトマップを作成」 (Lightmapping) の項目を設定する。
設定
- ライトマップスケール (Scale in Lightmap)
- 継ぎ目をステッチ (Stitch Seams)
- ライトマップパラメーター (Lightmap Parameters)
- シーンデフォルトパラメーター (Scene Default Parameters)
- Default-HighResolution
- Default-MediumResolution
- Default-LowResolution
- Default-VeryLowResolution
- リアルタイム UV を最適化する (Optimize Realtime UVs)
- 最大距離 (Max Distance)
- 最大角度 (Max Angle)
- 法線を無視 (Ignore Normals)
- 最小チャートサイズ (Min Chat Size)
- 2:最小値 (Minimum)
- 4:ステッチ可能 (Stitchable)
- ベイクしたライトマップ (Baked Lightmap)
- リアルタイムのライトマップ (Realtime Lightmap)
ドキュメント:
Lightmapping – Mesh Renderer | Unity 2020.3 マニュアル [公式]
UV チャート
(出典:Unity マニュアル )
ドキュメント:
ライトマップ UV | Unity 2020.3 マニュアル [公式]
LOD
LOD グループを適用したゲームオブジェクトにリアルタイム GI を適用した場合、最も詳細なモデルのみが通常の静的なオブジェクトと同様にリアルタイム GI が適用される。低レベルモデルについては、ライトプローブ、あるいは、ライトプローブプロキシボリュームによってライティングされる。
ドキュメント:
LOD とリアルタイム GI | Unity 2020.3 マニュアル [公式]
UpdateGIMaterials
ドキュメント:
RendererExtensions.UpdateGIMaterials | Unity スクリプトリファレンス [公式]
参考:
Realtime GI を試してみる/Emission のオンオフをしよう – Qiita
最適化
- シーンの間接解像度を設定する。
- GI にほとんど影響しない小物や小道具をベイク対象外に設定する。
- ライトプローブを適切な間隔で必要な位置に配置する。
- UV チャートを最適化する。
- 適切なグループに分けて、ライトマップパラメーターを割り当てる。
- ライトマップパラメーターを最適化する。
- クラスターを最適化する。
- 放射照度バジェット及び放射照度品質を可能な限り下げる。
- クラスターを最適化する。
- ライトマップ解像度を調節する。
- ライトプローブプロキシボリュームを設定する。
学習:
Lighting Optimization with Precomputed Realtime GI | Unity Learn [Official]
サポート/廃止スケジュール
リンク:
Enlighten から堅牢なベイクした GI/リアルタイム GI 向けソリューションへの移行のお知らせ | Unity Technologies Blog [公式]
Update on Global Illumination 2021 | Unity Forum
Tips
家具を動かせる部屋の見栄えを、出来る限り良い感じにする | テラシュールブログ
VRChat のワールドで Realtime GI を扱う | 落雷
デスクトップとコンソールのすごいリアルタイム GI | Unity Blog [公式]
チュートリアル
→ 「Lighting Optimization with Precomputed Realtime GI 」
入手:
Lighting Optimisation Tutorial | Unity Asset Store [Official]
参考:
7.5時間を約3分に/ライトマップのベイク時間を短縮する為のチュートリアル | テラシュールブログ
Lighting Optimization with Precomputed Realtime GI | Unity Learn [Official]