lightmassの仕組み ~lightmap編~ (epic games japan: 篠山範明)

217
Lightmass Deep Dive vol.1 Lightmap 編 篠篠 篠篠 Epic Games Japan Senior Support Engineer

Upload: -epic-games-japan

Post on 21-Apr-2017

6.312 views

Category:

Engineering


6 download

TRANSCRIPT

Page 1: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass Deep Divevol.1 Lightmap 編

篠山 範明Epic Games Japan

Senior Support Engineer

Page 2: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmap 編

Page 3: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmap 編の前に

Page 4: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass ってなに?

Page 5: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass って何?

Unreal Engine4 が用いる事前計算ライティングのアプリケーションです。

Page 6: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

ライティングビルドの場所

Page 7: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

押すとライティングビルドが走ります

Page 8: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

そして失敗したりします。

Page 9: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

このときに UE4 Editor の裏でライティング計算しているのが lightmass です。

Page 10: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

ソースコードは公開Program/UnrealLightmass

Page 11: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass の問題は?大きく分けて三つ。

Page 12: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass の問題①クオリティ

Page 13: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass の問題②ビルド時間

平気で数時間単位にスケールするライトビルド

Page 14: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass の問題③容量

Memory File Size

Page 15: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass の問題は?

クオリティ ビルド時間 メモリサイズ

Page 16: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass の問題は?

真茅さん

クオリティ ビルド時間 メモリサイズ

Page 17: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass の問題は?

SQEX斎藤さん

クオリティ ビルド時間 メモリサイズ

Page 18: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass の問題は?

これらを調整するためには、ライトマスの動作の仕組みや設定方法を最初に篠山が説明します。

クオリティ ビルド時間 メモリサイズ

Page 19: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass が出力するデータ

Lightmass

InputOutpu

t

Page 20: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass が出力するデータ

LightMap

ShadowMap

PrecomputedLight

Volume

(半透明用のシャドウマップもありますが、そちらは今回は触れません。。)

Page 21: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

LightMap

ShadowMap

PrecomputedLight

Volume

③ 真茅さん

Page 22: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

LightMap と ShadowMap はアクター単位で持たれます。

Page 23: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmap の実際に作られたテクスチャは、World Settings で見ることができます。

Page 24: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

LightMap

ShadowMap

PrecomputedLight

Volume

④ SQEX 斎藤さん

Page 25: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

View のメニューで Debug 表示できます。

Page 26: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

LightMap

ShadowMap

PrecomputedLight

Volume

すみません。今回の講演では省きます。

Page 27: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

LightMap

ShadowMap

PrecomputedLight

Volume

すみません。今回の講演では省きます。Shadow Map を理解するためには、その前に、 Stationary Light の挙動を理解する必要があります。

Page 28: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Stationary Light の影については、上記ブログが参考になりますhttp://darakemonodarake.hatenablog.jp/entry/2015/12/16/UE4/Stationary

Page 29: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

LightMap

ShadowMap

PrecomputedLight

Volume

Page 30: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmapをベースに

Lightmass の基本アルゴリズムを学ぶ

Page 31: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass -> Lightmapの流れを理解すれば、他の二つは、部分的な拡張として理解できます。

Page 32: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

おしながき1.Lightmass による、 Lightmap 作成アルゴリズム

2.Lightmap 作成のための Lightmass 設定方法

Page 33: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

おしながき1.Lightmass による、 Lightmap 作成アルゴリズム

2.Lightmap 作成のための Lightmass 設定方法

Page 34: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

そのまえに注意点三つ

Page 35: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

1. 説明するアルゴリズムは概要です。概念の理解を最優先にしており不正確な部分もあります。Lightmass の実際の実装を追っているエンジニアの方達は回れ右してソースコードに戻ってください。

例えば、 IrradiancePhoton, CacheOnSurface, IndirectPhotonPath などについて触れておりません。わかりやすさのため IndirectPhoton の Emit も DirectPhoton の Emit からシーケンシャルに行われるように説明しております。

Page 36: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

2. Lightmass debugging…

これから、こういう非常に簡単な図が沢山でてきますが、基本的には UE3 の名残の機能であり、現在正式サポートはしていないので使い方などの説明は省きます。アルゴリズム説明の際のイメージと捉えてください。

Page 37: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

3. Base Scene

これから、こういう非常に簡単な図が沢山でてきますが。。。

Page 38: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

3. Base Scene

このような、一面が開いたボックスの中に、球体があるシーンをイメージしてください。

Page 39: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmap 作成の目標ライトマップの各テクセルに自身のライティング情報を格納する

Page 40: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

具体的な挙動になる前に。。ライティングを二つに分けます。

Direct Lighting

Indirect Lighting

Page 41: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Lighting

Indirect Lighting

Page 42: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Lighting

Indirect Lighting

Page 43: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Lighting

ライトからの直接 (Direct) のライティング二次反射以降がないので影部分は黒い。

Page 44: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Lighting

Indirect Lighting

Page 45: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Indirect Lighting

二次反射。照り返し。レフ版。複数回バウンドしたライティング直接光で届かない場所へ、光が回り込む。

Page 46: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Lighting

Indirect Lighting

Page 47: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Lighting

Indirect Lighting

Page 48: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Lighting

Indirect Lighting

では、ライトマスがこの二つをどのように計算するかを見ていこうと思いま。。。。。。

Page 49: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Lighting

Indirect Lighting

しかし、ライトによって計算の方法が変わります。

Page 50: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

説明を更に二分します。Photon を出す

Light

Photon を出さないSky Light

OR

Page 51: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

これでこのようなマトリックスが出来ます。Point SpotDirectionalLight..

Sky Light

Direct Lighting

Indirect Lighting

Direct Lightin

gIndirect Lightin

g

Photon を出すLight

Photon を出さないSky Light

Page 52: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

まずはこちらから。Point SpotDirectionalLight..

Sky Light

Direct Lighting

Indirect Lighting

Direct Lightin

gIndirect Lightin

g

Photon を出すLight

Photon を出さないLight

Page 53: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmap 作成アルゴリズムPoint / Spot / Directional Light 編

Page 54: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Point SpotDirectionalLight..

Sky Light

Direct Lighting

Indirect Lighting

Direct Lighting

Indirect Lighting

Photon を出すLight

Photon を出さないSky Light

Page 55: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Lighting はライトへ、レイを飛ばして行います。※ Photon Mapping は関与しない

Direct LightingPhoton を出す Light の

Page 56: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Light の Source Radius でライトの大きさを変えられます。

Page 57: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)
Page 58: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)
Page 59: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)
Page 60: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

ライトにレイを直接飛ばします。影のボケなどはここで調整します。

Direct LightingPhoton を出す Light の

Page 61: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Point SpotDirectionalLight..

Sky Light

Direct Lighting ライトに

直接レイを飛ばすIndirect Lighting

Direct Lighting

Indirect Lighting

Photon を出すLight

Photon を出さないSky Light

Page 62: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Point SpotDirectionalLight..

Sky Light

Direct Lighting ライトに

直接レイを飛ばすIndirect Lighting

Direct Lighting

Indirect Lighting

Photon を出すLight

Photon を出さないSky Light

Page 63: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Point SpotDirectionalLight..

Sky Light

Direct Lighting ライトに

直接レイを飛ばすIndirect Lighting Photon Mapping で

シミュレーション

Direct Lighting

Indirect Lighting

Photon を出すLight

Photon を出さないSky Light

Page 64: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping

Page 65: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mappingライトから Photon を放出し、光の複数回バウンスをシミュレーションする。

Page 66: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

ライトから Photon を放出する

Page 67: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

当たらない Photon は消失

Page 68: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping壁に衝突したフォトンは。。。

Page 69: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping壁に留まり、反射 ( バウンス ) を表す新たな Photon を放つ

Page 70: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

バウンスしたら。。。

Page 71: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

バウンスしたら。。。

Page 72: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

更にバウンス

Page 73: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

沢山のフォトンを沢山反射させ、Indirect Lighting を実現する

Page 74: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Photons

Page 75: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Indirect Photon Path

Page 76: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

フォトンが蓄積されたので。。。

Page 77: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmap のテクセルのライティングを周りの Photon から見積もってみる。

Page 78: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmap のテクセルのライティングを周りの Photon から見積もってみる。

Page 79: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping preview (radius = 50cm)

Page 80: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping production (radius = 50cm)

Page 81: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon が足りない!!

Page 82: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

設定をいじくり Production よりもPhoton の数を上げていく…

Page 83: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

増やしていけばいずれたどりつけそうだけど。。。

Page 84: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

いつになったら Photon がたりるのでしょうか?

Page 85: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping Only

このテクセルに届くPhoton はどれくらいでしょう?

Page 86: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping Only

(Direct Photon)ポイントライトから全方向にランダム

Page 87: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping Only

(InDirect Photon)あたった面から。。。

Page 88: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping Only

(InDirect Photon)あたった面から。。。ランダムに反射する。

??

??

Page 89: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping Only

各テクセルを見積もるには不十分PhotonMapping だけの場合、非常に沢山の Photon を放出し、そのバウンスを計算しなければいけない。

Page 90: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon mapping

Page 91: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering

Page 92: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering Concept

Photon Mapping だけならば近傍のフォトンだけ。これでは不十分なら。。。

Page 93: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering Concept

(InDirect Photon)あたった面から。。。ランダムに反射するならば。。

??

Page 94: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering Concept

逆に、各テクセルからレイを飛ばし、もしもそのフォトンがこっちに飛んできたなら、どれぐらいの影響があるかを調べる。

??

Page 95: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering Concept

みずからレイを飛ばして、遠くのフォトンからの影響を調べにいく。見るフォトンの数が増える。

Page 96: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping -> Final Gathering

Page 97: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering

テクセルからレイを飛ばし、フォトンを自分から取りに行く。

Page 98: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering

Page 99: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping -> Final Gathering

すごいですね。 Final Gathering

Page 100: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping -> Final Gathering

かなり見え張りました。

Page 101: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping -> Final Gathering

かなり見え張りました。Production: ILQ 10

Page 102: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping -> Final Gathering

かなり見え張りました。Production: ILQ 10Preview: ILQ 1

Page 103: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping -> Final Gathering

ビルド時間 体感でおよそ 100 倍Production: ILQ 10Preview: ILQ 1

Page 104: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering…

隣のテクセルとの整合性がないので、サンプリングノイズが多発する。

Page 105: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

正しく見積もるには沢山のレイを出す必要がある。

Page 106: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon mapping

Final Gathering

Page 107: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

ちょっと Advance…

Page 108: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering Conceptの時に、下のように説明しました。

Page 109: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

本当は、自身の近くのPhoton は探索しません

Page 110: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

これが正解。。。なぜ?

Page 111: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Direct Lighting は、直接ライトへレイを飛ばして計算するからです。それと別に近傍の Photon をとると。。。

Page 112: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

実際は、 Final Gathering だけをし、自身の Photon の近傍を探索しません。

直接光成分を二回計算してしまいます。

Page 113: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

FG だけにすれば、Direct Photon の影響を省けます。

Page 114: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering

Page 115: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon mapping

Final Gathering

Page 116: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching

Page 117: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching コンセプト

ファイナルギャザリングをすべてのテクセルでやるのか。。。。時間もかかるし。。。ノイズが。。

Page 118: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching コンセプト

君たち、間接光成分だいたい一緒でしょ?

Page 119: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching コンセプト

どこか Final Gatheringしたら。。。

Page 120: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching コンセプト

その情報をキャッシング

Page 121: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching コンセプト

どこか Final Gatheringしたら。。。

Page 122: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching コンセプト

その情報をキャッシング

Page 123: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching コンセプト

テクセルがもしもキャッシュに十分に入っていたら。。。

Page 124: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching コンセプト

近くのキャッシュから見積もる

Page 125: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Only FG With IRC

Page 126: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

近くのキャッシュから見積もる

• キャッシュの半径は?• どのような補完が適切?

Page 127: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching (Production)

Page 128: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Irradiance Caching (Preview)

Page 129: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathtering -> Irradiance Caching

Preview だと探索半径が大きくなり、ノイズが減るがディティールも消失FG + IRC: PreviewFG: Preview

Page 130: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon mapping

Final Gathering

IrradianceCaching

Page 131: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

アルゴリズムまとめ

Indirect LightingPhoton を出す Light の

Page 132: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering

Irradiance Caching

各テクセルに対して。。。

近くに十分なIRC ある?

NO!!

YES!!なら補完して値を格納Photon Mapping

Scene Setup

Indirect LightingPhoton を出す Light の

Page 133: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon Mapping を軸にした様々なアルゴリズムで動いています。

Indirect LightingPhoton を出す Light の

Page 134: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Point SpotDirectionalLight..

Sky Light

Direct Lighting ライトに

直接レイを飛ばすIndirect Lighting Photon Mapping で

シミュレーション

Direct Lighting

Indirect Lighting

Photon を出すLight

Photon を出さないSky Light

Page 135: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon を出さないSky Light 編

Page 136: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Point SpotDirectionalLight..

Sky Light

Direct Lighting ライトに

直接レイを飛ばすIndirect Lighting Photon Mapping で

シミュレーション

Direct Lighting

Indirect Lighting

Photon を出すLight

Photon を出さないSky Light

Page 137: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

SkyLight は 360 度無限遠方からのライティングです。SkyLight

Page 138: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Point SpotDirectionalLight..

Sky Light

Direct Lighting ライトに

直接レイを飛ばすFinal Gathering 時に

直接参照Indirect Lighting Photon Mapping で

シミュレーション

Direct Lighting

Indirect Lighting

Photon を出すLight

Photon を出さないSky Light

Page 139: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering

SkyLight

Page 140: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

この青いレイ達。

Page 141: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering

SkyLight

?少なくない??

Page 142: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

例 ) Skylight だけのシーンにじみだらけ。

Page 143: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering

SkyLight

?こっちにレイを飛ばしたい。

Page 144: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass Portal

Page 145: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass PortalFinal Gathering の再分割を強制させる。

SkyLight

Portal

Page 146: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass PortalFinal Gathering の再分割を強制させる。

SkyLight

Portal

Page 147: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass PortalFinal Gathering の再分割を強制させる。

SkyLight

Portal

Page 148: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

実際にレイを見てみます

Page 149: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass Portal なし vs あり

Page 150: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass Portal なし vs あり

Page 151: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

例 ) Skylight+Portal のシーンにじみがなくなる。

Page 152: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass Portal なし vs あり

Lightmap の Padding の問題が。。。

Page 153: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Skylight で屋内を照らす際、Final Gather で Skylight を

重点的にサンプリングできるように、Lightmass Portal を窓などに配置しましょう。

Direct LightingPhoton を出さないSky Light の

Page 154: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmap 作成のまとめPoint SpotDirectionalLight..

Sky Light

Direct Lighting ライトに

直接レイを飛ばすFinal Gathering 時に

直接参照Indirect Lighting Photon Mapping で

シミュレーション

Direct Lighting

Indirect Lighting

Photon を出すLight

Photon を出さないSky Light

Page 155: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmap 作成のまとめPoint SpotDirectionalLight..

Sky Light

Direct Lighting ライトに

直接レイを飛ばすFinal Gathering 時に

直接参照Indirect Lighting Photon Mapping で

シミュレーション

Direct Lighting

Indirect Lighting

Photon を出すLight

Photon を出さないSky Light

Page 156: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Sky Light は Photon を放出しない

SkyLight

Page 157: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

けど間接光は出したい。

SkyLight

Page 158: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering

Irradiance Caching

各テクセルに対して。。。

近くに十分なIRC ある?

NO!!

YES!!なら補完して値を格納Photon Mapping

Scene Setup

Mini Final GatherFor Sky Lights

New!!!

Page 159: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

本来の Final Gathering の前に…

SkyLight

Page 160: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

本来の Final Gathering の前に、SkyLight用の非常に小さな Final Gatheringをシーンで行い、キャッングしておく。

SkyLight

Cache!

Page 161: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

本来の Final Gathering の前に、SkyLight用の非常に小さな Final Gatheringをシーンで行い、キャッングしておく。

SkyLight

Page 162: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

本来の Final Gathering の前に、SkyLight用の非常に小さな Final Gatheringをシーンで行い、キャッングしておく。

SkyLight

Page 163: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

本来の Final Gathering のとき、

SkyLight

Page 164: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

本来の Final Gathering のとき、前もってキャッシュしておいた SkyLight の情報を取得してそこからの照り返しを計算する。SkyLight

Page 165: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

example

スカイライトのみで照らしたシーン

Page 166: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

example

天井に、地面の照り返しが来てるのがわかるかと思います。

Page 167: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

問題点Skylight の二次以上の反射を取れない

SkyLightここの Skylighting の事前キャッシュの値は?

Page 168: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

問題点Skylight の二次以上の反射を取れない

SkyLightここの Skylighting の事前キャッシュの値は 0

Page 169: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

問題点Skylight の二次以上の反射を取れない

SkyLightこの周辺の事前キャッシュのライティング値は 0

Page 170: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

問題点Skylight の二次以上の反射を取れない

SkyLight

この時に、こんなオブジェクトがあったとします

Page 171: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

問題点Skylight の二次以上の反射を取れない

SkyLight

Final Gathering!!!

Page 172: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

問題点Skylight の二次以上の反射を取れない

SkyLight

Final Gathering!!!

してもサンプリングするのは闇

Page 173: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

example

Page 174: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

example

Page 175: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

example

まっくろ。

Page 176: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

どんなに設定を上げても、二次以降のバウンスは存在しない

Indirect Lighting

Photon を出さないSky Light の

Page 177: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmap 作成アルゴリズムのまとめPoint SpotDirectionalLight..

Sky Light

Direct Lighting ライトに

直接レイを飛ばすFinal Gathering 時に

直接参照Indirect Lighting Photon Mapping で

シミュレーションFinal Gathering 前に事前キャッシュ

( 二次以降バウンスなし )

Direct Lighting

Indirect Lighting

Photon を出すLight

Photon を出さないSky Light

Page 178: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Final Gathering

Irradiance Caching

各テクセルに対して。。。

近くに十分なIRC ある?

NO!!

YES!!なら補完して値を格納Photon Mapping

Scene Setup

Mini Final GatherFor Sky Lights

Page 179: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

おしながき1.Lightmass による、 Lightmap 作成アルゴリズム

2.Lightmap 作成のための Lightmass 設定方法

Page 180: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

おしながき1.Lightmass による、 Lightmap 作成アルゴリズム

2.Lightmap 作成のための Lightmass 設定方法

Page 181: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass.iniLightmass の設定パラメータファイル• Engine/Config/BaseLightmass.ini に Lightmass の設定があります。• Game/Config/DefaultLightmass.iniなどを記載することでゲームで上書きできます。• Lightbuild 時に毎回参照されるので、パラメータを変えても、再起動する必要はありません。

Page 182: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass.iniLightmass の設定パラメータファイル• 問題は、そのパラメータが 150 個以上あること。• Photon Mapping のパラメータだけでもこれぐらいあります。

Page 183: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

いやですよね。

Page 184: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

パラメータを一括で調整する機能がエディタにあります。• World Settings の “ Lightmass” タブ

特に、一番重要かつよく触るであろう上記 4 パラメータを本日は説明します。

Page 185: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

ここでは、それらがアルゴリズムにどのように影響していくかを説明します。

Page 186: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

真茅さんが次の講演でこれらがどのように

絵作りに影響をあたえるのかを、実際のシーンで説明してくれます。

Page 187: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

大前提 : Lightmass Importance Volume

Photon の放出範囲などを決める大事なもの。ないと、 UE4 が大きさを自動で判断するが、基本的には使い物にならないと思ってよい

Page 188: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Photon mapping

Final Gathering

IrradianceCaching

Direct Lighting

(Shadowing)影用レイの数 Photon の放出量

最大バウンス回数 レイの数 キャッシングの半径

必要な設定項目を振り返る

Page 189: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings:  

Photon mapping

Final Gathering

IrradianceCaching

Direct Lighting

(Shadowing)影用レイの数 Photon の放出量

最大バウンス回数 レイの数 キャッシングの半径

Page 190: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Static Lighting Level Scale  

Photon mapping

Final Gathering

IrradianceCaching

Direct Lighting

(Shadowing)影用レイの数 Photon の放出量

最大バウンス回数 レイの数 キャッシングの半径

Lightmass内部の World Grid.どれぐらいスケールするかを設定する。小さくすればするほどビルド時間が激増します。

Page 191: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Static Lighting Level Scale  

SLLS = 1.5 SLLS = 0.5SLLS を小さくすると、 Irradiance Cache の半径も小さくなり FG すべきサンプルが増えます。ディティールが向上しますが、それだけビルド時間が増えます。

Page 192: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Num Indirect Lighting Bounces (NILB)  

Photon が何回反射するか?その最大数を設定できる。

Photon mapping

Final Gathering

IrradianceCaching

Direct Lighting

(Shadowing)影用レイの数 Photon の放出量

最大バウンス回数 レイの数 キャッシングの半径

Page 193: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Num Indirect Lighting Bounces (NILB)  

このサンプルシーンで確認してみる。マーキングされているテクセルが参照するフォトンのバウンスを確認

Page 194: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Num Indirect Lighting Bounces (NILB)  

0th Bounce (Direct Photon)

Page 195: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Num Indirect Lighting Bounces (NILB)  

1st Bounce

Page 196: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Num Indirect Lighting Bounces (NILB)  

2nd Bounce

Page 197: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Num Indirect Lighting Bounces (NILB)  

3rd Bounce

Page 198: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Num Indirect Lighting Bounces (NILB)  

4th Bounce

Page 199: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Num Indirect Lighting Bounces (NILB)  

50th Bounce

Page 200: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Num Indirect Lighting Bounces (NILB)  

Direct Photon

1st Bounce

1 回目のバウンスでフォトンが激減するので、ビルド時間への影響が少ない

Page 201: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Num Indirect Lighting Bounces (NILB)  

Photon が何回反射するか?その最大数を設定できる。こちらは数を上げてもビルド時間にさほど影響しない。基本は固定値で 5 とかにしておけば問題ないかと。

Photon mapping

Final Gathering

IrradianceCaching

Direct Lighting

(Shadowing)影用レイの数 Photon の放出量

最大バウンス回数 レイの数 キャッシングの半径

Page 202: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Indirect Lighting Quality (ILQ)  

Final Gather 時のサンプリングのレイの総数を決める際、この値が掛け算される。ビルド時間は増大するが、にじみやノイズの除去につながる

Photon mapping

Final Gathering

IrradianceCaching

Direct Lighting

(Shadowing)影用レイの数 Photon の放出量

最大バウンス回数 レイの数 キャッシングの半径

Page 203: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Indirect Lighting Quality (ILQ)  

ILQ=1 ILQ=3

Page 204: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Indirect Lighting Quality (ILQ)  

ILQ=1 ILQ=3

Page 205: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Indirect Lighting Smoothness (ILS)  

Irradiance Caching のキャッシュ半径を制御する値を大きくすることで、ビルド時間は減り、にじみが解消されるが、逆に、ディティールが減る可能性がある。

Photon mapping

Final Gathering

IrradianceCaching

Direct Lighting

(Shadowing)影用レイの数 Photon の放出量

最大バウンス回数 レイの数 キャッシングの半径

Page 206: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings: Indirect Lighting Smoothness (ILS)  

ILS=2.5 ILS=0.25

Page 207: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

World Settings:  

Photon mapping

Final Gathering

IrradianceCaching

Direct Lighting

(Shadowing)影用レイの数 Photon の放出量

最大バウンス回数 レイの数 キャッシングの半径

Page 208: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Build Lighting: Lighting Quality  

Photon mapping

Final Gathering

IrradianceCaching

Direct Lighting

(Shadowing)影用レイの数 Photon の放出量

最大バウンス回数 レイの数 キャッシングの半径

Page 209: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Build Lighting: Lighting Quality  

Photon mapping

Final Gathering

IrradianceCaching

Direct Lighting

(Shadowing)影用レイの数 Photon の放出量

最大バウンス回数 レイの数 キャッシングの半径

最大バウンス回数以外の全てのクオリティを上げる。

Page 210: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Build Lighting: Lighting Quality

Preview Production

Final Gather のレイが増大

Page 211: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Build Lighting: Lighting Quality

Preview Production

放出 Photon もしてるのがわかります

Page 212: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Build Lighting: Lighting Quality

Preview Production

Irradiance Cache の半径も縮小

Page 213: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)
Page 214: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

おしながき1.Lightmass による、 Lightmap 作成アルゴリズム

2.Lightmap 作成のための Lightmass 設定方法

Page 215: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

まとめ

Page 216: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

Lightmass の Lightmap 作成まとめ間接光を出すために、

Lightmass はPhoton Mapping を軸とした

アルゴリズムを使用している。Skylight は Photon を発しないため、

作法や効果が異なるWorld Settings や Build Quality で内部パラメータの調整が可能。

Page 217: Lightmassの仕組み ~Lightmap編~ (Epic Games Japan: 篠山範明)

真茅さんへ Go!!