拙訳
Introduction
- TAAとは複数フレームにまたがって集めたデータを使った空間的アンチエイリアシング技術のこと
- リアルタイムレンダリング界隈ではほぼデファクトスタンダード
- TAAは空間的AA技術なので、temporal antialiasingという名前はミスマッチ感がある
- そもそものtemporal antialiasingは時間的エイリアシングの低減を目的とした技術のこと
- 昔々、MSAAというものがありました
- 流行りのdeferred shadingとは食い合わせが悪かった
- SSAAと大差なかったり、帯域を大量に奪ったり
- MSAAの代替として、ポストプロセッシングAAが色々と提案された
- でも、時間的な安定性が問題になるものも多かった
- 流行りのdeferred shadingとは食い合わせが悪かった
- TAAは前フレームからシェーディング結果を再投影することでサブピクセル情報を解決する
- スーパーサンプリングとやっていることは大体同じ
- 計算コストを複数フレームに分散することで、単一サンプルのシェーディング+αでスーパーサンプリングを行うことができる
- エイリアシング除去性能も、時間的な安定性も、実装しやすさも向上している
- 問題がない訳ではなく、画像がぼけたり、残像が起こったり、ギラついたりする
Algorithm overview
- ピクセルごとに、3D空間上で同じ位置にある色を履歴バッファから取り出して、現フレームのjittering済みシェーディング結果に混ぜ合わせる
- シーンをレンダリングする
- 前フレームからの移動量を表すためのモーションベクトルを用意する
- jitteringを行うためにビューポートをずらして行う
- モーションベクトルを使って履歴バッファからサンプルを取り出す
- 履歴バッファにはそれまでのサブピクセル情報が1ピクセルに詰まっている
- 履歴サンプルを使って良いものかどうか確認したり、使っても良いように修正したりする
- 古すぎる、状況が変化しすぎている、などで現在のシェーディング結果にそぐわない場合、ghostingなどの悪影響が出たりする
- これを行うのに現フレームのサンプルデータしか使えないので、色々大変で無理が出たりする
- 履歴と現サンプルを混ぜ合わせる
- 固定または適応型の重みを用いて重み付き平均を取る
- シーンをレンダリングする
- TAA的に行うアップスケーリングをtemporal upsamplingと呼んだりする
- フレームごとに低解像度でレンダリングして、複数フレームを掛けて高解像度版を生成する
A brief history of Temporal Antialiasing
- temporal coherenceを活用したレイトレーシング高速化[Scherzer et al. 2012Scherzer, D., Yang, L., Mattausch, O., Nehab, D., Sander, P. V., Wimmer, M. and Eisemann, E. 2012. Temporal coherence methods in real-time rendering. Computer Graphics Forum 31, 8, 2378–2408. 10.1111/j.1467-8659.2012.03075.x. https://www.cse.ust.hk/~psander/docs/tempcoj.pdf.]
- proxy geometry warpingやpixel scatteringによってフレームをまたいでデータを再投影する
- motion-compensated filtering[Brailean et al. 1995Brailean, J.C., Kleihorst, R.P., Efstratiadis, S., Katsaggelos, A.K. and Lagendijk, R.L. 1995. Noise reduction filters for dynamic image sequences: a review. Proceedings of the IEEE 83, 9, 1272–1292. 10.1109/5.406412.]
- 画像や動画のノイズを低減するための時空間フィルタ
- adaptive nonlinear filters[Ozkan et al. 1993Ozkan, M.K., Sezan, M.I. and Tekalp, A.M. 1993. Adaptive motion-compensated filtering of noisy image sequences. IEEE Transactions on Circuits and Systems for Video Technology 3, 4, 277–290. 10.1109/76.257217.]やsignal decomposition手法[Kleihorst et al. 1995Kleihorst, R.P., Lagendijk, R.L. and Biemond, J. 1995. Noise reduction of image sequences using motion compensation and signal decomposition. IEEE Transactions on Image Processing 4, 3, 274–284. 10.1109/83.366476.]を用いて、時変信号を扱う必要がある
- Accumulation Buffer[Haeberli and Akeley 1990Haeberli, P. and Akeley, K. 1990. The accumulation buffer: hardware support for high-quality rendering. SIGGRAPH Comput. Graph. 24, 4, 309–318. 10.1145/97880.97913. https://graphics.stanford.edu/courses/cs248-02/haeberli-akeley-accumulation-buffer-sig90.pdf.]
- ピクセル毎integralsを計算するのに複数フレームにわたるデータを用いるアイデアの初出
- このアイデアがリアルタイムレンダリングに実戦投入されるのは、Reverse Reprojection Cache(履歴バッファ)が開発されてから
- reprojection vectorを用いる手法[Nehab et al. 2007Nehab, D., Sander, P. V., Lawrence, J., Tatarchuk, N. and Isidoro, J. R. 2007. Accelerating real-time shading with reverse reprojection caching. Proceedings of the 22nd ACM SIGGRAPH/EUROGRAPHICS symposium on graphics hardware 25–35. https://gfx.cs.princeton.edu/pubs/Nehab_2007_ARS/NehEtAl07.pdf.; Scherzer et al. 2007Scherzer, D., Jeschke, S. and Wimmer, M. 2007. Pixel-correct shadow maps with temporal reprojection and shadow test confidence. Proceedings of the 18th eurographics conference on rendering techniques 45–50. 10.2312/EGWR/EGSR07/045-050. https://www.cg.tuwien.ac.at/research/publications/2007/Scherzer-2007-PCS/Scherzer-2007-PCS-Preprint.pdf.]
- reprojection vectorsによって、物体やカメラの動きを追跡して、前フレームから厳密に同一のsurface pointを取り出すことができる
- どちらもシャドウマッピングの品質改善に用いるよう提案された
- Amortized Supersampling[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- アンチエイリアシングのためのgeneral solutionとしてのデータ再投影の初出
- 余計なブラーを低減するために履歴バッファの解像度を2倍にする
- エラーを抑えるために適応的ブレンディングスキームを導入する
- 現フレームのサンプルで履歴を修正する手法
- [Lottes 2011Lottes, T. 2011. TSSAA (Temporal Super-Sampling AA). Timothy Lottes. https://web.archive.org/web/20120120082628/http://timothylottes.blogspot.com/2011_04_01_archive.html.]がまず導入し、のちに改良版のneighborhood clamping (またはclipping)[Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.; Salvi 2016Salvi, M. 2016. An Excursion in Temporal Supersampling. Game Developers Conference. https://developer.download.nvidia.com/gameworks/events/GDC2016/msalvi_temporal_supersampling.pdf.]が登場した
- 現フレームのデータだけあればいいので、これによってTAAがより堅牢に、より組み込みやすくなった
- Halo: Reach [Leadbetter 2010Leadbetter, R. 2010. Tech Analysis: Halo: Reach. Eurogamer. https://www.eurogamer.net/digitalfoundry-halo-reach-tech-analysis-article.]
- フレーム間で代替のサンプリングパターンを用いて、その後、2フレーム分を適応的にブレンドする
- 2xスーパーサンプリング相当の品質になる
- Crysis2 [Sousa 2011Sousa, T. 2011. Anti-Aliasing Methods in CryENGINE 3. Filtering Approaches for Real-time Anti-aliasing course. ACM SIGGRAPH. https://www.iryoku.com/aacourse/downloads/13-Anti-Aliasing-Methods-in-CryENGINE-3.pdf.]
- 複数フレームを混ぜ合わせるために再投影を行う
- アーティファクトを最小化するため、モーションと深度ベースの一貫性チェックを行う
- TXAA [NVIDIA 20122012. TXAA. NVIDIA. https://web.archive.org/web/20190311200255/https://www.geforce.com/hardware/technology/txaa.]
- Kepler+アーキテクチャのTAAソリューション
- 標準的なアンチエイリアシングアプローチとしての実装
- Unreal Engine 4 [Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.]
- Unity [Unity 20162016. Unity effects documentation: Anti-aliasing. Unity. https://docs.unity3d.com/Packages/com.unity.postprocessing@2.1/manual/Anti-aliasing.html.]
- 空間的アンチエイリアシングと組み合わせた実装
- SMAA (CryEngine 3) [Jimenez et al. 2012Jimenez, J., Echevarria, J. I., Sousa, T. and Gutierrez, D. 2012. SMAA: Enhanced subpixel morphological antialiasing. Computer Graphics Forum 31, 2pt1, 355–364. 10.1111/j.1467-8659.2012.03014.x. https://www.iryoku.com/smaa/downloads/SMAA-Enhanced-Subpixel-Morphological-Antialiasing.pdf.]
- TSCMAA [Kim 2018Kim, S. 2018. Temporally Stable Conservative Morphological Anti-Aliasing (TSCMAA). https://www.intel.com/content/dam/develop/external/us/en/documents/tscmaa-codesample-v1.pdf.]
- その他のTAA実装
- Dust 514 [Malan 2012Malan, H. 2012. Real-Time Global Illumination and Reflections in Dust 514. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2012/CCP/Malan-Dust_514_GI_reflections(Siggraph2012).pptx.]
- Decima engine [Valient 2014Valient, M. 2014. Taking Killzone Shadow Fall Image Quality into the Next Generation. Game Developers Conference. https://www.guerrilla-games.com/media/News/Files/GDC2014_Valient_Killzone_Graphics.pdf.; de Carpentier and Ishiyama 2017de Carpentier, G. and Ishiyama, K. 2017. Decima Engine: Advances in Lighting and AA. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2017/index.html.]
- Far Cry 4 [Drobot 2014Drobot, M. 2014. Hybrid reconstruction anti-aliasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/drobot/HRAA_notes_final.pdf.]
- Quantum Break [Aalto 2016Aalto, T. 2016. Towards Cinematic Quality, Anti-aliasing in Quantum Break. Game Developers Conference Europe. https://www.gdcvault.com/play/1023870/Towards-Cinematic-Quality-Antialiasing-in.]
- Rainbow Six Siege [El Mansouri 2016El Mansouri, J. E. 2016. Rendering 'Rainbow Six | Siege'. Game Developers Conference. https://www.gdcvault.com/play/1022990/Rendering-Rainbow-Six-Siege.]
- Inside [Fuglsang Pedersen 2016Fuglsang Pedersen, L. J. 2016. Temporal Reprojection Anti-Aliasing in INSIDE. Game Developers Conference. https://gdcvault.com/play/1022970/Temporal-Reprojection-Anti-Aliasing-in.]
- Uncharted 4 [Xu 2016Xu, K. 2016. Temporal Antialiasing in Uncharted 4. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2016/s16_Ke.pptx.]
- temporal upsampling
- TAAを用いてサブピクセルレベルでディテールを累積する再構成アルゴリズム[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- 画像空間内でアップサンプリングを行うためのjoint spatio-temporal filter[Herzog et al. 2010Herzog, R., Eisemann, E., Myszkowski, K. and Seidel, H.-P. 2010. Spatio-temporal upsampling on the GPU. Proceedings of the 2010 ACM SIGGRAPH symposium on interactive 3D graphics and games 91–98. 10.1145/1730804.1730819. https://people.mpi-inf.mpg.de/alumni/d4/2016/rherzog/Papers/spatioTemporalUpsampling_preprintI3D2010.pdf.]
- 高解像度ディスプレイに対応するため、ゲームエンジンで類似のアイデアが使われていた[Malan 2012Malan, H. 2012. Real-Time Global Illumination and Reflections in Dust 514. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2012/CCP/Malan-Dust_514_GI_reflections(Siggraph2012).pptx.; Valient 2014Valient, M. 2014. Taking Killzone Shadow Fall Image Quality into the Next Generation. Game Developers Conference. https://www.guerrilla-games.com/media/News/Files/GDC2014_Valient_Killzone_Graphics.pdf.; Aalto 2016Aalto, T. 2016. Towards Cinematic Quality, Anti-aliasing in Quantum Break. Game Developers Conference Europe. https://www.gdcvault.com/play/1023870/Towards-Cinematic-Quality-Antialiasing-in.; Unreal Engine 5.4 Documentation 20182018. Screen Percentage with Temporal Upscale. Unreal Engine 5.4 Documentation. https://dev.epicgames.com/documentation/en-us/unreal-engine/screen-percentage-with-temporal-upscale-in-unreal-engine?application_version=5.4.]
- ピクセル毎に1未満のシェーディングを行うために、欠落部分のフィルタリングや穴埋めをTAAに依存しているものがある
- checkerboard rendering[Leadbetter 2016Leadbetter, R. 2016. Inside PlayStation 4 Pro: How Sony made the first 4K games console. Eurogamer. https://www.eurogamer.net/digitalfoundry-2016-inside-playstation-4-pro-how-sony-made-a-4k-games-machine.; El Mansouri 2016El Mansouri, J. E. 2016. Rendering 'Rainbow Six | Siege'. Game Developers Conference. https://www.gdcvault.com/play/1022990/Rendering-Rainbow-Six-Siege.; Wihlidal 2017Wihlidal, G. 2017. 4K Checkerboard in Battlefield 1 and Mass Effect Andromeda. Game Developers Conference. https://media.gdcvault.com/gdc2017/Presentations/Wihlidal_4kCheckerboardIn.pdf.]
- variable rate shading[Patney et al. 2016Patney, A., Salvi, M., Kim, J., Kaplanyan, A., Wyman, C., Benty, N., Luebke, D. and Lefohn, A. 2016. Towards foveated rendering for gaze-tracked virtual reality. ACM Trans. Graph. 35, 6. 10.1145/2980179.2980246. https://cwyman.org/papers/siga16_gazeTrackedFoveatedRendering.pdf.; Xiao et al. 2018Xiao, K., Liktor, G. and Vaidyanathan, K. 2018. Coarse pixel shading with temporal supersampling. Proceedings of the ACM SIGGRAPH symposium on interactive 3D graphics and games. 10.1145/3190834.3190850. https://www.intel.com/content/www/us/en/developer/articles/technical/coarse-pixel-shading-with-temporal-supersampling.html.]
Accumulating temporal samples
- 空間的アンチエイリアシングは、理論上では、サンプリング前に連続的な信号に対してローパスフィルタをかける
- 実践上では、連続的な信号をスーパーサンプリングした後に離散的な信号のサンプルに対してローパスフィルタをかける
- TAAは複数フレームにわたって空間的サンプルを生成・整列・累積することでスーパーサンプリングのコストを償却する
Jittering samples
- 各フレームで異なるサンプルを生成するには、ビューポート上のサブピクセル単位のジッターオフセットをカメラの射影行列に加える方法が一般的
- ジッターオフセットにはwell-distributedなサンプル列を用いる
- どの部分列を取ってもピクセル範囲内でそれなりに均等に分布する数列であることが理想的
- 物体がどのタイミングで映り始めても、素早く収束するように
- HaltonやSobolなどのlow-discrepancy列はこの特性を持っている[Christensen et al. 2018Christensen, P., Kensler, A. and Kilpatrick, C. 2018. Progressive multi-jittered sample sequences. Computer Graphics Forum 37, 4, 21–33. 10.1111/cgf.13472. https://graphics.pixar.com/library/ProgressiveMultiJitteredSampling/paper.pdf.]
- 目標とする品質や実際に累積するサンプル数によって、数列の長さを比較的少数に抑えることがある
- Unreal Engine 4は既定ではHalton(2, 3)の8サンプル列を用いる[Epic Games 20152015. The Unreal Engine 4 source code. https://www.unrealengine.com/en-US/ue-on-github.]
- InsideはHalton(2,3)の16サンプル列を用いる[Fuglsang Pedersen 2016Fuglsang Pedersen, L. J. 2016. Temporal Reprojection Anti-Aliasing in INSIDE. Game Developers Conference. https://gdcvault.com/play/1022970/Temporal-Reprojection-Anti-Aliasing-in.]
- SMAA T2xはQuincunxを用いる[Jimenez 2016Jimenez, J. 2016. Filmic SMAA: Sharp morphological and temporal antialiasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. http://www.klayge.org/material/4_11/Filmic%20SMAA%20v7.pdf.]
- Quantum Breakは回転させたグリッドオフセットを用いる[Aalto 2016Aalto, T. 2016. Towards Cinematic Quality, Anti-aliasing in Quantum Break. Game Developers Conference Europe. https://www.gdcvault.com/play/1023870/Towards-Cinematic-Quality-Antialiasing-in.]
- フィルタカーネルがボックスフィルタでない非負カーネルのときにはimportance samplingが使える[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- programmable sample positionのtier 2が使えると、2x2ピクセルグリッドをまたいでサンプルパターンを指定できる
- サンプルパターンの繰り返し周波数や基になる信号の周波数の間の干渉に由来するエイリアシングアーティファクトを低減するのに役立つ
- NVIDIAのMFAA[Gruen 2015Gruen, H. 2015. New GPU Features of NVIDIA’s Maxwell Architecture. Game Developers Conference. https://developer.download.nvidia.com/assets/events/GDC15/GEFORCE/Maxwell_Archictecture_GDC15.pdf.]や、Drobotの2xMSAAを用いた2フレームにわたるFLIPQUADパターンによるサンプリング[Drobot 2014Drobot, M. 2014. Hybrid reconstruction anti-aliasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/drobot/HRAA_notes_final.pdf.]で活用されている
- jitteringパターンを無作為化することで、パータン中の規則的なサイクルを崩すことができる
- 短い回帰数列では、あるモーション速度が複数フレームからのサンプル位置をワールド空間上で集めてしてしまう可能性がある
- テクスチャフィルタリングとの組み合わせでブラーがかかりすぎないように、mipmapバイアスを適用したりする
- temporal upsamplingでは特に重要[Unreal Engine 5.4 Documentation 20182018. Screen Percentage with Temporal Upscale. Unreal Engine 5.4 Documentation. https://dev.epicgames.com/documentation/en-us/unreal-engine/screen-percentage-with-temporal-upscale-in-unreal-engine?application_version=5.4.]
- バイアスの値は実効サンプル密度と入力ピクセル密度の比で補正する
- 入力ピクセルあたりの実効サンプル数が4としたとき、ミップマップバイアスはで計算される
- 実際には、時間的安定性やテクスチャキャッシュ効率の問題があるので、この値から0の間の値を使ったりを時折している
- TAAはサンプリングのintegrationを必要とするその他のエフェクトにも適用できる
- AO、シャドウ、OIT、反射、ディフューズGI、など
- 入力を無作為化すれば、スクリーン空間でアンチエイリアシングされたサンプルでできる
- Unreal Engine 4は確率的サンプリングおよびディザリングを用いるエフェクトのデノイジングにTAAを使っている[Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.]
Data reprojection between frames
- 前フレームでの位置を得る方法としてreverse projectionが広く使われる[Nehab et al. 2007Nehab, D., Sander, P. V., Lawrence, J., Tatarchuk, N. and Isidoro, J. R. 2007. Accelerating real-time shading with reverse reprojection caching. Proceedings of the 22nd ACM SIGGRAPH/EUROGRAPHICS symposium on graphics hardware 25–35. https://gfx.cs.princeton.edu/pubs/Nehab_2007_ARS/NehEtAl07.pdf.; Scherzer et al. 2007Scherzer, D., Jeschke, S. and Wimmer, M. 2007. Pixel-correct shadow maps with temporal reprojection and shadow test confidence. Proceedings of the 18th eurographics conference on rendering techniques 45–50. 10.2312/EGWR/EGSR07/045-050. https://www.cg.tuwien.ac.at/research/publications/2007/Scherzer-2007-PCS/Scherzer-2007-PCS-Preprint.pdf.]
- 前フレームのデータと現フレームのデータを使ってジオメトリを2回transformする
- 得られた位置の差分はテクスチャに格納される(一部のエンジンでは”速度”とも言う)
- 帯域を節約するため、動いている物体のモーションベクトルだけを計算するエンジンもある[Epic Games 20152015. The Unreal Engine 4 source code. https://www.unrealengine.com/en-US/ue-on-github.]
- 影響するピクセルはステンシルバッファでタグ付けされる
- タグ付けされなかったピクセルはTAAパスで前フレームでの位置を使って決まる
- 深度バッファから再構築したNDC位置に、変換座標を適用して、前フレームでのNDC位置を求める
- distortion artifact (fractional offset snapping)が発生しないように、各ピクセルで履歴を取得するリサンプリング工程が必要になる
- 再投影された座標がサブピクセルレベルのオフセットを含むので、ピクセルが1対1対応しなくなる
- 一般には、バイリニアのテクスチャフェッチかバイキュービックのテクスチャフィルタリングを使う
- モーションベクトルにもエイリアシング対策が必要になる
- モーションベクトルの再投影を行うと、移動する物体の境界にアーティファクトが発生し得る
- モーションベクトル自体にはアンチエイリアシングを適用できない
- これの回避方法として、モーションベクトルをサンプリングするときに前面の物体を膨張させる[Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.]
- 一般に、小さな4-tap dilation windowが使われる
- 深度値のみを使う適応的スキームも提案されている[Wihlidal 2017Wihlidal, G. 2017. 4K Checkerboard in Battlefield 1 and Mass Effect Andromeda. Game Developers Conference. https://media.gdcvault.com/gdc2017/Presentations/Wihlidal_4kCheckerboardIn.pdf.]
Sample accumulation
- 集められたサンプルは平均化されて単一の色として保持される
- [Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]:
- はフレームのサンプル、は再投影オペレータ
- ブレンドファクタは多くの実装では固定値を取る
- [Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]:
- ブレンドファクタを固定値とすると、実質的に、再帰的な指数関数的平滑化フィルタとして機能する[Nehab et al. 2007Nehab, D., Sander, P. V., Lawrence, J., Tatarchuk, N. and Isidoro, J. R. 2007. Accelerating real-time shading with reverse reprojection caching. Proceedings of the 22nd ACM SIGGRAPH/EUROGRAPHICS symposium on graphics hardware 25–35. https://gfx.cs.princeton.edu/pubs/Nehab_2007_ARS/NehEtAl07.pdf.; Scherzer et al. 2007Scherzer, D., Jeschke, S. and Wimmer, M. 2007. Pixel-correct shadow maps with temporal reprojection and shadow test confidence. Proceedings of the 18th eurographics conference on rendering techniques 45–50. 10.2312/EGWR/EGSR07/045-050. https://www.cg.tuwien.ac.at/research/publications/2007/Scherzer-2007-PCS/Scherzer-2007-PCS-Preprint.pdf.; Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- 古いサンプルの重みが徐々に小さくなっていく特性は、ある種、好ましい
- 分散低減の観点で見れば、全サンプルが均等な重みで平均化されるときが最適[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- ただし、サンプル数が少なかったり多すぎたりするときに品質が悪くなるので、が固定の場合には正しくない
- で5フレーム分集めた結果はピクセルあたりのサンプル数が2.2個と等価
- 10フレームでは、5.1サンプル相当
- 15フレームでは、9.8サンプル相当
- 定常状態では、ベストのときに19サンプル相当
- サンプルの累積数を履歴バッファのアルファチャンネルに格納する手法[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- とすることで、サンプルの重みを均一にする
- 素早い収束が必要なアプリケーションで使われる[Willberger et al. 2019Willberger, T., Musterle, C. and Bergmann, S. 2019. Deferred hybrid path tracing. Ray tracing gems: High-quality and real-time rendering with DXR and other apis 475–492. 10.1007/978-1-4842-4427-2_26. https://www.realtimerendering.com/raytracinggems/unofficial_RayTracingGems_v1.9.pdf#0004286911.INDD%3Ab978-1-4842-4427-2_26%3A142.; Koskela et al. 2019Koskela, M., Immonen, K., Mäkitalo, M., Foi, A., Viitanen, T., Jääskeläinen, P., Kultala, H. and Takala, J. 2019. Blockwise multi-order feature regression for real-time path-tracing reconstruction. ACM Trans. Graph. 38, 5. 10.1145/3269978. https://webpages.tuni.fi/foi/papers/Koskela-TOG-2019-Blockwise_Multi_Order_Feature_Regression_for_Real_Time_Path_Tracing_Reconstruction.pdf.]
- ターゲットフレームレートが低いときは、特に
- が小さすぎるとリサンプリングエラーやtemporal lagの影響を受けやすくなるため、の下限をクランプする
- モーション速度の逆数で適応的に導出する理論[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- モーション速度が大きくなるときにを増やす単純なヒューリスティクス[Sousa 2011Sousa, T. 2011. Anti-Aliasing Methods in CryENGINE 3. Filtering Approaches for Real-time Anti-aliasing course. ACM SIGGRAPH. https://www.iryoku.com/aacourse/downloads/13-Anti-Aliasing-Methods-in-CryENGINE-3.pdf.; Epic Games 20152015. The Unreal Engine 4 source code. https://www.unrealengine.com/en-US/ue-on-github.]
- 履歴を取り除いたり修正したりしたら、実効サンプル数もに合わせて更新する必要がある[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
Sample accumulation in HDR color space
- HDR空間でTAAを適用するためのワークアラウンド
- ポストエフェクトはHDR空間で行う必要があるのに、アンチエイリアシングはトーンマッピング後のほうが適している
- 仕方ないので、トーンマップしてからTAAを行い、逆トーンマップしてHDR空間に戻す[Pettineo 2015Pettineo, M. 2015. Rendering the Alternate History of The Order: 1886. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2015/rad_siggraph_advances_2015.pptx.]
- 実践では、Reinhard operator のような可逆なトーンマッピングで実装される
- トーンマッピング時の不飽和化を回避するために輝度に適応した重みを用いる手法[Karis 2013Karis, B. 2013. Tone mapping. Graphic Rants. https://graphicrants.blogspot.com/2013/12/tone-mapping.html.; Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.]
- 新しいサンプルを履歴に混ぜ込むときにbilateral weightとして使う:
- は色の輝度成分
- これにより、トーンマップしつつ、明るすぎるピクセルを抑えてくれる
- 似たような技術がブルームの安定化のためにCall of Duty: Advanced Warfaceで実装されている[Jimenez 2014Jimenez, J. 2014. Next Generation Post Processing in Call of Duty: Advanced Warfare. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/sledgehammer/Next-Generation-Post-Processing-in-Call-of-Duty-Advanced-Warfare-v17.pptx.]
- 新しいサンプルを履歴に混ぜ込むときにbilateral weightとして使う:
Validating history data
- 履歴データをそのまま再利用するのはやめたほうが良い
- 遮蔽状況が変化したり、照明や陰影が変化したりして、履歴データが無効になる
- エラーを適切に扱わないと、ghostingなどの時間的アーティファクトが発生する
History rejection
- エラーを見つけたデータを破棄することで無効データを取り扱う
- にしてエラーの影響を取り除く
- 累積する履歴の更新を早めるために、に下限を設けることもあり得る
- 破棄するかどうかの判断にはジオメトリデータや色データが使える
- ジオメトリデータを用いる方法
- 遮蔽状況が変化したりして一致しない表面から再投影した履歴データを見つけるのに使われる
- 新たに映り始めたピクセルを見つけて履歴を破棄する手法[Nehab et al. 2007Nehab, D., Sander, P. V., Lawrence, J., Tatarchuk, N. and Isidoro, J. R. 2007. Accelerating real-time shading with reverse reprojection caching. Proceedings of the 22nd ACM SIGGRAPH/EUROGRAPHICS symposium on graphics hardware 25–35. https://gfx.cs.princeton.edu/pubs/Nehab_2007_ARS/NehEtAl07.pdf.]
- 再投影した深度値と前フレームの深度との差が大きすぎるとき、遮蔽物が避けて背後の物体が映り始めたと解釈する
- Crysis 2 [Sousa 2011Sousa, T. 2011. Anti-Aliasing Methods in CryENGINE 3. Filtering Approaches for Real-time Anti-aliasing course. ACM SIGGRAPH. https://www.iryoku.com/aacourse/downloads/13-Anti-Aliasing-Methods-in-CryENGINE-3.pdf.]
- モーション速度が上がるにつれてを増やす+深度ベースの一貫性チェック
- ジオメトリデータだけだとシェーディングの変化を識別できないので、結果が微妙になることもある
- 履歴データとサンプルデータを直接比較する方法
- 照明・陰影が変化したり、リサンプリングエラーや不正確なモーションベクトルによって変になったりしたものを見つけるのに使われる
- 現フレームのサンプルはエイリアシングしているはずなので、この比較はバイアスされたエラー推定量を求めることになる[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- つまり、この値が空間的にも時間的にも不安定となることを意味する
- エラー推定量のフィルタリング:
- は半径3のボックスフィルタ
- この推定量は履歴のrefreshの最低量を強制するためにの下限を設定するのに使う
- 再構築した色の時間的勾配に、安定性向上のための時空間的平滑化を適用する手法[Herzog et al. 2010Herzog, R., Eisemann, E., Myszkowski, K. and Seidel, H.-P. 2010. Spatio-temporal upsampling on the GPU. Proceedings of the 2010 ACM SIGGRAPH symposium on interactive 3D graphics and games 91–98. 10.1145/1730804.1730819. https://people.mpi-inf.mpg.de/alumni/d4/2016/rherzog/Papers/spatioTemporalUpsampling_preprintI3D2010.pdf.]
- 現フレームのサンプルで近傍の色の範囲(バウンディングボックス)を計算する手法[Malan 2012Malan, H. 2012. Real-Time Global Illumination and Reflections in Dust 514. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2012/CCP/Malan-Dust_514_GI_reflections(Siggraph2012).pptx.]
- このバウンディングボックスの近くまたは内部にあれば、履歴をそのままにする
- 加えて、バウンディングボックスの範囲に応じてをバイアスする
- バウンディングボックスが小さければ、ghostingを回避するためにを増やす
- バウンディングボックスが大きければ、累積されるサンプルを増やし、時間的アーティファクトを低減するためにを減らす
- Killzone: Shadow Fall[Valient 2014Valient, M. 2014. Taking Killzone Shadow Fall Image Quality into the Next Generation. Game Developers Conference. https://www.guerrilla-games.com/media/News/Files/GDC2014_Valient_Killzone_Graphics.pdf.]、HRAA[Drobot 2014Drobot, M. 2014. Hybrid reconstruction anti-aliasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/drobot/HRAA_notes_final.pdf.]
- フレーム間で厳密に同じ表面位置でシェーディングを行っている生のサンプル同士を比較して、時間的な変化を検出する
- (時間的FLIPQUADのような)2つ前のフレームとサンプル位置がおなじになるような、偶奇フレームのサンプルパターンを用いる
- レイトレーシング用[Schied et al. 2018Schied, C., Peters, C. and Dachsbacher, C. 2018. Gradient estimation for real-time adaptive temporal filtering. Proc. ACM Comput. Graph. Interact. Tech. 1, 2. 10.1145/3233301. https://cg.ivd.kit.edu/publications/2018/adaptive_temporal_filtering/adaptive_temporal_filtering.pdf.]
- 前のシェーディングサンプルのsubsetを現フレームにforward-projectして、厳密に同じ位置で新しいサンプルをシェーディングすることで、シェーディング変化(時間的勾配)を確実に計算する
- 疎に計算された勾配はjoint-bilateral filterでアップスケーリングされ、履歴が常に最新になるようにを制御するのに使われる
History rectification
- History rectificationは無効なデータを新しいサンプルと矛盾のないように修正する
- 無効なデータをリジェクトすると、integrationが実質的にリセットされて、テンポラルアーティファクトを引き起こす
- こんにちのTAA実装では、ビジュアル的に許容される結果になるように、修正した履歴を現フレームにブレンドする
- 近傍サンプルから色の範囲(凸包)を計算して、その外側にある履歴をクリップすることで修正を行う
- 現フレームのサンプルによって、各ピクセルに含まれる色の範囲が正確に得られると仮定する
- 近傍サンプルがより多ければ、局所的な色変化の分布の推定量がよりうまく求まると仮定して、色情報を抽出するのに各ピクセルの3x3以上の近傍を考える
- 色空間における近傍サンプルの凸包は中心ピクセルの周辺で期待される色の範囲を表している
- 履歴の色が凸包の内側にある場合、現フレームのデータと矛盾がないとみなし、安全に再利用できる
- 履歴の色が凸包の外側にある場合、現フレームのデータと矛盾がなくなるように修正する必要がある
- 履歴の色とサンプルの色を線でつないで、その線分を凸包でクリップすることで行う
- min/maxフィルタを用いて色のAABBを計算して、そのAABBで履歴をクリップやクランプする近似手法[Lottes 2011Lottes, T. 2011. TSSAA (Temporal Super-Sampling AA). Timothy Lottes. https://web.archive.org/web/20120120082628/http://timothylottes.blogspot.com/2011_04_01_archive.html.; Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.]
- 実践では、凸包の計算や光線と凸包の交差はめちゃくちゃ重いので、近似的に行う
- AABBは計算しやすい反面、時間的な安定性とghosting発生をトレードオフする
- RGBの代わりにYCoCg空間でクリッピングを行う[Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.]
- YCoCgの方がタイトなAABBを作りやすくなるので、ghostingが抑えられる
- 外れ値に対処するためのvariance clipping[Salvi 2016Salvi, M. 2016. An Excursion in Temporal Supersampling. Game Developers Conference. https://developer.download.nvidia.com/gameworks/events/GDC2016/msalvi_temporal_supersampling.pdf.]
- 極端に暗かったり明るかったりするとバウンディングボックスが大きくなりすぎて、修正されるべき履歴も受け入れてしまうことが起こり得る
- 局所的な近傍の色の平均と標準偏差を用いて色範囲を決定する
-
- は0.75から1.25の間から選ばれる
- pixel history linear models[Iglesias-Guitian et al. 2016Iglesias-Guitian, J. A., Moon, B., Koniaris, C., Smolikowski, E. and Mitchell, K. 2016. Pixel history linear models for real-time temporal filtering. Computer Graphics Forum 35, 7, 363–372. 10.1111/cgf.13033. https://studios.disneyresearch.com/wp-content/uploads/2019/03/Pixel-History-Linear-Models-for-Real-Time-Temporal-Filtering-1.pdf.]
- 特徴(ピクセルごとに累積した安定的な低周波の色情報)を線形モデルに通してピクセルの色に変換する
- 近傍クランプも使って、色予測モデルをrefineする
- 全体としては、追加のストレージを使って時間的一貫性と応答性の優れたバランスを求めることを目的にしている
Temporal upsampling
- 実質的なサンプリングレートをピクセル毎1サンプル以下に減らす、TAAを拡張したもの
- 低解像度のシェーディング結果を累積して、純粋な空間的アップサンプリングより細かくなり得る高解像度画像を生成する
- 基本構成はTAAとだいたい同じだけど、accumulation stepは特別なものを使う
Scaling-aware sample accumulation
- まず入力サンプルを出力解像度にアップスケールする
-
- は出力ピクセルの固定サイズ近傍における入力サンプルの集合
- はにおける番目のサンプル
- はととの距離
- は対象ピクセルに対する再構築フィルタのカーネル
- ガウシアンカーネル[Herzog et al. 2010Herzog, R., Eisemann, E., Myszkowski, K. and Seidel, H.-P. 2010. Spatio-temporal upsampling on the GPU. Proceedings of the 2010 ACM SIGGRAPH symposium on interactive 3D graphics and games 91–98. 10.1145/1730804.1730819. https://people.mpi-inf.mpg.de/alumni/d4/2016/rherzog/Papers/spatioTemporalUpsampling_preprintI3D2010.pdf.; Unreal Engine 5.4 Documentation 20182018. Screen Percentage with Temporal Upscale. Unreal Engine 5.4 Documentation. https://dev.epicgames.com/documentation/en-us/unreal-engine/screen-percentage-with-temporal-upscale-in-unreal-engine?application_version=5.4.]
- 1ピクセル幅のバイリニアのテント関数[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- 入力サンプルグリッドの大きさより広いsupportを持つその他のフィルタリングカーネル
- 正規化ファクタは重みの総和:
- 実質的には、この式で、対象ピクセルの再構築カーネルに該当する入力サンプルの重み付き総和を計算する
-
- アップスケールした入力サンプルをそのまま使うと、クッキリした出力画像を生成してくれない
- 入力サンプルとの近さによって、出力サンプルの品質が様々になってしまうため
- フレーム毎のjitteringパターンを用いると、数フレームごとに高品質サンプルがピクセルに入る
- 入力サンプルを履歴へ選択的にブレンドするための品質信頼度を導入する
-
- はの品質が低いときに履歴を維持するようなの間のバイアス値
- Unreal Engine 4ではを用いる[Unreal Engine 5.4 Documentation 20182018. Screen Percentage with Temporal Upscale. Unreal Engine 5.4 Documentation. https://dev.epicgames.com/documentation/en-us/unreal-engine/screen-percentage-with-temporal-upscale-in-unreal-engine?application_version=5.4.]
- 高解像度の累積バッファにサンプルをバラ撒くようなアルゴリズムの場合は、対象ピクセルサイズに一致するにボックスフィルタを用いているとみなせる[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.; Malan 2012Malan, H. 2012. Real-Time Global Illumination and Reflections in Dust 514. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2012/CCP/Malan-Dust_514_GI_reflections(Siggraph2012).pptx.; Aalto 2016Aalto, T. 2016. Towards Cinematic Quality, Anti-aliasing in Quantum Break. Game Developers Conference Europe. https://www.gdcvault.com/play/1023870/Towards-Cinematic-Quality-Antialiasing-in.]
- はの品質が低いときに履歴を維持するようなの間のバイアス値
-
Miscellaneous improvements
- 出力と比べて入力サンプルが疎らなので、履歴の検証や修正がTAAより厳しい
- 色範囲の計算で使う領域がピクセル換算で広くなるため、過推定が起こりやすくなる
- サブピクセルオフセットに基づいて狭めた近傍を計算する[Unreal Engine 5.4 Documentation 20182018. Screen Percentage with Temporal Upscale. Unreal Engine 5.4 Documentation. https://dev.epicgames.com/documentation/en-us/unreal-engine/screen-percentage-with-temporal-upscale-in-unreal-engine?application_version=5.4.]
- 直ぐ隣の2x2サンプルに履歴ピクセルをクランプする[Andersson et al. 2019Andersson, P., Nilsson, J., Salvi, M., Spjut, J. and Akenine-Möller, T. 2019. Temporally dense ray tracing. Proceedings of the conference on high-performance graphics 33–38. 10.2312/hpg.20191193. https://research.nvidia.com/sites/default/files/pubs/2019-07_Temporally-Dense-Ray//temporally-dense-ray-tracing.pdf.]
- Quantum Breakにおける時間的安定性やシャープネスの改善方法[Aalto 2016Aalto, T. 2016. Towards Cinematic Quality, Anti-aliasing in Quantum Break. Game Developers Conference Europe. https://www.gdcvault.com/play/1023870/Towards-Cinematic-Quality-Antialiasing-in.]
- ピクセルのモーション速度に応じて色範囲を適応的に緩める
- ほぼほぼ動かない物体では、積極的にクランプするよりもサンプルの累積を優先する
- 静的な場面ではうまくいくが、モーションベクトルに反映しない変化によってghostingが起こり得る
- temporal upsamplingをレイトレーシングに適用するときの所見[Andersson et al. 2019Andersson, P., Nilsson, J., Salvi, M., Spjut, J. and Akenine-Möller, T. 2019. Temporally dense ray tracing. Proceedings of the conference on high-performance graphics 33–38. 10.2312/hpg.20191193. https://research.nvidia.com/sites/default/files/pubs/2019-07_Temporally-Dense-Ray//temporally-dense-ray-tracing.pdf.]
- サンプリング順をモーションと相互作用させたときに品質の違いが顕著に現れた
- ピクセルごとに2つのサンプリング順序モードを動的に切り替える適応的スキームを提案している
Checkerboard rendering
- checkerboard rendering (CBR)はtemporal scaling技術の特殊な形
- PlayStation 4 ProやXBox One Xで4K解像度をターゲットにするためのツールとして使われてから人気になった[Leadbetter 2016Leadbetter, R. 2016. Inside PlayStation 4 Pro: How Sony made the first 4K games console. Eurogamer. https://www.eurogamer.net/digitalfoundry-2016-inside-playstation-4-pro-how-sony-made-a-4k-games-machine.]
- ジッタしたサンプルではなく、2x2ピクセル中の対角線にある2ピクセルを交互にシェーディングする
- チェッカーボードパターンでサンプルをシェーディングする技術
- 45度回転したフレームバッファ[de Carpentier and Ishiyama 2017de Carpentier, G. and Ishiyama, K. 2017. Decima Engine: Advances in Lighting and AA. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2017/index.html.]
- 2xMSAA[El Mansouri 2016El Mansouri, J. E. 2016. Rendering 'Rainbow Six | Siege'. Game Developers Conference. https://www.gdcvault.com/play/1022990/Rendering-Rainbow-Six-Siege.; Mcferron and Lake 2018Mcferron, T. and Lake, A. 2018. Checkerboard rendering for real-time upscaling on intel integrated graphics. https://www.intel.com/content/dam/develop/external/us/en/documents/checkerboard-rendering-for-real-time-upscaling-on-intel-integrated-graphics.pdf.]
- プログラマブルなサンプル位置[Drobot 2014Drobot, M. 2014. Hybrid reconstruction anti-aliasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/drobot/HRAA_notes_final.pdf.]
- ターゲット非依存なラスタライゼーション[Wihlidal 2017Wihlidal, G. 2017. 4K Checkerboard in Battlefield 1 and Mass Effect Andromeda. Game Developers Conference. https://media.gdcvault.com/gdc2017/Presentations/Wihlidal_4kCheckerboardIn.pdf.]
- CBRは時間的なデータを再利用して画像を生成する必要がある
- TAAでの再投影やサンプルの累積、履歴のクランプなどの技術をそのまま利用できる
- チェッカーボードパターンでのサンプルのdistributionは本質的に補間や近傍クランプに親和性がある
- サンプル配置が普通と違うので、CBRを実装するにはエンジンコードを大きく改修する必要がある
- temporal upscalingと同様に、アップスケーリングやアンチエイリアシングを単一パスで解く
- 最終レンダリングでsaw-toothパターンが現れないようにするためのポストプロセッシングパスが使われることもある[El Mansouri 2016El Mansouri, J. E. 2016. Rendering 'Rainbow Six | Siege'. Game Developers Conference. https://www.gdcvault.com/play/1022990/Rendering-Rainbow-Six-Siege.]
- 可視性情報をシェーディングから分離してターゲット解像度でサンプリングする専用ハードウェアのサポートがあったりする[Wihlidal 2017Wihlidal, G. 2017. 4K Checkerboard in Battlefield 1 and Mass Effect Andromeda. Game Developers Conference. https://media.gdcvault.com/gdc2017/Presentations/Wihlidal_4kCheckerboardIn.pdf.]
- temporal upsamplingと異なり、入力と出力のピクセル比が1:2に固定される
- 負荷を調整できるようにトラディショナルな解像度スケーリングが組み込まれることもある[Wihlidal 2017Wihlidal, G. 2017. 4K Checkerboard in Battlefield 1 and Mass Effect Andromeda. Game Developers Conference. https://media.gdcvault.com/gdc2017/Presentations/Wihlidal_4kCheckerboardIn.pdf.]
Challenges
Blurriness
- 結果がぼやける原因は主に2つ:リサンプリングによる誤差、履歴修正による誤差
Resampling blur
- 再投影先が小数点以下を含むと、履歴を取り出すにはリサンプリングが必要になる
- バイリニア・テクスチャフィルタリングを使うと、再投影先のピクセル中心の4近傍を補間することになる
- 高周波要素があまり残らないので、ぼやけた画像になる
- このフィルタリング誤差が累積して、わかりやすいボケボケの見た目が現れる
- このブラーは統計解析を用いて定量化できる[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- この解析によって、モーション速度に基づくの下限のクランプや高解像度の履歴バッファによって過度なブラーを回避するという戦略が導かれる
- レイトレーシング[Corso et al. 2017Corso, A. D., Salvi, M., Kolb, C., Frisvad, J. R., Lefohn, A. and Luebke, D. 2017. Interactive stable ray tracing. Proceedings of high performance graphics. 10.1145/3105762.3105769. https://luebke.us/publications/stable_rt_final.pdf.]などのregular sampled outputsの必要ないものでリサンプリングを回避するには、明示的なhole filling stepsとともにforward reprojectionが使える
- バイリニア・テクスチャフィルタリングを使うと、再投影先のピクセル中心の4近傍を補間することになる
- 高度なリサンプリングフィルタが再投影によるブラーを抑えるのに一般に使われたりもする
- バイリニアサンプリングの誤差を減らすためにBack and Forth Error Compensation and Correction (BFECC) [Dupont and Liu 2003Dupont, T. F. and Liu, Y. 2003. Back and forth error compensation and correction methods for removing errors induced by uneven gradients of the level set function. Journal of Computational Physics 190, 1, 311–324. 10.1016/S0021-9991(03)00276-6. https://yingjie.math.gatech.edu/publications/bf_CIR_lvs.pdf.; Netzel et al. 2012Netzel, R., Ament, M., Burch, M. and Weiskopf, D. 2012. Spectral analysis of higher-order and BFECC texture advection. Vision, modeling and visualization. 10.2312/PE/VMV/VMV12/087-094.]を使う[Drobot 2014Drobot, M. 2014. Hybrid reconstruction anti-aliasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/drobot/HRAA_notes_final.pdf.]
- Catmull-Rom[Catmull and Rom 1974Catmull, E. and Rom, R. 1974. A class of local interpolating splines. Computer aided geometric design 317–326. https://doi.org/10.1016/B978-0-12-079050-0.50020-5. https://www.sciencedirect.com/science/article/pii/B9780120790500500205.]などの3次補間するスプラインもリサンプリング関数としてよく使われる
- Unreal Engine 4 [Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.; Epic Games 20152015. The Unreal Engine 4 source code. https://www.unrealengine.com/en-US/ue-on-github.]やSMAA T2x [Jimenez 2016Jimenez, J. 2016. Filmic SMAA: Sharp morphological and temporal antialiasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. http://www.klayge.org/material/4_11/Filmic%20SMAA%20v7.pdf.]ではCatmull-Rom補間器の近似的な最適化バージョンを使っている
- 100フレーム分を累積した結果ではバイリニアよりかなり改善している
- トラディショナルな畳み込みフィルタより高品質なことを示したgeneralized filter kernelsの研究[Nehab and Hoppe 2014Nehab, D. and Hoppe, H. 2014. A fresh look at generalized sampling. Foundations and Trends® in Computer Graphics and Vision 8, 1, 1–84. 10.1561/0600000053. https://hhoppe.com/filtering.pdf.]
- この種の最新版[Sacht and Nehab 2015Sacht, L. and Nehab, D. 2015. Optimized quasi-interpolators for image reconstruction. IEEE Transactions on Image Processing 24, 12, 5249–5259. 10.1109/TIP.2015.2478385. https://webdoc.sub.gwdg.de/ebook/serien/e/IMPA_A/753.pdf.]は100フレーム分で見た目にほぼほぼlosslessな結果を生成する
- generalized filtersは線形な再帰的フィルタパスへと続く1、2、3次いずれかのリサンプリングフィルタとして実装される
- 並列な再帰的フィルタフリングを用いてGPUで効率的に実装できる[Nehab and Maximo 2016Nehab, D. and Maximo, A. 2016. Parallel recursive filtering of infinite input extensions. ACM Trans. Graph. 35, 6. 10.1145/2980179.2980222. https://w3.impa.br/~diego/publications/NehMax16.pdf.]
History rectification-induced blur
- ピクセルデータが欠けてしまった場合、過剰に小さくなった色範囲で履歴が修正されてしまう
- history rectificationは各ピクセルの近傍サンプルに表面色の色域すべてが含まれていると仮定するが、詳細な要素を持つ場合にはしばしば満たされない
- フレームのサンプルは疎らなので、詳細な特徴を扱うには3x3近傍のいずれかにそれが含まれていて欲しいけれども
- ghostingなどのアーティファクトの対処を優先して、ディテールの保持を犠牲にすることがままある
- 鮮鋭さを取り戻そうとして鮮鋭化フィルタをかけるレンダラがある[Drobot 2014Drobot, M. 2014. Hybrid reconstruction anti-aliasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/drobot/HRAA_notes_final.pdf.; Xu 2016Xu, K. 2016. Temporal Antialiasing in Uncharted 4. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2016/s16_Ke.pptx.; Wihlidal 2017Wihlidal, G. 2017. 4K Checkerboard in Battlefield 1 and Mass Effect Andromeda. Game Developers Conference. https://media.gdcvault.com/gdc2017/Presentations/Wihlidal_4kCheckerboardIn.pdf.]
- 色域外の色を生成しないようにする適応的鮮鋭化フィルタ[Kramer 2019Kramer, L. 2019. FidelityFX CAS. https://web.archive.org/web/20191023010209/https://gpuopen.com/gaming-product/fidelityfx/.]
Ghosting and temporal lag
- ghostingはスクリーン空間で時間的にデータを再利用する技術で見られるアーティファクトの一般的な形
- 新たに映り始めた領域で、無効な履歴が現フレームから完全に取り除かれなかったときに起こる
- または、モーションベクトルが正しくないときに無効な履歴を引っ張ってきてしまうときに起こる
- 半透明やパーティクル、反射などで発生する
- モーションがなく、シェーディングが高速に変化して履歴が古くなるときに、ボケたり混ざった見た目になることを、temporal lagと呼ぶ
- 高コントラストの境界では色範囲が大きくなりすぎて履歴が適切に処理されなくなる
- ghostingやtemporal lagはhistory rectificationが上手く機能していれば回避できる
- コントラストの高い物体の境界近くではあまりうまく行かない
- ピクセルの色域を表現するのに向かない大きなバウンディングボックスが求まる
- すると、本来無効であるべき履歴が素通りしてしまう
- ghostingアーティファクトの回避手法
- Unreal Engine 4の”responsive AA”フラグ[Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.]
- フラグを付けた半透明マテリアルでステンシルバッファに書き込む
- フラグを立てたところでは、を増やして履歴が素早く吐き出されるようにする
- Uncharted 4[Xu 2016Xu, K. 2016. Temporal Antialiasing in Uncharted 4. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2016/s16_Ke.pptx.]
- ghostingを起こしやすいマテリアルをmask outする
- なめらかでアンチエイリアスされたエッジでのghosting trailを回避するために膨張したステンシルマスクを使う
- rejectionとrectificationを組み合わせる[Jimenez 2016Jimenez, J. 2016. Filmic SMAA: Sharp morphological and temporal antialiasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. http://www.klayge.org/material/4_11/Filmic%20SMAA%20v7.pdf.]
- 深度比較に失敗した履歴を強制的に吐き出す
- INSIDE[Fuglsang Pedersen 2016Fuglsang Pedersen, L. J. 2016. Temporal Reprojection Anti-Aliasing in INSIDE. Game Developers Conference. https://gdcvault.com/play/1022970/Temporal-Reprojection-Anti-Aliasing-in.]
- モーション速度が増えるにつれて、TAA出力をmotion-blurred pixelsに遷移させる
- Unreal Engine 4の”responsive AA”フラグ[Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.]
- 反射での再投影の間違いを修正する方法
- 平面的に反射する表面で正しいベクトルを得る手法[Xu 2016Xu, K. 2016. Temporal Antialiasing in Uncharted 4. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2016/s16_Ke.pptx.]
- 影[Leimkühler et al. 2017Leimkühler, T., Seidel, H.-P. and Ritschel, T. 2017. Minimal warping: Planning incremental novel-view synthesis. Computer Graphics Forum 36, 4, 1–14. 10.1111/cgf.13219. https://resources.mpi-inf.mpg.de/MinimalWarping/minimal_warping_paper.pdf.]や屈折・反射[Lochmann et al. 2014Lochmann, G., Reinert, B., Ritschel, T., Müller, S. and Seidel, H.-P. 2014. Real-time reflective and refractive novel-view synthesis. Vision, modeling & visualization. 10.2312/vmv.20141270. https://resources.mpi-inf.mpg.de/SpecularWarping/SpecularWarping.pdf.; Zimmer et al. 2015Zimmer, H., Rousselle, F., Jakob, W., Wang, O., Adler, D., Jarosz, W., Sorkine-Hornung, O. and Sorkine-Hornung, A. 2015. Path-space motion estimation and decomposition for robust animation filtering. Computer Graphics Forum (Proceedings of EGSR) 34, 4. 10/f7mb34. https://cs.dartmouth.edu/~wjarosz/publications/zimmer15path.pdf.; Lochmann et al. 2016Lochmann, G., Reinert, B., Buchacher, A. and Ritschel, T. 2016. Real-time novel-view synthesis for volume rendering using a piecewise-analytic representation. Vision, modeling & visualization. 10.2312/vmv.20161346. https://resources.mpi-inf.mpg.de/VolumeReprojection/VolumeReprojectionCompressed.pdf.]での歪みに焦点を当てた関連技術
- correspondenceを追跡するデータ構造を追加する
Temporal instability
- jitteringが引き起こす色の変化が誤って無効化されたりクランプされたりすることもある
- TAAは時間的な不安定性を低減させることが主目的のひとつ
- カメラが静止しているときでもビューポートをjitteringするので、シェーディングは常に変化する
- 通常は、履歴の累積によってこれらの変化は吸収されるが、rejectionやrectificationがそれを阻害する場合がある
- 結果として、累積が無効化されるような状態になり、モアレなどが発生する
- rectificationを緩めたりすれば回避できるが、そうすると今度はghostingやtemporal lagが起こりやすくなる
- 入力が無効な履歴を見つけるのに十分な情報を持っていない場合に問題が起こる
- 有効な履歴が無効であるとされてしまうと、ブラーやtemporal instabilityが発生する
- 無効な履歴が有効であるとされてしまうと、ghostingやtemporal lagが発生する
- temporal upsamplingだと、入力が通常のTAAよりガッツリめにundersampledされるので、このアーティファクトが目立ちがち
- 別のサンプルパターン[Drobot 2014Drobot, M. 2014. Hybrid reconstruction anti-aliasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/drobot/HRAA_notes_final.pdf.]やselective reshading[Schied et al. 2018Schied, C., Peters, C. and Dachsbacher, C. 2018. Gradient estimation for real-time adaptive temporal filtering. Proc. ACM Comput. Graph. Interact. Tech. 1, 2. 10.1145/3233301. https://cg.ivd.kit.edu/publications/2018/adaptive_temporal_filtering/adaptive_temporal_filtering.pdf.]を使ったりして軽減できるけど、これらは主流のTAA技術との互換性がない
- 特定のシナリオ下でtemporal instabilityを低減し得るヒューリスティックなアルゴリズムがある
- フレーム間でモーションの一貫性をチェックする[Sousa 2011Sousa, T. 2011. Anti-Aliasing Methods in CryENGINE 3. Filtering Approaches for Real-time Anti-aliasing course. ACM SIGGRAPH. https://www.iryoku.com/aacourse/downloads/13-Anti-Aliasing-Methods-in-CryENGINE-3.pdf.; Drobot 2014Drobot, M. 2014. Hybrid reconstruction anti-aliasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/drobot/HRAA_notes_final.pdf.; El Mansouri 2016El Mansouri, J. E. 2016. Rendering 'Rainbow Six | Siege'. Game Developers Conference. https://www.gdcvault.com/play/1022990/Rendering-Rainbow-Six-Siege.]
- より多くの履歴を維持するようクランプをバイアスするための追加の入力を生成する
- ただし、シェーディングが安定的であるとわかっている場合に限る
- クランプが起こった後に時間的な変化を緩やかにするために、履歴がnear clampingであるときにを減らす[Karis 2014Karis, B. 2014. High Quality Temporal Supersampling. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://de45xmedrsdbp.cloudfront.net/Resources/files/TemporalAA_small-59732822.pdf.]
- フレーム間の空間的なコントラストの変化を追跡することでflickeringアーティファクトの指標とする[Jimenez 2016Jimenez, J. 2016. Filmic SMAA: Sharp morphological and temporal antialiasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. http://www.klayge.org/material/4_11/Filmic%20SMAA%20v7.pdf.]
- flickeringが見つかったら収束時間を増加させる
- フレーム間でモーションの一貫性をチェックする[Sousa 2011Sousa, T. 2011. Anti-Aliasing Methods in CryENGINE 3. Filtering Approaches for Real-time Anti-aliasing course. ACM SIGGRAPH. https://www.iryoku.com/aacourse/downloads/13-Anti-Aliasing-Methods-in-CryENGINE-3.pdf.; Drobot 2014Drobot, M. 2014. Hybrid reconstruction anti-aliasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/drobot/HRAA_notes_final.pdf.; El Mansouri 2016El Mansouri, J. E. 2016. Rendering 'Rainbow Six | Siege'. Game Developers Conference. https://www.gdcvault.com/play/1022990/Rendering-Rainbow-Six-Siege.]
Undersampling artifacts
- TAAの仕組みの都合上、サンプル数が少ない場所ではエイリアシングが見えてしまうことがある
- カメラカットの切り替えでよく見られる
- カメラに写り始めた場所や高速にシェーディングが変化する場所でアンダーサンプリング・アーティファクトが起こりやすい
- アンダーサンプリングによるアーティファクトを緩和するには、その範囲で空間的な再利用を増やす
- 新しいサンプルにローパスフィルタをかける[Epic Games 20152015. The Unreal Engine 4 source code. https://www.unrealengine.com/en-US/ue-on-github.; Xu 2016Xu, K. 2016. Temporal Antialiasing in Uncharted 4. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2016/s16_Ke.pptx.]
- raw samplesにMLAAのような空間的アンチエイリアシングをかける[Jimenez et al. 2012Jimenez, J., Echevarria, J. I., Sousa, T. and Gutierrez, D. 2012. SMAA: Enhanced subpixel morphological antialiasing. Computer Graphics Forum 31, 2pt1, 355–364. 10.1111/j.1467-8659.2012.03014.x. https://www.iryoku.com/smaa/downloads/SMAA-Enhanced-Subpixel-Morphological-Antialiasing.pdf.; Drobot 2014Drobot, M. 2014. Hybrid reconstruction anti-aliasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2014/drobot/HRAA_notes_final.pdf.; Jimenez 2016Jimenez, J. 2016. Filmic SMAA: Sharp morphological and temporal antialiasing. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. http://www.klayge.org/material/4_11/Filmic%20SMAA%20v7.pdf.; de Carpentier and Ishiyama 2017de Carpentier, G. and Ishiyama, K. 2017. Decima Engine: Advances in Lighting and AA. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2017/index.html.; Kim 2018Kim, S. 2018. Temporally Stable Conservative Morphological Anti-Aliasing (TSCMAA). https://www.intel.com/content/dam/develop/external/us/en/documents/tscmaa-codesample-v1.pdf.]
- レイトレーシングを適応的に利用して、raster samplesが疎らな領域でより多くのサンプルを集める[Marrs et al. 2018Marrs, A., Spjut, J., Gruen, H., Sathe, R. and McGuire, M. 2018. Adaptive temporal antialiasing. Proceedings of the conference on high-performance graphics. 10.1145/3231578.3231579. https://research.nvidia.com/sites/default/files/pubs/2018-08_Adaptive-Temporal-Antialiasing/adaptive-temporal-antialiasing-preprint.pdf.]
- 映り始めた領域のシェーディングを適応的にスーパーサンプリングして、シェーディングのエイリアシングを低減する[Yang et al. 2009Yang, L., Nehab, D., Sander, P. V., Sitthi-amorn, P., Lawrence, J. and Hoppe, H. 2009. Amortized supersampling. ACM Trans. Graph. 28, 5, 1–12. 10.1145/1618452.1618481. https://hhoppe.com/supersample.pdf.]
- 実践では、適応的スーパーサンプリングは、アルファテストのような、ピクセルシェーダ内の高価でないプロシージャで使われたりする[Wihlidal 2017Wihlidal, G. 2017. 4K Checkerboard in Battlefield 1 and Mass Effect Andromeda. Game Developers Conference. https://media.gdcvault.com/gdc2017/Presentations/Wihlidal_4kCheckerboardIn.pdf.]
Performance
- TAAはコンピュートシェーダかフルスクリーンのピクセルシェーダで実装されるのが普通
- 画像空間の技術なので、解像度に比例したコストがかかり、基本的に安定で、シーンに依存しない
- 対して、MSAAのコストはジオメトリの密度や深度の複雑さ、マルチサンプル数、ハードウェア実装の特性によって変化する
- そう考えると、ローエンドではMSAAの方が安価になることもある
- temporal upsamplingはパフォーマンス上のオーバーヘッドを発生させることがある
- 画像ベースのアップサンプリングフィルタと異なり、ポストプロセッシング前に行われる[Unreal Engine 5.4 Documentation 20182018. Screen Percentage with Temporal Upscale. Unreal Engine 5.4 Documentation. https://dev.epicgames.com/documentation/en-us/unreal-engine/screen-percentage-with-temporal-upscale-in-unreal-engine?application_version=5.4.]
- temporal upsamplingがアンチエイリアシングも兼ねるため
- 結果として、ポストプロセッシングをアップサンプリング後の解像度でやることになる
- 画像ベースのアップサンプリングフィルタと異なり、ポストプロセッシング前に行われる[Unreal Engine 5.4 Documentation 20182018. Screen Percentage with Temporal Upscale. Unreal Engine 5.4 Documentation. https://dev.epicgames.com/documentation/en-us/unreal-engine/screen-percentage-with-temporal-upscale-in-unreal-engine?application_version=5.4.]
Other related techniques
- TAAを活用または拡張する技術
Variable rate shading
- TAAの時空間フィルタを使うことで、VRSで一律に塗られたピクセルの詳細を再構築する
- 外縁部でcoarse pixel shadingを行うでfoveated renderingを高速化する[Patney et al. 2016Patney, A., Salvi, M., Kim, J., Kaplanyan, A., Wyman, C., Benty, N., Luebke, D. and Lefohn, A. 2016. Towards foveated rendering for gaze-tracked virtual reality. ACM Trans. Graph. 35, 6. 10.1145/2980179.2980246. https://cwyman.org/papers/siga16_gazeTrackedFoveatedRendering.pdf.]
- variance clippingでアンダーサンプリングによるアーティファクトに対処する
- TAAをcoarse pixel shadingに適応させる[Xiao et al. 2018Xiao, K., Liktor, G. and Vaidyanathan, K. 2018. Coarse pixel shading with temporal supersampling. Proceedings of the ACM SIGGRAPH symposium on interactive 3D graphics and games. 10.1145/3190834.3190850. https://www.intel.com/content/www/us/en/developer/articles/technical/coarse-pixel-shading-with-temporal-supersampling.html.]
- ブルーノイズの特性をもつvisibilityおよびshadingサンプルの分布を生成するjittering sequenceを採用する
- エッジ周辺で色の分散を適応的にrescalingすることで、variance clippingで発生するghostingを減らす
- エッジ周辺では表面が重なってたくさんのシェーディングサンプルができる
Temporal denising
- 分散低減を図る方法として、TAAのような時間的な再利用アルゴリズムが追加または置換えとして使える
- ソフトシャドウ[Nehab et al. 2007Nehab, D., Sander, P. V., Lawrence, J., Tatarchuk, N. and Isidoro, J. R. 2007. Accelerating real-time shading with reverse reprojection caching. Proceedings of the 22nd ACM SIGGRAPH/EUROGRAPHICS symposium on graphics hardware 25–35. https://gfx.cs.princeton.edu/pubs/Nehab_2007_ARS/NehEtAl07.pdf.; Scherzer et al. 2009Scherzer, D., Schwärzler, M., Mattausch, O. and Wimmer, M. 2009. Real-time soft shadows using temporal coherence. Advances in visual computing 13–24. 10.1007/978-3-642-10520-3_2. https://scispace.com/pdf/real-time-soft-shadows-using-temporal-coherence-1bgxk2vhhs.pdf.]
- SSAO[Mattausch et al. 2010Mattausch, O., Scherzer, D. and Wimmer, M. 2010. High-quality screen-space ambient occlusion using temporal coherence. Computer Graphics Forum 29, 8, 2492–2503. 10.1111/j.1467-8659.2010.01784.x. https://www.cg.tuwien.ac.at/research/publications/2010/mattausch-2010-tao/.; Bavoil and Andersson 2012Bavoil, L. and Andersson, J. 2012. Stable SSAO in Battlefield 3 with Selective Temporal Filtering. Game Developers Conference. https://d29g4g2dyqv443.cloudfront.net/sites/default/files/akamai/gamedev/files/gdc12/GDC12_Bavoil_Stable_SSAO_In_BF3_With_STF.pdf.]
- SSR[Stachowiak 2015Stachowiak, T. 2015. Stochastic Screen-Space Reflections. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2015/Stochastic%20Screen-Space%20Reflections.pptx.]
- GI[Xu 2016Xu, K. 2016. Temporal Antialiasing in Uncharted 4. Advances in Real-Time Rendering in Games course. ACM SIGGRAPH. https://advances.realtimerendering.com/s2016/s16_Ke.pptx.]
- その他の時間的ディザリング効果[Wyman and McGuire 2017Wyman, C. and McGuire, M. 2017. Hashed alpha testing. Proceedings of the 21st ACM SIGGRAPH symposium on interactive 3D graphics and games. 10.1145/3023368.3023370. https://cwyman.org/papers/i3d17_hashedAlpha.pdf.]
- 再投影ベースのデータ再利用はレイトレーシングでも使われる
- denoiseにTAA式のテンポラルフィルタを使う[Schied et al. 2017Schied, C., Kaplanyan, A., Wyman, C., Patney, A., Chaitanya, C. R. A., Burgess, J., Liu, S., Dachsbacher, C., Lefohn, A. and Salvi, M. 2017. Spatiotemporal variance-guided filtering: real-time reconstruction for path-traced global illumination. Proceedings of high performance graphics. 10.1145/3105762.3105770. https://cg.ivd.kit.edu/publications/2017/svgf/svgf_preprint.pdf.; Mara et al. 2017Mara, M., McGuire, M., Bitterli, B. and Jarosz, W. 2017. An efficient denoising algorithm for global illumination. Proceedings of high performance graphics. 10.1145/3105762.3105774. https://casual-effects.com/research/Mara2017Denoise/Mara2017Denoise.pdf.; Schied et al. 2018Schied, C., Peters, C. and Dachsbacher, C. 2018. Gradient estimation for real-time adaptive temporal filtering. Proc. ACM Comput. Graph. Interact. Tech. 1, 2. 10.1145/3233301. https://cg.ivd.kit.edu/publications/2018/adaptive_temporal_filtering/adaptive_temporal_filtering.pdf.; Koskela et al. 2019Koskela, M., Immonen, K., Mäkitalo, M., Foi, A., Viitanen, T., Jääskeläinen, P., Kultala, H. and Takala, J. 2019. Blockwise multi-order feature regression for real-time path-tracing reconstruction. ACM Trans. Graph. 38, 5. 10.1145/3269978. https://webpages.tuni.fi/foi/papers/Koskela-TOG-2019-Blockwise_Multi_Order_Feature_Regression_for_Real_Time_Path_Tracing_Reconstruction.pdf.; Liu et al. 2019Liu, E., Llamas, I., Cañada, J. and Kelly, P. 2019. Cinematic rendering in UE4 with real-time ray tracing and denoising. Ray tracing gems: High-quality and real-time rendering with DXR and other apis 289–319. 10.1007/978-1-4842-4427-2_19. https://link.springer.com/content/pdf/10.1007/978-1-4842-4427-2_19.pdf.; Willberger et al. 2019Willberger, T., Musterle, C. and Bergmann, S. 2019. Deferred hybrid path tracing. Ray tracing gems: High-quality and real-time rendering with DXR and other apis 475–492. 10.1007/978-1-4842-4427-2_26. https://www.realtimerendering.com/raytracinggems/unofficial_RayTracingGems_v1.9.pdf#0004286911.INDD%3Ab978-1-4842-4427-2_26%3A142.; Smal and Aizenshtein 2019Smal, N. and Aizenshtein, M. 2019. Real-time global illumination with photon mapping. Ray tracing gems: High-quality and real-time rendering with DXR and other apis 409–436. 10.1007/978-1-4842-4427-2_24. https://link.springer.com/content/pdf/10.1007/978-1-4842-4427-2_24.pdf.; Barré-Brisebois et al. 2019Barré-Brisebois, C., Halén, H., Wihlidal, G., Lauritzen, A., Bekkers, J., Stachowiak, T. and Andersson, J. 2019. Hybrid rendering for real-time ray tracing. Ray tracing gems: High-quality and real-time rendering with DXR and other apis 437–473. 10.1007/978-1-4842-4427-2_25. https://link.springer.com/content/pdf/10.1007/978-1-4842-4427-2_25.pdf.]
- secondary shading effects用の正確なモーションベクトルを求めるのが難しい
- [Zimmer et al. 2015Zimmer, H., Rousselle, F., Jakob, W., Wang, O., Adler, D., Jarosz, W., Sorkine-Hornung, O. and Sorkine-Hornung, A. 2015. Path-space motion estimation and decomposition for robust animation filtering. Computer Graphics Forum (Proceedings of EGSR) 34, 4. 10/f7mb34. https://cs.dartmouth.edu/~wjarosz/publications/zimmer15path.pdf.]
- manifold explorationの一般化バージョンを用いて、鏡面反射後に見える物体のモーションベクトルを推定する
- 画像ベースのoptical flowを用いて、放射照度成分で複雑なモーションを推定する
Machine learning-based methods
- 近傍クランプ法で使う色範囲を計算するのに最適な畳込み重みを学習するstochastic gradient descentを用いたTAA画像品質の向上[Salvi 2017Salvi, M. 2017. Deep Learning: The Future of Real-Time Rendering?. Open Problems in Real-Time Rendering course. ACM SIGGRAPH. https://openproblems.realtimerendering.com/s2017/05-msalvi-dl-future-of-rendering.pptx.]
- denoising
- 時間的な安定性を改善するため、deep U-Net構造にrecurrent connectionsを導入する[Christensen et al. 2018Christensen, P., Kensler, A. and Kilpatrick, C. 2018. Progressive multi-jittered sample sequences. Computer Graphics Forum 37, 4, 21–33. 10.1111/cgf.13472. https://graphics.pixar.com/library/ProgressiveMultiJitteredSampling/paper.pdf.]
- kernel-predicting networkベースのテンポラルフィルタ[Vogels et al. 2018Vogels, T., Rousselle, F., Mcwilliams, B., Röthlin, G., Harvill, A., Adler, D., Meyer, M. and Novák, J. 2018. Denoising with kernel prediction and asymmetric loss functions. ACM Trans. Graph. 37, 4. 10.1145/3197517.3201388. https://graphics.pixar.com/library/MLDenoising2018/paper.pdf.]
Conclusion and future work
(省略)
Acknowledgement
(省略)