SlideShare a Scribd company logo
1 of 37
Ray Tracing Night Week 2020
UE4.25のレイトレで出来ること/出来ないこと
内容
UE4.22→4.25のレイトレーシング周りのアップデート情報
・アップデートの全体的な傾向
・レンダリング可能オブジェクト
・全般的な更新情報
・リフレクション
・グローバルイルミネーション
・シャドウ、スカイライト
・半透明
まとめ
不具合情報
より理解するための資料
UE4のレイトレーシングで出来ること/出来ないこと
https://www.slideshare.net/SatoshiKodaira/ue4-141971670
昨年のUE4 Ray Tracing Nightの資料
本資料は上記資料のアップデートパッチ的なもの
アップデートの全体的傾向
アップデートの全体的傾向
UE4.25でProduction Readyに!
UE4.22ではまだExperimental(実験的)だった
製品に使えるというEpicさんのお墨付き
実際にはまだまだ波乱万丈
描画可能なオブジェクトが増加
不具合修正や挙動の見直しによる高速化
テクニックは特に増えていない
ハードウェア
現在は特にアップデートなし
NVIDIA Geforce RTXシリーズ/GTXシリーズ 1000番台
レイトレーシングを行うRTCoreはRTXシリーズのみ
GTXシリーズはCompute Shaderによるエミュレーション
AMD RDNA2
対応発表済み、発売は秋~年末予定?
新ゲームコンソール
PS5とXbox Series Xが対応発表済み
UE4も対応予定
レンダリング可能オブジェクト
レンダリング可能オブジェクト
新しく対応したもの
Landscape
r.RayTracing.Landscape でON/OFF可
Foliage
Instanced Static Mesh
r.RayTracing.InstancedStaticMeshes でON/OFF可
Procedural Mesh
Mesh Decal
対応してないもの
Cascade
Decal
レンダリング可能オブジェクト
Mesh Decal
一応対応したことになっている?
r.RayTracing.ExecludeDecal を1にすると無効にできる
画面の状態でExecludeDecalを1にするとクラッシュ
Visible In RayTracingをOFFにした方が良さそう?
Mesh Decalを使用したキューブ
グレー部分がMesh Decal有効
リフレクションの結果
レンダリング可能オブジェクト
World Position Offsetへの対応
Static Mesh、Skeletal Meshで使用できるようになった
Static Meshの場合は以下のチェックボックスをONにする
Evaluate World Position Offset
Instanced Static Meshでは有効にならない
チェックボックス自体はあるが効果なし
Vertex Animation Texture (VAT) が使えるようになった!
全般的な技術の更新
全般的な技術の更新
SceneCaptureでレイトレを使用できる
4.22でも使えたかもしれないが、4.23からは確実に入っている
4.25からは r.RayTracing.SceneCaptures でON/OFFできる
SceneCaptureCubeで活躍
SSRだとキューブ接続部分でリフレクションがおかしくなるため
Screen Space Reflection Ray Tracing Reflection
全般的な技術の更新
対応するライティングモデル
Opaqueに関してはほとんど対応している
ただしSubsurface系で不具合あり
対応予定あり
光が透過してくる方向の色がおかしい
全般的な技術の更新
Lighting Miss Shader
ライティング計算をMiss Shaderで行う手法
リフレクション、GIでの高速化を目的としている
常に高速になるという保証はないのでプロファイルしましょう
NVIDIAさんのブランチで実装されていた機能
以下のブログが詳しい
https://shikihuiku.wordpress.com/2019/12/12/ue4-rtx4-23ブランチのmissshaderlightingは何をしているのか/
なぜかライト数が64個に限定される(4.25.1現在)
使用しない場合は256個まで
NVIDIAブランチの実装では256個まで使える
リフレクション
リフレクション
Sort Materialsがデフォルト有効に
3パスでリフレクションを計算する実装
・レイトレを行い、ヒットするマテリアル番号を抽出
・CSでマテリアル番号をソート
・ソート順にレイを飛ばしてリフレクション計算
マテリアル数が多い場合に高速化しやすい
テクスチャキャッシュや命令キャッシュが効きやすくなる
マテリアル数が少ないと逆に遅くなるかも
SamplePerPixelのループがなくなった
サンプル数分だけレイトレパスを実行する形式に変更
Sort Materialsの影響かも
リフレクション
Hybridリフレクションによる高速化
r.RayTracing.Reflections.Hybrid でON/OFF
レイがヒットした位置が画面内にあるなら画面のカラーを取得する
ライティング計算が省けるので単純に高速化できる
ライティング計算とスクリーンカラーで差異が出る
境界が見える場合がある
半透明マテリアルのON/OFFができる
デフォルトOFF
必要ならONにできるが、クオリティは低いので注意
半透明ライティングは正常動作しない
くっきりとしたシャドウが出る
Niagaraは相変わらず板で表示される
リフレクション
半透明マテリアルが天球に負ける
天球メッシュがレイトレでInvisibleの場合
レイが不透明メッシュに衝突しないと半透明が処理されないため
天球メッシュのVisible In RayTracingをONにすればOK
BP_Sky_SphereはOFFになってるので注意
リフレクション
天球OFF 天球ON
リフレクション
Experimental Deferred
Experimentalな機能と思われる
Sort MaterialsがONになっている場合と基本的には同じ
Material Gatherのレイトレ前に飛ばすレイがソートされる
レイの方向が似たような方向になるようにソート
同一方向のレイならBVHのトラバーサルが速いかも?
まだExperimentalだからか、そこまで速くない
むしろ遅い場合が多い?
Max Bouncesが有効にならないなど、デフォルトに対して機能が劣る
現段階では使う意味はなさそうだが…
グローバルイルミネーション
グローバルイルミネーション
Final Gatherが追加されて高速化
PostProcessVolumeでBrute ForceとFinal Gatherを選択できる
ピクセルごとのサンプル数が増えてもひどい速度低下はない
4サンプル→0.5ms
64サンプル→2.5ms
サンプル数が増えると綺麗になりやすい
最大バウンス数は効果なし
マルチバウンスの効果が高い暗めのシーンで使いづらい
シャドウ、スカイライト
シャドウ、スカイライト
Hair Strandsの遮蔽に対応
UE4.24から追加されたHair Strands (Groom)の遮蔽を有効にできる
r.RayTracing.Shadows.EnableHairVoxel
r.RayTracing.SkyLight.HairVoxel
Hair Strands は遮蔽をVoxelで行ってるらしい
あんまり詳しくないが、ソースを読む限りそんな感じに見える
試せてないので速度など不明
半透明
半透明
屈折がこれまで以上に正しくなった?
正確かどうかはともかく説得力は段違い
相変わらずSpecular値で屈折を表現する
0.0の場合に屈折なし
半透明
複数重なった時の屈折が微妙?
背景の天球が下半分だけ消える
屈折しなければ消えない
Specular: 0.0 Specular: 0.1
半透明
レイトレ半透明は反射も入る
ガラスの表現としてはかなり重要
半透明
対応する半透明タイプはTranslucentとAdditiveのみ
それ以外はTranslucent扱い
Modulateは未対応
左:Translucent 右:Additive
Opacityはともに1.0
半透明
レイトレ半透明越しの反射
半透明越しに反射した半透明はOpacityが無視される
半透明越しに反射した半透明は直接ライトのみ有効
スカイライトや反射キャプチャは効果なし
半透明越しに反射した半透明をOFFにする手段はない
半透明越しにツルツルな金属があると見た目が明らかにおかしい
ここは鏡張り半透明板
鏡に映った半透明板
半透明
レイトレ半透明越しの反射
わかりにくいので図解!
カメラ
半透明板
鏡板
Primary Ray
(最初のレイ)
半透明を抜けた
レイ
ここのライティング結果に
半透明を合成した結果が
最終結果となる
鏡に反射したレイは半透明板に衝突
半透明板のライティングが直接光のみなの
で、Sky LightやReflection Captureの結果
が無視される
半透明として処理されないのでここでレイト
レーシングは終了
半透明
レイトレ半透明越しの反射
レイトレリフレクションとは無関係に反射される
レイトレリフレクションOFFだと映像がだいぶおかしい
半透明板を通した部分はレイトレ
直接見えてる部分はレイトレリフレクションOFF
SSRになっているのでカメラの後ろは映らない
半透明
半透明とリフレクションは相性が悪い
半透明越しのリフレクションでもその逆でも同じ
使いどころが難しい
半透明のガラスに映り込みをやりたいけど、半透明自体はラスタライズと同じ
処理がしたい!
方法その1:インテリアマッピングを使用する
外から見える部屋のガラスなどの特定要素でしか使えない
方法その2:Hybrid Translucencyを使う
NVIDIA社のRTXブランチに存在する機能
https://shikihuiku.wordpress.com/2019/12/03/ue4-rtx-4-23ブランチのhybrid-translucencyは何をしているのか/
まとめ
まとめ
描画に利用できるオブジェクトが増えた
特にWPOが使用できるようになったのは大きい
不具合修正、最適化が多い
4.22ではExperimentalだったので当然かも
Alembicでクラッシュする問題も解決している
VATが使えるようになったのでゲームでは不要かも
でもまだ不具合多い
GPUドライバハング、Device Removeなどは原因がわかりにくい
不具合情報
Landscapeをサブレベルに配置して読み込むとクラッシュする
4.25.2で修正済み
一部の機能をコンソールコマンドでON/OFFするとクラッシュすることがある
報告済み
r.RayTracing.AsyncBuild
レイトレーシングシーンの構築を非同期コンピュートで行うフラグ
ONにすると死ぬ
そもそも普通にクラッシュする
D3D12の実装に問題あるのかも
ポストモーテムと質疑応答
8/24(月) 21時~

More Related Content

What's hot

UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
historia_Inc
 

What's hot (20)

アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
アーティストの為のプロファイル入門!~楽しいRenderDocの使い方~
 
UE4を使った映像制作 (UE4 Character Art Dive Online)
UE4を使った映像制作 (UE4 Character Art Dive Online)UE4を使った映像制作 (UE4 Character Art Dive Online)
UE4を使った映像制作 (UE4 Character Art Dive Online)
 
UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!UE4 Volumetric Fogで 空間を演出する!
UE4 Volumetric Fogで 空間を演出する!
 
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
[CEDEC2017] UE4プロファイリングツール総おさらい(グラフィクス編)
 
UE4 LODs for Optimization -Beginner-
UE4 LODs for Optimization -Beginner-UE4 LODs for Optimization -Beginner-
UE4 LODs for Optimization -Beginner-
 
待望のUE4新機能 ナイアガラでプログラマブルVFX
待望のUE4新機能 ナイアガラでプログラマブルVFX待望のUE4新機能 ナイアガラでプログラマブルVFX
待望のUE4新機能 ナイアガラでプログラマブルVFX
 
大規模CSゲームにおけるライトマス運用
大規模CSゲームにおけるライトマス運用大規模CSゲームにおけるライトマス運用
大規模CSゲームにおけるライトマス運用
 
UE4のライティング解体新書~効果的なNPRのためにライティングの仕組みを理解しよう~
UE4のライティング解体新書~効果的なNPRのためにライティングの仕組みを理解しよう~UE4のライティング解体新書~効果的なNPRのためにライティングの仕組みを理解しよう~
UE4のライティング解体新書~効果的なNPRのためにライティングの仕組みを理解しよう~
 
ファンタジー背景グラフィック制作事例(UE4 Environment Art Dive)
ファンタジー背景グラフィック制作事例(UE4 Environment Art Dive)ファンタジー背景グラフィック制作事例(UE4 Environment Art Dive)
ファンタジー背景グラフィック制作事例(UE4 Environment Art Dive)
 
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
UE4.26 レンダリング新機能(CEDEC+KYUSHU 2020)
 
そうだPostProcess Materialで見た目を変えよう
そうだPostProcess Materialで見た目を変えようそうだPostProcess Materialで見た目を変えよう
そうだPostProcess Materialで見た目を変えよう
 
Unreal Engineを使用した商用タイトルで のノンフォトリアルレンダリング(NPR)事例
Unreal Engineを使用した商用タイトルで のノンフォトリアルレンダリング(NPR)事例Unreal Engineを使用した商用タイトルで のノンフォトリアルレンダリング(NPR)事例
Unreal Engineを使用した商用タイトルで のノンフォトリアルレンダリング(NPR)事例
 
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
メカアクションゲーム『DAEMON X MACHINA』 信念と血と鋼鉄の開発事例
 
UE4におけるエフェクトの為のエンジン改造事例
UE4におけるエフェクトの為のエンジン改造事例UE4におけるエフェクトの為のエンジン改造事例
UE4におけるエフェクトの為のエンジン改造事例
 
UE4における大規模背景制作事例(コリジョン編)
UE4における大規模背景制作事例(コリジョン編) UE4における大規模背景制作事例(コリジョン編)
UE4における大規模背景制作事例(コリジョン編)
 
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
UE5制作事例 “The Market of Light” ~Nanite/Lumenへの挑戦~
 
Robo Recallで使われている 最新のVR開発テクニックをご紹介!
Robo Recallで使われている最新のVR開発テクニックをご紹介!Robo Recallで使われている最新のVR開発テクニックをご紹介!
Robo Recallで使われている 最新のVR開発テクニックをご紹介!
 
60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編60fpsアクションを実現する秘訣を伝授 基礎編
60fpsアクションを実現する秘訣を伝授 基礎編
 
猫でも分かるUMG
猫でも分かるUMG猫でも分かるUMG
猫でも分かるUMG
 
かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!
かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!
かわいい女の子になりたいんや! UE4の最新機能を使ってVTuberしてみた!
 

UE4.25のレイトレーシングで出来ること/出来ないこと