講演動画はこちら
https://www.youtube.com/watch?v=C_xkgdsnm0I
スライドデータはこちらからダウンロード可能です
https://epicgames.box.com/s/sa3h9b96xvik2rzmjeyhoofl83xm0ce0
発表者:小林 浩之(Epic Games Japan)
本スライドは2020年8月17日(月)から2020年8月24日(月)に行われた勉強会「 UE4 Ray Tracing Night Week」の講演資料となります。
UE4のライトビルドシステムであるライトマスの内部挙動について、イラストにてなるべくかみ砕いて説明しております。ライトマップ編
アルゴリズム説明にフォーカスしております、実際のパラメータの設定で何が変更されるかは、本公演のVol.2を参考にしていただければと思います。
https://www.slideshare.net/EpicGamesJapan/lightmass-deep-dive-2018-vol-2-lightmaplightmass/EpicGamesJapan/lightmass-deep-dive-2018-vol-2-lightmaplightmass
※こちらは2016年に行った"Lightmass Deep Dive"の2018年度版になります。
Original Slide: https://www.slideshare.net/EpicGamesJapan/lightmass-lightmap-epic-games-japan
(Epic Games Japan: 篠山範明)
講演動画はこちら
https://www.youtube.com/watch?v=C_xkgdsnm0I
スライドデータはこちらからダウンロード可能です
https://epicgames.box.com/s/sa3h9b96xvik2rzmjeyhoofl83xm0ce0
発表者:小林 浩之(Epic Games Japan)
本スライドは2020年8月17日(月)から2020年8月24日(月)に行われた勉強会「 UE4 Ray Tracing Night Week」の講演資料となります。
UE4のライトビルドシステムであるライトマスの内部挙動について、イラストにてなるべくかみ砕いて説明しております。ライトマップ編
アルゴリズム説明にフォーカスしております、実際のパラメータの設定で何が変更されるかは、本公演のVol.2を参考にしていただければと思います。
https://www.slideshare.net/EpicGamesJapan/lightmass-deep-dive-2018-vol-2-lightmaplightmass/EpicGamesJapan/lightmass-deep-dive-2018-vol-2-lightmaplightmass
※こちらは2016年に行った"Lightmass Deep Dive"の2018年度版になります。
Original Slide: https://www.slideshare.net/EpicGamesJapan/lightmass-lightmap-epic-games-japan
(Epic Games Japan: 篠山範明)
UE4のライトビルドシステムであるライトマスの設定が内部アルゴリズムにどのように影響するかをイラストにてなるべくかみ砕いて説明しております。
内部アルゴリズムの詳しい挙動は本公演のVol1を参考にしてください。
https://www.slideshare.net/EpicGamesJapan/lightmass-deep-dive-2018-vol1-lightmasslightmap
※こちらは2016年に行った"Lightmass Deep Dive"の2018年度版になります。
Original Slide: https://www.slideshare.net/EpicGamesJapan/lightmass-lightmap-epic-games-japan
(Epic Games Japan: 篠山範明)
UE4のライトビルドシステムであるライトマスの設定が内部アルゴリズムにどのように影響するかをイラストにてなるべくかみ砕いて説明しております。
内部アルゴリズムの詳しい挙動は本公演のVol1を参考にしてください。
https://www.slideshare.net/EpicGamesJapan/lightmass-deep-dive-2018-vol1-lightmasslightmap
※こちらは2016年に行った"Lightmass Deep Dive"の2018年度版になります。
Original Slide: https://www.slideshare.net/EpicGamesJapan/lightmass-lightmap-epic-games-japan
(Epic Games Japan: 篠山範明)
41. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 41
(3)Ray Tracing Global Illumination を使う
レイトレのダイナミック GI を映像作品で使うには
RTGI の基本
基本設定、それぞれの項目の意味、注意点など
RTGI の実践
映像作品で RTGI が活きる使い方
映像のための RTGI 設定
HQME で高画質化
High Quality Media Export 機能を使えばさらに高画質に
42. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 42
Ray Tracing Global Illumination を使う
RTGI の基本
基本設定
設定項目の意味
注意点
など
簡単なテストシーンで説明します
43. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 43
Ray Tracing Global Illumination を使う
・RTGI の基本:TDR 対策
いきなりですが そして去年もこの話しましたが
TDR(Timeout Detection and Recovery)対策
アプリケーションの画面の更新にかかる時間が設定した限度(デフォルトでは数秒)を超えると
Windows がアプリケーションを落としてしまう
高画質出力では 1フレームの計算に長い時間がかかるため、対策が必要
TDR で落とされたときのアラート 去年とちょっと違う
44. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 44
Ray Tracing Global Illumination を使う
・RTGI の基本:TDR 対策
レジストリキー(TdrDelay と TdrDdiDelay)の変更
Substance Painterをインストールすると「変更しろ」と言われるアレです
Substance Painter入れてる PC で
既に「60 秒」など変更済みならそのままで OK
詳しくは
「Substance GPU driver crash」でググってくれ
Substance のとてもていねいなサポート記事がみつかるはず
この設定が必要な理由についての説明や
Microsoft の当該情報へのリンクもあります
ありがとう Allegorithmic さんとボーンデジタルさん
45. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 45
Ray Tracing Global Illumination を使う
・RTGI の基本:RTGI を有効にする
基本的には Post Process Volume の Rendering Features から設定します
Type Brute Force と Final Gather のどちらか選ぶ
Max Bounces 間接照明が跳ね返る回数 上げると明るくなる
Samples Per Pixel 画面1ピクセルあたりで何回 GI を計算するか 上げるときれいになる
これ以外の設定は Console Command などでアクセスします
あともちろん、プロジェクトで Ray Tracing が有効になってる必要があります
46. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 46
Ray Tracing Global Illumination を使う
・RTGI の基本:実際に試してみよう
簡単なシーンで試してみましょう
入り組んだ部屋、奥の凹みにライトが1つ、白と銀の輪っかとガラス板が置いてあります(あと FPS 表示の後ろの黒い板)
いまはダミーのライトをつけていますが、テストでは消します
47. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 47
Ray Tracing Global Illumination を使う
・RTGI の基本:ライトマップを消去する方法
計算済みのライトマップ(Lightmass GI)を消去して RTGI だけにしたいとき
World Settings の Lightmassで Force No Precomputed Lighting をオンにして
Build Lighting Only を実行
すると、ライトマップが消去され、以後は RTGI のみでライティングできるようになります
48. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 48
Ray Tracing Global Illumination を使う
・RTGI の基本:RTGI なしの状況
ダミーのライトを消しました
ライトマップもないので、スポットライトが直接当たっているところしか見えません
49. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 49
Ray Tracing Global Illumination を使う
・RTGI の基本:Brute Force オン
モードを Brute Force に
間接照明の効果が出ましたが、明るい範囲は広くありません
50. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 50
Ray Tracing Global Illumination を使う
・RTGI の基本:間接照明の反射回数を上げる
Max Bounces を上げてみます
1から2、3と上げると間接照明の届く範囲が広くなり、そのぶん明るくなってきます
同時にフレームレートも、120 から72、46 と落ちてきました
51. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 51
Ray Tracing Global Illumination を使う
・RTGI の基本:Brute Force のノイズ
部屋の奥の暗いほうではモヤっとしたノイズがかなり目立ちます
デフォルトの Samples Per Pixel は4なので、こういう暗い場面ではぜんぜん足りません
52. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 52
Ray Tracing Global Illumination を使う
・RTGI の基本:Denoiser の効果
ちなみにこのもやもやしたノイズは Denoiser によるもの
Denoiserをオフにして(r.DiffuseIndirect.Denoiser = 0)素の状態を表示するとこうなります
これをあれにしてるんだから Denoiser ってすごいですね!
53. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 53
Ray Tracing Global Illumination を使う
・RTGI の基本:サンプル数を上げる
Samples Per Pixel を 16 まで上げてみます
画質はだいぶ良くなりましたが、フレームレートは 14 まで落ちて一気にレッドゾーンです
このように、Brute Force は数値なりに素直に画質が良くなり、同時に負荷が重くなっていきます
54. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 54
Ray Tracing Global Illumination を使う
・RTGI の基本:Final Gather
数値は同じままで、モードを Final Gather にしてみます
フレームレートが一気に改善しましたが、間接照明は暗くなりました
Final Gather は Max Bounces の値にかかわらず、間接照明が跳ね返るのは 1 回だけなのでこうなります
55. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 55
Ray Tracing Global Illumination を使う
・RTGI の基本:Final Gather は速度重視
Samples Per Pixel を最大の 64 まで上げてみます
フレームレートは変わらず、画質もさほど改善していません
Final Gather はとにかく速度重視で、画質はすぐ頭打ちになるモードのようです
56. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 56
Ray Tracing Global Illumination を使う
・RTGI の基本:Brute Force の高画質
モードを Brute Force に戻します
Samples Per Pixel が最大の 64 のままでした フレームレートがものすごく落ちましたが、画質は改善しています
リアルタイムでは非現実的ですが、映像であれば Brute Force の設定を上げて使うのが良いようですね
16
64
57. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 57
Ray Tracing Global Illumination を使う
・RTGI の基本:ほかのレイトレ要素との組み合わせ
さっきから気になっていた方もいらっしゃるかと思います 真っ黒なところがありますね
RTGI は Ray Tracing の Reflection とTranslucency には反映されません
58. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 58
Ray Tracing Global Illumination を使う
・RTGI の基本:Refraction オフ
ここで朗報です! Ray Tracing Translucency の Refraction をオフにすると、
RTGI の成分も透過だけはするようになります(反射はしてないようですね)
厚みがない板ガラスなんかは OK という場合もあるかもしれません
59. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 59
Ray Tracing Global Illumination を使う
・RTGI の基本:ライトマップとの比較
ライトマップ(Lightmass GI)と比較するとこんな感じです ※全体的な明るさは調整して合わせています
ライトマップなら間接照明はすべてに反映され、レイトレの屈折も有効にできます
このような、間接照明に変化のない要素は RTGI ではなくLightmass を使うほうがよさそうです
Lightmass Global Illumination Ray Tracing Global Illumination (Brute Force)
60. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 60
Ray Tracing Global Illumination を使う
・RTGI の基本:Point Light に注意
ここでちょっとした情報 現状では Point Light は RTGI がほぼ効きません!
先ほどのテストを Spot Light でなくPoint Light でやると、間接照明の効果がほとんど出ません
この件は既にバグとして確認され、修正予定になっているそうです 楽しみに待とう!
61. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 61
Ray Tracing Global Illumination を使う
・RTGI の基本:Point Light の代替
じゃあ、全方向を照らすライトが必要になったらどうするの? って問題ですが
角度を最大にした Spot Light を背中合わせに 2 つくっつけるとかでなんとか……。
62. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 62
Ray Tracing Global Illumination を使う
・RTGI の基本:Point Light の代替には限界がある
ただしこの方法も万全ではありません
Spot Light の Cone Angle が最大の 90°になっていても、実は完全な半球にはなっていません
2 つくっつけてみるとわずかに隙間があいてしまいます(Spot Light の原理上の限界かもしれません)
なんとかうまくごまかしてください……!
63. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 63
Ray Tracing Global Illumination を使う
・RTGI の基本:Point Light の代替にはごまかしが必要
この例では、Spot Light の隙間の暗くなるあたりをグラデーションにして、
暗い範囲が天井の入隅に当たるように配置してごまかしています
64. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 64
Ray Tracing Global Illumination を使う
・RTGI の基本
ここまでのまとめ
Brute Force は負荷なりに画質が良くなる
Final Gather は速度重視で画質はすぐ頭打ち
Max Bounces を増やすと明るくなる(Brute Force のみ)
Samples Per Pixel を増やすときれいになる(Brute Force のみ)
ほかのレイトレ要素とは相性が悪い(基本 Lightmass のほうが有利)
Point Light はバグが直るまで待ってから使おう
65. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 65
Ray Tracing Global Illumination を使う
RTGI の実践
映像作品で RTGI が活きる使い方
映像のための RTGI 設定
より高画質の出力には High Quality Media Export が必要
66. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 66
Ray Tracing Global Illumination を使う
・RTGI の実践:昨年のレイトレナイトの作例
昨年はとりあえずなんでもレイトレで挑戦してみましたが、パッと見てわかるアラがありました
UE4 のレイトレ機能向上で解決するのを期待しましたが、残念ながらそうはならず
この作品はこれ以上はなんともならない感じです
レイトレ同士が重なって真っ黒になる部分があちこち
67. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 67
Ray Tracing Global Illumination を使う
・RTGI の実践:今年の作例
今年は Ray Tracing Global Illumiation 一点突破でいくことにしました
今回のプロジェクト ※実際にエディタで動いてるところを動画でお見せします
キャラクターは自作(手にライト) 背景はマーケットプレイスで購入したアセットです
Soviet Apartment Megapack - Modular Interior Exterior
68. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 68
Ray Tracing Global Illumination を使う
・RTGI の実践:プロジェクトの設計
RTGI が活きる場面ってなんでしょうか? 動的に変化する間接照明があることです
移動するライト(Movable のライト)が間接照明でダイナミックにシーンを照らすような表現は
事前計算のライトマップでは表現できません
69. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 69
Ray Tracing Global Illumination を使う
・RTGI の実践:プロジェクトの設計
いっぽうで、RTGI はレイトレの屈折や鏡面反射には反映されないという弱点があります
それらの要素がはっきり見える場所では固定された照明をライトマップとして用意しておくほうがいいです
なお、ライトマップにベイクされたライトは「Affect Ray Tracing Global Illumiantion」をオフにしないと
RTGI にも影響するので、間接照明の効果が重複してしまいます 注意!
70. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 70
Ray Tracing Global Illumination を使う
・RTGI の実践:動画のシーケンス
今回は時間がなかったので Take Recorderを使い、
キャラクターをリアルタイムに動かしてモーションを収録しました
ただ歩いてるだけのうえに方向転換なんかがギクシャクしますが
プリビズの収録だと考えれば悪くないかもしれません
※実際にエディタで動いてるところを動画でお見せします
Shots トラックに Take Recorderで録ったキャラモーションが入っている
71. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 71
Ray Tracing Global Illumination を使う
・RTGI の実践:映像のための GI の設定値など
リアルタイムの画面表示とシーケンサーからの動画書き出しでは条件がだいぶ異なります
映像出力用の設定は、実際にシーケンサーから出力してチェックして決める必要があります
RTGI の基本のところでも説明したように、
十分に明るくできて、また画質もよくできるモードは Brute Forceです
ここは最初から決めてしまって大丈夫です
間接照明の反射する回数は 3 にしておきます
今回のプロジェクトでは暗い場面が多いので、そのぐらいあったほうが効果的です
73. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 73
Ray Tracing Global Illumination を使う
・RTGI の実践:Screen Percentage 設定
リアルタイムで見る限りだと、Screen Percentage を落とすと相応に画質が悪化するようです
High Quality Media Export からの動画書き出しでは状況が変わってきそうですが
今回は深入りせず、Screen Percentage はオリジナル画質の 100 でいきます
Screen Percentage 50 Screen Percentage 100
74. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 74
Ray Tracing Global Illumination を使う
・RTGI の実践:Brute Force のサンプル数は最大でも足りない
RTGI の画質を決める Samples Per Pixel の値は最大で 64ですが、
今回のように照明の条件が厳しい場合は 64でも足りません 本番は 64 と決めてかかってしまってもいいです
ただしひとつ問題が……!
うちの環境だと Brute Force の Samples Per Pixes を最大の「64」で
HQME から書き出しすると、ほぼ確実に UE4 が止まります
なので、うちでは「32」で運用しています
みんなの PC ではどうかな?
75. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 75
Ray Tracing Global Illumination を使う
・RTGI の実践:動画の書き出しが止まっているとき
ちなみに動画の書き出しが止まっているところをタスクマネージャで観察すると
GPU のグラフが平らになっています(動いてるときは規則的に山ができます)
HQME が止まってるとき 動いてるとき
……なんもしなくなってシステム側から落とされているんですね!
落とされるまでの時間を測ると、TDR の設定値とピッタリ同じでした
うちでは止まった時タスクマネージャから UE を落とすと画面が固まるので
TDR で落とされるのを待ちます
76. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 76
Ray Tracing Global Illumination を使う
・RTGI の実践:旧 Render Movie の出力結果
従来機能である Render Movie からはサンプル 64で書き出せたことがあったので、そのときの画像
非常に厳しい照明条件なので、サンプル 64でもまだ「デノイザーがんばってます」という感じです(もやもやしてる)
77. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 77
Ray Tracing Global Illumination を使う
・RTGI の実践:High Quality Media Export の出力結果
HQME ならこのぐらいまでは簡単にいけます(1フレーム15 秒ぐらい、詳しい設定はこの後で)
やはり高画質の動画書き出しには High Quality Media Export が必要……!
78. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 78
Ray Tracing Global Illumination を使う
・RTGI の実践:High Quality Media Export の出力結果
レンダリング時間をさらに4倍、1フレーム1 分かけてもいいならこのぐらいにできます
High Quality Media Export により、従来は不可能だった超高画質設定が可能になりました!
79. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 79
Ray Tracing Global Illumination を使う
・RTGI の実践:まとめ
RTGI が活きるプロジェクト設計をしよう
RTGI の基本設定はだいたい一緒
詳細はテスト書き出しして詰めよう
Ray Tracing Global Illuminationで高画質の動画書き出しをするなら
High Quality Media Export の使用は必須
ということで、次に続きます
80. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 80
(4)High Quality Media Export を使う
UE4.25 で追加されたシーケンサー用の高画質書き出し機能
リアルタイムと非リアルタイムの設定の使い分けもできるようになりました
従来の Render Movie 機能との違い
ユーザーインターフェイス、使い勝手など
フレーム書き出し機能
高画質化は AA 設定で
RTGI の高画質設定
AA は Temporal で
反省会
出力された動画で画質を評価
おまけ
モーションブラー
81. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 81
High Quality Media Export を使う
・従来の Render Movie 機能との違い:ユーザーインターフェイス
従来の機能は「ゲーム画面を固定フレームレートでキャプチャするだけ」
高画質の動画書き出しはゲーム画面(エディタ)の設定から高画質にしなくてはならず
その状態だとエディタのレスポンスがガクガクで作業になりませんでした
82. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 82
High Quality Media Export を使う
・従来の Render Movie 機能との違い:ユーザーインターフェイス
HQME はリアルタイム画面とは独立した設定ができるようになりました
エディタは操作しやすい設定のままで OK
設定項目も増え、プリセット保存もできます 便利!
83. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 83
High Quality Media Export を使う
・従来の Render Movie 機能との違い:ユーザーインターフェイス
Console カテゴリの設定から、コマンドで詳細な設定変更ができます(エディタの UI にない項目も)
Console Variables は動画書き出しのときだけ使用する値を設定できるところで、たとえば
GI モードは 1(Brute Force)
GI の Screen Percentage は 100
GI の Samples Per Pixel は 64 なんてふうに項目と値をそれぞれ入れておけるのですが
現在「エディタに戻るとここで設定したすべての項目の値が 0 になる」というバグがあります(修正予定だそうです)
84. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 84
High Quality Media Export を使う
・従来の Render Movie 機能との違い:ユーザーインターフェイス
なので、当面は Console Commnads のほうを使うといいです
こちらは動画書き出し開始時に「Start」のコマンド、完了時に「End」のコマンドが送られるので
動画書き出し用の設定を「Start」に、エディタ用の設定を「End」に、それぞれ登録して、
必要に応じて末尾の設定値だけ書き換えれば OK です(=の両側に半角スペースが必要)
85. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 85
High Quality Media Export を使う
・従来の Render Movie 機能との違い:高画質書き出し時の重さは変わらず……!
普通の動画書き出しであれば、書き出し中でも問題なくほかの操作ができますが、
高画質設定で同じフレームの計算を延々と続けているときはレスポンスが非常に悪くなります
書き出しを待ってる間、ほぼ何もできません これに関しては旧機能と特に変わっていません
でもウィンドウに進捗状況が表示されるようになったのはちょっとうれしいですね
86. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 86
High Quality Media Export を使う
・フレーム書き出し機能:高画質設定をするには
さて肝心の書き出し機能の高画質化のほうですが
公式の HQME のドキュメントにも最近になってかなり詳しい説明が出てきました
基本的にはそちらを参照していただくとして
要するに、画質を上げるための設定はどこにあるのか
どのオプションを選択し、どの値を上げればいいのか
というあたりをまず知りたいですよね
87. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 87
High Quality Media Export を使う
・フレーム書き出し機能:高画質設定をするには
実際にいろいろ書き出しして調べた結果、特に画質を向上させるのは AA 設定
Aiti-aliasing の Spatial Sample Count と Temporal Sample Count
ここの値を増やしたぶんだけ、サブフレームが合成されて高画質になります
たとえば Spatial が 1で Temporal が 8 なら、
シーケンスの 1フレームあたり、8 フレーム分を計算したものを合成して書き出します
88. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 88
High Quality Media Export を使う
・フレーム書き出し機能:AA の設定
で、Spatial とTemporal の違いは?
Spatial:サブフレームを空間的に分割して(ピクセルを細かく割って)計算する
Temporal:空間的に分割し、さらに時間的にも分割して(フレーム時間を細かく割って)計算する
※両者は掛け算されます
こんなかんじ……? Spatial = 5 Temporal = 5
ドキュメントでは Temporal のほうが一般的に効率的だとされています
RTGI との組み合わせでも基本的に Temporal のほうが有利なようです(後述)
89. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 89
High Quality Media Export を使う
・フレーム書き出し機能:AA の設定
AA は Method(モード)を変更できるのですが、
実質的には「Override しない(=Temporal AA)」と「None(なし)」の二択です
FXAA と MSAA はドキュメントではなかったことにされてるのでたぶん非推奨です
None にするとエンジン側の AA を使わずに、HQME のサブフレーム合成のみ行うらしいです
Overrideで Temporal AA にするのと、Override なしのままにするのとで結果は同じです
(エンジンのデフォルトが Temporal AA なので)
90. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 90
High Quality Media Export を使う
・フレーム書き出し機能:AA の設定
Sample Count のほうのTemporal と
AA Method のほうのTemporal AA
名前がかぶってますが別物です!
実は効果も似てるのですが、ちょっと違います(後述)
91. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 91
High Quality Media Export を使う
・RTGI の高画質設定:
以下、シーケンスのこの場面で設定変更による画質の変化を検証してみます
この場面を選んだのは、シーケンス全体でおそらくもっとも照明条件が厳しい箇所だからです
つまり、ここがクリアできるならだいたい全部 OK なはず、ということです
Temporal AA の効果が安定するよう10フレーム続けて出力したものを、最後の 1フレームで比較します
92. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 92
High Quality Media Export を使う
・RTGI の高画質設定:旧 Movier Render サンプル 64
これは旧 Render Movie 機能で出力した Brute Force サンプル 64 の画像です まだだいぶ厳しいです
以前は全体の Screen Percentage を 200 にしてさらに高画質化していたのですが、うちでは 4.25 ではできなくなりました(止まる)
93. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 93
High Quality Media Export を使う
・RTGI の高画質設定:HQME サンプル 32
こちらは HQME で Brute Force サンプルを 32 で出力したものです(うちでは 64 だと止まるので)
それ以外の設定は前の画像と同じですが、BF のサンプルが半分になったので画質は悪くなっています
94. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 94
High Quality Media Export を使う
・RTGI の高画質設定:TAA Temporal 8
そこから、AA は Override なし=TAA のままで Temporal を 8 にしたものです(通常は上限が 8 です)
ぐっと画質が良くなりました サンプル数が 8 倍になっていると考えれば妥当な結果でしょうか
95. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 95
High Quality Media Export を使う
・RTGI の高画質設定:TAA Spatial 7
では Spatial のほうを 7 にするとどうなるでしょうか(TAAでは Spatial は奇数でなくてはならないそうなので上限 7 です)
ぜんぜん画質が良くなっていません GI の Denoiserと相性があるのか Spatial では画質が上がらないようです
96. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 96
High Quality Media Export を使う
・RTGI の高画質設定:AA None Temporal 8
AA を Overrideで None にして Temporal の 8 にしてみます
TAAで Temporal の 8 のときとほとんど同じです こちらのほうが高輝度のディテールが出ているようです
97. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 97
High Quality Media Export を使う
・RTGI の高画質設定:AA None Spatial 8
AA Noneで Spatial を8にしてみます
なんとなく滑らかにはなってるようですが、GI の Deoiser のもやもやは消えていません
98. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 98
High Quality Media Export を使う
・RTGI の高画質設定:AA None Temporal 32
そしてこれが AA Noneで Temporal 32 です AA を None にすれば 8 を超える値も設定できます
GI の条件がこれだけ厳しくても、HQME なら乗り切れるということがわかりましたね!
99. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 99
High Quality Media Export を使う
・RTGI の高画質設定:AA None Spatial 32
一応、Spatial で 32 も試してみましたが、やはりもやもやしたのは消えません(諧調がなめらかなもやもやに)
Spatial は GI の Denoiserと相性が悪いようです
100. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 100
High Quality Media Export を使う
・RTGI の高画質設定:GI Denoiser Off AA None Spatial 32
GI の Denoiser はコマンドでオフにすることができます(r.DiffuseIndirect.Denoiser = 0)
Spatial でももやもやはなくなりますが、かわりに粒子状ノイズが目立つようになり、Spatial 32 でもこの程度
101. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 101
High Quality Media Export を使う
・RTGI の高画質設定:GI Denoiser Off AA None Temporal 32
同じくDenoiser オフで、Temporal 32 の結果は Spatial 32とノイズまで一致しています
GI DenoiserとTAA がオフの場合、Temporal でも Spatial でも同じ結果になるようです(動きのない部分)
102. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 102
High Quality Media Export を使う
・RTGI の高画質設定:まとめ
RTGI 重視のおすすめ高画質設定はこんな感じです
GI Method Brute Force
Max Bounces 3 (必要に応じて加減)
Samples 32 (明るいシーンならもっと少なくても)
GI Screen Percentage 100
HQME
AA Override なし、Temporal 8 まで
None、Temporal 8 を超えたいとき
103. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 103
High Quality Media Export を使う
・RTGI の高画質設定:まとめ
AA と Denoiser の関係が重要らしい
今回の例では AA の Spatial とTemporal で劇的な差があり、
その要因が GI の Denoiser なのではないか? と推測しましたが(違うかもしれません)
レイトレ機能ではほかにもいろいろ Denoiser が使われているので、
それぞれに AA との相性があるのかもしれません
ドキュメントでも AA のサンプル数と Denoiser の調節について触れられています
Denoiser はコマンドで設定をチューニングできるようです
また、エンジンのTemporal AA のサンプル数もコマンドで変更できます
今回は試していませんが、TAA のサンプル数で高画質化を狙うこともできるのかもしれません
104. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 104
High Quality Media Export を使う
反省会
書き出しされた動画を見て、どこまで画質が上げられたかチェックします
105. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 105
High Quality Media Export を使う
おまけ:モーションブラー
HQME の高画質モーションブラーの設定を解説
106. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 106
High Quality Media Export を使う
・おまけ:モーションブラー
高品質なモーションブラーを HQME で出せるようなことがドキュメントに書いてありますが
詳しいことは説明されていないようなので調べました
結論からいうと
・AAで Temporal のサンプル数を増やすと、増やしたぶんだけモーションブラーも高品質になる
・Console Variables「r.MotionBlurQuality = 0」でポストプロセスのモーションブラーを切れる
107. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 107
High Quality Media Export を使う
・おまけ:モーションブラー
画像で比較してみましょう まずこれがモーションブラーかかってないもの 真ん中の球は回転しています
HQME の Camera 設定で Camera Shutter Angle を 0 にすればブラーはなくなります
108. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 108
High Quality Media Export を使う
・おまけ:モーションブラー
これがデフォルトのモーションブラー ポストプロセスでかかってるものです
回転がガビガビですが意外に健闘しています 鏡像にブラーがないのがはっきりわかるのはレイトレならではですね
109. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 109
High Quality Media Export を使う
・おまけ:モーションブラー
AAで Temporal の値を 8 にしたもの 回転のブラーはきれいになり、鏡像や影にもブラーがかかっています
動画であれば、これぐらいで十分でしょう わかってしまえば簡単でしたね
110. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 110
High Quality Media Export を使う
・おまけ:モーションブラー
ポストプロセスのブラーは HQME のTemporal のサブフレームごとにかかっています
ブラーをきめ細かくかけているので破綻が起こっていないということです
右端はポストプロセスのブラーをコマンドでオフにしたものです わずかな差ですが一応、ご参考までに
1 2 4 8 PP なしで 8
111. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 111
まとめ
112. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 112
Temporal Sample Countを
ふやせ
113. UNREAL ENGINE Ray Tracing Night Week | 2020 Summer | Online 113
ご清聴ありがとうございました!