本日はUnity枠です。
UnityのHDRPでアプリを作成している際にNVIDIAのDLSSについて調べたので今回まとめていきます。
〇DLSSとは?
DLSS(DeepLarning Super Sampring)はNVIDIAが開発、発表したグラフィックに関する技術です。
基本的にRTXシリーズのグラボでのみ実行可能なサンプリング技術です。
通常グラフィックボードではレンダリングした画像をデバイスのディスプレイに表示する際にアップスケーリングと呼ばれる手法で解像度を上げています。
この際に単純に解像度を倍にするとモザイク状になってしまうため様々なアルゴリズムによってきれいにアップスケールするようにしています。
DLSSが有効な状態ではAIを使用したアップスケーリングが行われています。
この際にNVIDIA製のDLSSに対応しているグラフィックボードではTensorCoreを使用して複数の低解像度画像をサンプリングし実行しながら学習を行うことでより高速に、確実なレンダリングを行っているようです。
〇メリット・デメリット
DLSSを使用することでアップスケーリングの精度を上げることでFPSを含めたパフォーマンス全体を向上させることができます。
NVIDIAの紹介によるとMicrosoft Flight Simuratorでは2倍のパフォーマンスが出ているようです。
公式サイトによると多くのゲームで2倍以上のパフォーマンスが出るようになっているようです。
ただしデメリットとして対応しているNVIDIA製のグラフィックボードを使用していることが必須であり、コアなゲーミング層に限定される技術であることが挙げられます。
アップスケーリング自体はDLSS関係なく行われている工程のためDLSSを使用すること自体によるデメリットは内容です。
〇UnityでDLSSを使用する
Unityでは23年現在DLSSを使用できるのはHDRPに限られています。
ProjectSettingsのQualityからHDRPの設定を開きDynamic resolutionを有効化することでDLSSの設定が使用できます。
これはBuildInPackageのNVIDIAパッケージをインポートすることで使用可能になります。
これだけでプロジェクト側は設定が完了します。
実際に使用するためにはシーン上のカメラの設定からRendering→Allow Dynamic Resolutionにチェックを入れAllow DLSSを有効にする必要があります。
PC専用でかつNVIDIAの対応グラボが必要ですが、これだけでパフォーマンスが向上するため実行環境が決まっている場合は有効にしておくとよいかもしれません。
本日は以上です。