Naviの開発コードネームで知られるAMDの新生代GPUのRadeon RX 5700シリーズ。このNaviでは、「Radeon Image Sharpening」という機能が新たに実装された。このRadeon Image Sharpeningは、NVIDIAのAIベースの画像処理を適用する「Deep Learning Super Sampling」の対抗機能というべき存在だ。
また、ゲーム開発者向けのライブラリとして「FidelityFX」を公開。このFidelityFXは対応ゲームでのみ利用できる。FidelityFX非対応のゲームでも、ユーザーはRadeon Image Sharpeningは利用できるが、GPUリソースを使用するため、ゲームパフォーマンスが数%落ちる。一方で、AMDの担当者曰く、FidelityFX対応ゲームの場合は、その機能の一部である「Radeon Image Sharpening」を使用してもゲームパフォーマンスは落ちないという。
では実際にRadeon Image SharpeningおよびFidelityFXによってどの程度、描画やパフォーマンスが変わるのか詳しく見ていこう。
Radeon Image Sharpeningの正体は
画像をシャープ化するポストエフェクト
まずは、FidelityFXについて説明しておこう。これは、冒頭でも述べたとおり、AMDがレンダリング品質とパフォーマンスの向上を目的として、ゲーム開発者に向けて公開した最適化ライブラリだ。このFidelityFXでは、「Contrast Adaptive Sharpening」(以下CAS)と呼ばれる画像をシャープにするポストエフェクトと、画像を拡大縮小する混合機能を提供している。
このCASでは、ピクセルごとのシャープネスの量を調整し、画像全体のシャープネスのレベルを均等にすることで、画像の鮮明さを向上させる。つまり、Radeon Image Sharpeningというのは、このFidelityFXのCASを、ユーザーがRadeon Softwareから利用できるようにしたものという理解で問題ない。そして、このCASは、既存のTemporal Anti-Aliasing(TAA)で生成された画像の細部を鮮明化する形で利用可能となっている。なお、グラフィックスAPIはDirectX 12およびDirectX 9のほか、Vulkanをサポートしている。
だが、DirectX 12およびDirectX 9をサポートしてるGPUは、 RX 5000シリーズのみで、RX 590/580/570/480/470とRX Vega 64/56、 それにRadeon VIIはDirectX 12のみの対応となる。また、VulkanはこれらのGPUすべてでサポートされている。
さて、CASにはもう一つ、オプションとして画像のスケーリング機能が用意されている。このスケーリング機能は、フレームごとにレンダリング解像度を変更する「Dynamic Resolution Rendering」をサポートしており、それをスケーリングしてネイティブ解像度として表示できる。
つまり、レンダリング処理を低解像度で行ない、それをアップスケーリングしてネイティブ解像度に表示することで、フレームレートの向上を図ることができるわけだ。もちろん、低解像度で描画処理を行なっているため、画質自体は低下するものの、そこをCASのシャープネス機能により、画質をさほど低下させずにパフォーマンスを稼ぐことが可能になっているというわけだ。
さて、Radeon Image Sharpeningの使い方だが、「Radeon Settings」の「ディスプレイ」タブにある「Radeonイメージ鮮明化」という項目をオンに変更する。さらに、ゲームがFidelityFXを用いて開発され、Radeon Image Sharpeningに関係する項目をゲーム内の設定から有効にする必要がある。たとえば、「Borderlands 3」では、ビジュアルの詳細設定に「FidelityFXシャープニング」という項目が用意されている。
また、「F1 2019」の場合、Version 1.07パッチでアンチエイリアスに「TAA and FidelityFX Sharpening」、「TAA and FidelityFX Upscaling」という2つの設定内容が用意されている。前者はRadeon Image Sharpeningを用いて画像の鮮明さを引き上げるもので、後者はアップスケーリングを用いて描画パフォーマンスを高めるものとなる。