本日はUnity枠です。
先日UntiyでDLSSについて調べていきました。
DLSSはNVIDIAが開発しているNVIDIA製のグラフィックボードを使用したAIによるアップスケーリングの手法です。
今回はトラブルに関してのシューティング記事になります。
〇発生したトラブル
今回発生したトラブルはエディタ上で実行時に画像のようにUnityEditorのグラフィックがブラックアウトしていき最終的にクラッシュしてしまう問題でした。
以下の条件で再現性があり問題が発生します。
・Unity2021.3.5f1
・HDRP
・RayTracing(DirectX12)
・DLSSをプロジェクトおよびシーン上のカメラで有効にしている。
・PCVR(MetaQuest)を接続してEditorをじっこうしている
・OpenXR
〇原因の考察
今回の問題が様々なパッケージを使用しているため問題の特定を行いました。
まずOpenXRが対応していない可能性を考えましたが、OpenXRのドキュメントにはDLSSについて記載されており、特に使用に関する制限等は記載を見つけることはできませんでした。
[https://mbucchia.github.io/OpenXR-Toolkit/glossary.html#:~:text=Glossary%20%7C%20OpenXR%20Toolkit%20DLSS%20D%20eep%20L,resolutions%20and%20settings%20while%20still%20maintaining%20soli d%20framerates.:embed:cite]
次にDLSS自体がVR対応していないことを考えました。
DLSS対応+RayTracing対応のVRゲームもあるのでUnityでのDLSSが対応していないことは考えられても問題の本質ではないと判断しました。
OculusアプリがDSLLに対応していないことも考えましたが、OpenXRに依存しているため問題としては可能性は低いと判断しました。
最後に残ったのがUnityの設定周りでした。
〇問題の原因と解消
今回の問題の解消はRender ModeをSingle Pass InstancedからMultiPassに変更することで行えました。
おそらくDLSSがシングルパスインスタンシングレンダリングに対応していないものと思われます。
これによってVRでDLSSを使用することができました。
本日は以上です。