スーパーサンプリング(SuperSampling)は、コンピュータゲームや画像生成プログラムにおいて、エイリアシング(
ジャギー)を軽減するために用いられるアンチエイリアシング技術です。エイリアシングは、コンピュータ画面の
ピクセルが原因で、斜めの線や曲線が階段状に見えてしまう現象です。これは、コンピュータの画面が小さな正方形である
ピクセルで構成され、それらが同じサイズで単色であるために発生します。
スーパーサンプリングの目的は、この
ジャギーを減少させ、より滑らかな画像を生成することです。具体的には、
ピクセル内の複数箇所で色サンプルを取得し、それらの平均値を計算することで、最終的な
ピクセルの色を決定します。この処理は、表示解像度よりも高い解像度で画像をレンダリングし、その結果を縮小することで実現されます。つまり、高解像度でレンダリングされた情報を圧縮し、最終的な表示解像度でより滑らかなエッジを実現します。画像は、線が
ピクセルの集合としてしか表示できないため、画面に対し完全に水平または垂直でない限り、ギザギザに見えてしまう問題を解決します。
スーパーサンプリングの原理
スーパーサンプリングは、表示解像度よりもはるかに高い解像度でレンダリングを行い、その結果を縮小することで、より滑らかな画像を得る技術です。これにより、オブジェクトのエッジ部分の
ピクセル遷移が滑らかになり、
ジャギーが目立たなくなります。サンプル数が多いほど、出力画像の品質は向上しますが、計算コストも増加します。この考え方は写真にも応用可能で、最終成果物の解像度制限がある場合に、高解像度で撮影した画像を縮小することで、より高品質な写真を作成できます。
エイリアシングとスーパーサンプリング
エイリアシングは、2D画像において、
モアレパターンや
ピクセル化されたエッジとして現れます。これを抑制するためには、アンチエイリアシングフィルターの適用と、ナイキストレート以上の適切な空間サンプリングが必要です。しかし、このアプローチは計算コストが高いため、スーパーサンプリングのような、より計算コストの低い近似手法が開発されました。
スーパーサンプリングの方法
スーパーサンプリングは、使用するメモリ量が多く、
ビデオカードのメモリ帯域幅を大きく必要とするため、計算コストが高くなります。この問題を緩和するために、アダプティブスーパーサンプリングという手法が用いられることがあります。これは、オブジェクトのエッジ部分の
ピクセルのみをスーパーサンプリングすることで、計算量を削減する方法です。
具体的には、初期段階では各
ピクセルで少数のサンプルを取得し、それらの値が類似している場合は、それらのみを使用して色を決定します。値が大きく異なる場合は、より多くのサンプルを取得します。この方法により、必要な場合にのみより多くのサンプルを計算するため、パフォーマンスが向上します。
スーパーサンプリングパターン
ピクセル内でサンプルを取得する際には、その位置を決定する必要があります。以下は、一般的に使用されるいくつかの方法です。
- - グリッド: ピクセルをサブピクセルに分割し、それぞれの中心からサンプルを取得します。実装は簡単ですが、サンプリングの性質上、サブピクセル数が少ないとエイリアシングが残る可能性があります。
- - ランダム: サンプル位置をランダムに決定します。グリッドサンプリングの規則性を避けることができますが、サンプルの偏りが生じる可能性があります。
- - ポアソンディスクサンプリング: サンプルをランダムに配置しつつ、互いに近すぎないようにします。これにより、均一でランダムな分布が得られますが、計算コストが高くなる場合があります。
- - ジッター: グリッドサンプリングの改良版で、サブピクセル内のランダムな位置からサンプルを取得します。これにより、グリッドパターンによるエイリアシングを緩和できます。
- - 回転グリッド: 2x2のグリッドレイアウトを使用し、サンプルパターンを回転させることで、エイリアシングの低減を図ります。最適な回転角は約26.6°です。
関連技術
スーパーサンプリングに関連する技術としては、オーバーサンプリング、マルチサンプルアンチエイリアシング(MSAA)、Quincunx、
レイトレーシングなどがあります。また、グラフィックスカードやGPU、ゲームエンジンなどのハードウェアやソフトウェアも関連があります。さらに、画像スケーリングやディープラーニングを用いたスーパーサンプリング技術も存在します。
これらの技術は、コンピュータグラフィックスにおいて、より高品質な画像を生成するために重要な役割を果たしています。