8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

UnityのGPU負荷を大幅軽減できるアセット「DLSS4」「XeSS2」(&STP)を比較

Last updated at Posted at 2025-12-01

本記事ではGPU負荷軽減のアプローチの1つであるアップスケーリングを実現するアセット 「DLSS4」「XeSS2」 およびUnity6で追加されたアップスケーリング技術の STP についてご紹介いたします。

筆者の開発経験

  • C# 11年以上
  • Unity 8年以上

Unityの最適化と暗号化と難読化を独学で8年かけて試行錯誤してきた筆者です。よろしくお願いします。

▼最適化の記事

▼暗号化と難読化の記事

想定している読者

  • Unityゲームを開発している人
  • UnityやC#の基礎知識がある人
  • Unity2021、2022、2023、Unity6のいずれかで開発している人
  • 3Dのゲームを作っておりGPU負荷が高く悩んでいる人
    およびローエンド環境のユーザーを考慮してGPU負荷が低めの設定を用意したいと考えている人

アップスケーリングの利点と欠点

本記事でご紹介する「アップスケーリング」という技術を採用するメリットおよびデメリットは、簡潔に説明すると以下の通りです。

メリット

  • Unity内部で処理される画面の描画面積を小さくする
    →GPU負荷が大幅に下がる

デメリット

  • 描画結果の画面の品質がアップスケーリング未使用時に比べて低下する

要するに内部での描画処理を一旦小さな解像度で済ませてから元の解像度に引き延ばすのがアップスケーリングです。
本記事ではこの利点と欠点が実際どんなものなのかをご紹介できればと思います。

# 1. 得られる結果

細かい説明は後回しにして、まずは Unity標準の機能だけ で得られる結果と アップスケーリングアセット「DLSS4」「XeSS2」を使用 することで得られる結果を本項にまとめました。
本記事ではURPのみ検証しますが、アップスケーリングアセット「DLSS4」「XeSS2」等は全てのレンダーパイプライン(ビルトイン、URP、HDRP)をサポートしています。
パフォーマンスの比較は項番3.2と3.3で行っていますので、本項では各アップスケーリング方法の画面の品質をご紹介いたします。

本記事ではUnity6(6000.1.17f1)で撮影した画像や動画を掲載しておりますが、2022.3.62f3、2021.3.45f2でも確認を行い
アップスケーリング方法による品質の優劣はUnity6と変わらないことを確認しています。

## 1.1. アップスケーリングなし

まずはアップスケーリング機能を使用していない通常の状態です。
URPの設定は以下の通りです。

  • AntiAliasing(MSAA):8x
  • RenderScale:1

この設定の場合のゲーム画面が以下の通りです。

▼ゲーム画面(引き)
image.png

▼ゲーム画面(寄り)
image.png

▼動画

 動きも重要なのでGoogleDriveにアップロードした動画を共有しますが、ストリーミング再生だと画質が劣化してしまいます
 動画をダウンロードすると劣化なしの動画を見られるので、一度ダウンロードしてから視聴することをおすすめします

この品質を基準としてアップスケーリングで得られる結果の比較を行います。

## 1.2. Unity標準の機能のみ(FSR 1.0)

URPの設定を項番1.1から以下のように変更します。

  • AntiAliasing(MSAA):Disabled
  • RenderScale:0.5
  • Upscaling Filter:FidelityFX Super Resolution 1.0

この設定の場合のゲーム画面が以下の通りです。

▼ゲーム画面(引き)
image.png

▼ゲーム画面(寄り)
image.png

▼動画

なんともヒドイですね。
特にカメラを引いたときはまるでモザイクがかかっているようです。

## 1.3. Unity標準の機能のみ(STP)

STP(正式名称:Spatial-Temporal Post-processing) はUnity6で追加されたアップスケーリング機能です。

STPの詳細やSTPとFSR1.0の比較検証は以下の記事で紹介されています。

URPの設定を項番1.1から以下のように変更します。

  • AntiAliasing(MSAA):Disabled
  • RenderScale:0.5
  • Upscaling Filter:Spatial-Temporal Post-processing

この設定の場合のゲーム画面が以下の通りです。

▼ゲーム画面(引き)
image.png

▼ゲーム画面(寄り)
image.png

▼動画

アップスケーリングなしと比較して遜色ないのが分かります。
ただ動画で見ると、キャラクターが瞬きをすると目が滲んで見えるのが分かります。
またキャラクターが左右に移動した時も、キャラクターの輪郭が少しザラついています。
加えて地面に生えてる草の輪郭が潰れてしまっていますが、これほど細かい部分はアップスケーリングの性質上致し方ないものとします。

## 1.4. アップスケーリングアセット「DLSS4」

▼「DLSS 4 - Upscaling for Unity」のアセットストアページ

価格は本記事執筆時点で$32.99で、よくセールをやっています。
このアセットは「DLSS4」という名を冠していますが、NVIDIA RTX 50シリーズで登場したあのDLSS4とは無関係です
このアセットの開発者である「The Naked Dev」さんの初代アセット「DLSS(無印)」が「DLSS2」にバージョンアップ、そして「DLSS3」を経て「DLSS4」にバージョンアップしたという経緯があります。
ややこしいですね…

▼「DLSS 3 - Upscaling for Unity」のアセットストアページ(現在は取り扱い終了)

このアセットの開発者は「DLSS4」の他にも「XeSS2」や「FSR3」など何種類ものアップスケーリングアセットをリリースしており、それぞれに良し悪しがありますが、詳細は後程説明するとして、まずは 最も品質の高いアップスケーリングアセット「DLSS4」 から見てみましょう。

URPの設定は以下の通りです。

  • AntiAliasing(MSAA):Disabled(アセットの仕様により固定)
  • RenderScale:1(アセットの仕様により固定)

また、アップスケーリングアセット「DLSS4」固有の設定で、Quality Modeは「Performance(2x)」にします。
これにより、描画面積はURPのRenderScaleが0.5の時と同じく4分の1になるため、条件が前項のFSR1.0やSTPと同じになります。

image.png

この設定の場合のゲーム画面が以下の通りです。

▼ゲーム画面(引き)
image.png

▼ゲーム画面(寄り)
image.png

▼動画

こちらもアップスケーリングなしと比較して遜色ないのが分かります。
ただ動画で見ると、こちらもキャラクターが瞬きをすると目が滲んで見えるのが分かります。
またキャラクターが左右に移動した時も、キャラクターの輪郭が少しザラついています。

## 1.5. アップスケーリングアセット「XeSS2」

▼「XeSS 2 - Upscaling for Unity」のアセットストアページ

こちらも価格は本記事執筆時点で$32.99で、よくセールをやっています。

XeSS(正式名称:Xe Super Sampling) は、Intelが開発したAI強化アップスケーリング技術だそうです(曖昧)。
DLSSとの明確な違いは、DLSSはNVIDIA RTX系(20x0シリーズ以上)のGPU限定ですが、XeSSはIntel、AMD、NVIDIAのGPUに対応しています。
「XeSS2」はこのXeSSという技術を利用してアップスケーリングを実現しています。

URPの設定は前項の「DLSS4」と同じで、アップスケーリングアセット「XeSS2」固有の設定のQuality Modeも同じく「Performance(2x)」にします。

この設定の場合のゲーム画面が以下の通りです。

▼ゲーム画面(引き)
image.png

▼ゲーム画面(寄り)
image.png

▼動画

「DLSS4」と比較すると若干品質が低下しているのが分かります。

また、「XeSS2」はフレームレートが落ちた時などにカメラが動くと被写体から残像のようなものが出る事象を確認しています。

▼残像の検証動画

# 2. アップスケーリングアセットの良し悪し

このタイミングで、本記事の主賓であるアップスケーリングアセットたちの良し悪しをご説明いたします。

▼「DLSS4」「XeSS2」等の開発者のアセットストアページ

本記事で取り上げている「DLSS4」「XeSS2」の他にも「FSR3」「SGSR2」などがありますが、これらのアセットの違いは対応している動作環境アップスケーリングの品質です。
悲しいことに品質が高いアセットほど対応している動作環境が少なくなります

品質が高い順に並べると以下の通りです。

No アセット名 動作環境 対応GPU
1 DLSS4 Windows x64 (DX11, DX12 & Vulkan) NVIDIA RTX
(20x0シリーズ以上)
2 XeSS2 Windows x64 (DX11 & DX12) Intel、AMD、NVIDIA
3 FSR3 ほぼ全てのプラットフォーム ほぼ全て
4 SGSR2 ほぼ全てのプラットフォーム
(FSR3が対応してない
古いプラットフォームも対応)
ほぼ全て

これらのアセットは同じプロジェクトに複数種類入れることができ優先順位も設定できるので、アセットを複数購入できるのであればフォールバック用に買っておくのもアリです。
筆者の場合は「DLSS4」と「XeSS2」を導入して、第一優先に「DLSS4」を設定しているので、この場合基本は最も品質が高い「DLSS4」が適用され、対応していない動作環境では次点の「XeSS2」が適用されます。
筆者の場合はWindowsのDX11さえ対応してれば良い要件なのでこの2つで済みましたが、他のプラットフォームにも対応したい場合はその次の「FSR3」が必要となります。
「SGSR2」はFSR3が対応してない古いプラットフォームをどうしてもサポートしたい場合のみに需要が限られるので、あまり使われないのではないでしょうか。

これらのアセットの優先順位を整理すると、

  • WindowsのDX11・DX12に対応したい
    → DLSS4 > XeSS2
  • WindowsのDX11・DX12およびそれ以外に対応したい
    → DLSS4 > XeSS2 > FSR3 > SGSR2
  • WindowsのDX11・DX12以外に対応したい
    → FSR3 > SGSR2

となるでしょうか。

# 3. アップスケーリング方法の比較

項番1のアップスケーリングの結果を踏まえ、品質・パフォーマンス・制約の観点から
それぞれのアップスケーリング方法の良し悪しを比較してみましょう。

## 3.1. Unity標準の機能のみ(FSR 1.0)

もしこのアップスケーリング方法を愛用してる方がいらっしゃったら申し訳ないのですが、他のアップスケーリング方法と比べて品質の劣化がヒドすぎるので論外です。
STPが使えず有料のアセットを買いたくないという人はFSR1.0を使うしかないのでしょうか…?
筆者は品質重視でゲーム開発をしていたので、FSR1.0が候補筆頭だった頃はアップスケーリングを諦めて使用していませんでした。

## 3.2. Unity標準の機能のみ(STP)

このアップスケーリング方法は非常に高い品質を実現できているように思います。
品質だけで比較するとアップスケーリングアセット「DLSS4」や「XeSS2」などは必要ないかもしれません。
ただしSTPが使えるのはUnity6限定で、なおかつRenderGraphを有効にする必要があります。

パフォーマンスはどうでしょうか。
以下の環境でパフォーマンスを比較してみました。

  • CPU:「AMD Ryzen 5 6600H」
  • GPU:「NVIDIA GeForce GTX 1650 4GB + AMD Radeon Graphics」

この環境ではアップスケーリングアセット「DLSS4」が機能しないので「XeSS2」が適用されます。
STPと「XeSS2」のパフォーマンスの比較結果が以下の通りです。
(ついでにアップスケーリング未使用時に比べてアップスケーリング使用時のパフォーマンスがどれほど改善されるかの比較もしています)

No 方法 画面解像度 フレームレート
1 アプスケなし 1920x1080 37
2 アプスケなし 2560x1440 24
3 アプスケなし 3200x1800 17
4 STP 1920x1080 60
5 STP 2560x1440 56前後
6 STP 3200x1800 40前後
7 XeSS2 1920x1080 60
8 XeSS2 2560x1440 43前後
9 XeSS2 3200x1800 30前後

あれ?普通にSTPでよいのでは・・・。

## 3.3. アップスケーリングアセット「DLSS4」

このアップスケーリング方法もまた非常に高い品質を実現できているように思います。
STPはUnity6かつRenderGraphを有効にする必要がありますが、「DLSS4」は Unity2021、2022、2023、Unity6(RenderGraph無効を含む) に対応しています。

パフォーマンスはどうでしょうか。
以下の環境でパフォーマンスを比較してみました。

  • CPU:「Intel Core i7-10700」
  • GPU:「NVIDIA GeForce RTX 2070 SUPER」

STPと「DLSS4」のパフォーマンスの比較結果が以下の通りです。

No 方法 画面解像度 フレームレート
1 アプスケなし 1920x1080 60
2 アプスケなし 2560x1440 60
3 アプスケなし 3840x2160 40前後
4 STP 1920x1080 60
5 STP 2560x1440 60
6 STP 3840x2160 60
7 DLSS4 1920x1080 60
8 DLSS4 2560x1440 60
9 DLSS4 3840x2160 60

アップスケーリングなしの4K解像度でようやくフレームレートが落ちるくらいなので、STPでも「DLSS4」でもフレームレートの低下を確認できませんでした。
なのでパフォーマンス面は推測になってしまいますが、恐らくパフォーマンス面で大幅に「DLSS4」が優れているということはないでしょうし、仮にパフォーマンス面で優勢だとしても品質がほぼ同等なので、STPが使える条件下でわざわざ「DLSS4」を選ぶ理由はないかもしれません。

 比較検証としてはProfilerを使って正確に計測すべきではありますが、数ミリ秒程度の差となると作っているゲームのオブジェクトの数やポリゴン数などあらゆる条件によって結果が変わる可能性があり余り参考にならないため、本記事ではフレームレートによる簡易的な比較とさせていただきました

## 3.4. アップスケーリングアセット「XeSS2」

このアップスケーリング方法もSTPや「DLSS4」ほどではないにしろ、それなりに高い品質を実現できているように思います。
とはいえ項番3.2のSTPとの比較からしても、品質やパフォーマンスにおいて 「XeSS2」はSTPの下位互換 と言ってよいでしょう。
STPはUnity6かつRenderGraphを有効にする必要がありますが、「DLSS4」と同じく「XeSS2」は Unity2021、2022、2023、Unity6(RenderGraph無効を含む) に対応しています。
STPも「DLSS4」も使えない環境下であれば「XeSS2」はアリなのではないでしょうか。

# 4. まとめ

アップスケーリングアセット「DLSS4」や「XeSS2」などの強みは
Unity2021、2022、2023、Unity6(RenderGraph無効を含む)に対応していること
であり、
Unity6かつRenderGraphを有効化できるプロジェクトではSTPで充分である
と言ってよいのではないでしょうか。

使用しているアセットとの兼ね合いでUnity6未満またはRenderGraph無効の環境で開発せざるを得ない場合、アップスケーリングアセット「DLSS4」や「XeSS2」などを検討してみてはいかがでしょうか。

筆者がこの記事を書くまでSTPの存在を知らずに「DLSS4」「XeSS2」を使用していたのはここだけの秘密です

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?