差分

ナビゲーションに移動 検索に移動

可変レートシェーディング

1,852 バイト追加, 2021年6月2日 (水) 02:23
ページの作成:「'''可変レートシェーディング'''(英語:Variable Rate Shading、略称:VRS)とは、あまり目立たないであろう部分のシェーディング…」
'''可変レートシェーディング'''(英語:Variable Rate Shading、略称:VRS)とは、あまり目立たないであろう部分の[[シェーディング]]処理を大雑把に行う機能のことである。

これにより[[GPU]]の負荷が下がるのでその分を[[フレームレート]]の向上に割り振ることができる。

== 概要 ==
VRSでは[[ピクセルシェーダー]]の呼び出しを全[[ピクセル]]に対して行うのではなく、
目立たない部分は「2x2ピクセル」や「4x4ピクセル」に1回だけ処理を行う。

1フレームの描画に際して[[ピクセルシェーダー]]を何回も呼び出す場面において、
[[法線]]や[[深度]]などと同様に「粗ピクセルサイズ」を記録しておくことで
後続の[[ピクセルシェーダー]]で手抜きができるというものである。

そしてコマンドリストに「このピクセルシェーダーは手抜きしても良いフラグ」を設定しておくと、[[GPU]]が負荷に応じて手抜きしてくれる。

粗ピクセルサイズを設定する際の条件は様々なものが考案されている。
* カメラからの距離(深度情報を利用、もっとも一般的な方法)
* [[モーションブラー]]の有無(ブラーがかかった部分の画質はそんなに重要ではない)
* エッジではない部分(低性能[[GPU]]の場合など)
* 問答無用で全画面([[コマ落ち]]しそうな場合など)

== 類似品 ==
VRSと同様の機能は[[NVIDIA]]の「[[Adaptive Shading]]」が先行していた。
また実装に関しては[[Vulkan]]が先行していた。

これを[[Microsoft]]がDirectX 12に取り込んだのがVRSであり、
宗教上の理由を回避して[[AMD]]なども使えるようになった。

案内メニュー