Rasterization — その概要、段階、動作原理

著者: IT Sectr 公開日: 2026-06-11 読了時間: 10 分

Rasterization(ラスタライゼーション)は、3次元プリミティブ(三角形、線、点)のベクター記述を、画面に表示するためのピクセル(フラグメント)のセットに変換するプロセスです。Khronos Group, 2025によれば、ラスタライゼーションはグラフィックスパイプラインの自動的(非プログラマブル)な段階であり、Vertex ShaderとFragment Shaderの間に位置します。Rasterizationは、画面のどのピクセルがどの三角形に属するかを決定し、各フラグメントの補間された属性を計算します。

重要ポイント

  • Rasterization — ベクタープリミティブをラスター画像(ピクセル)に変換。
  • Scanline conversion — 三角形によるピクセルカバレッジを決定する基本アルゴリズム。
  • 属性補間 — 各フラグメントの色、テクスチャ座標、法線を計算。
  • MSAA — マルチサンプリング。ラスタライゼーション時のジャギーエッジ(エイリアシング)を平滑化。
  • パフォーマンス ラスタライゼーションのパフォーマンスは三角形の数と画面解像度に依存。

ラスタライゼーションとは?

Rasterizationは、幾何学的プリミティブ(三角形、線)をFragment Shaderによる後続処理のためのフラグメントのセットに変換するグラフィックスパイプラインの段階です。入力データは、画面座標での三角形の頂点とその属性(色、法線、UV)です。出力は、補間された属性を持つフラグメントのセットです。

プログラマブルシェーダー(Vertex ShaderとFragment Shader)とは異なり、ラスタライゼーションは固定(非プログラマブル)の段階です。開発者はラスタライゼーションアルゴリズムを変更できませんが、そのパラメーター(カリングモード、線幅、ポリゴンオフセット、マルチサンプリング)を制御できます。

リアルタイムグラフィックスにおけるラスタライゼーションの役割

最新のリアルタイムグラフィックスのほぼすべて — ゲーム、UI、AR/VR — がラスタライゼーションを使用しています。これは最もパフォーマンスの高いレンダリング方法であり、60 FPSで1フレームあたり数百万の三角形を処理できます。GPUラスタライザーは、専門のROP(レンダー出力ユニット)ブロックを介して数千の三角形を同時に並列処理できるよう最適化されています。

ラスタライゼーションの仕組み

三角形のラスタライゼーションは、Vertex Shaderが頂点を画面座標に変換した後に開始されます。GPUは三角形の3つの頂点を取得し、その三角形の内側にある画面ピクセルを判定します。

三角形ラスタライゼーションの段階

プロセスには3つの連続したステップが含まれます:三角形のバウンディングボックスをピクセル単位で決定 — バウンディングボックス内の各ピクセルが三角形に属するか(エッジ関数)をチェック — カバーされた各ピクセルの補間属性(重心座標)を計算。エッジ関数は、点が三角形の辺のどちら側にあるかを判定する線形方程式です。

段階説明結果
クリッピングビューポート境界外の三角形をクリップ可視プリミティブ
ビューポート変換画面座標への変換ピクセル座標
三角形セットアップエッジ関数とバウンディングボックスの計算ラスタライゼーションパラメーター
フラグメント生成カバレッジテストと補間フラグメント + 属性

ラスタライゼーションアルゴリズム

Rasterizationはさまざまなアルゴリズムで実装でき、それぞれパフォーマンスと品質のトレードオフがあります。最新のGPUは複数のアプローチを組み合わせて使用します。

スキャンラインアルゴリズム

初期のGPU向けに開発された古典的なラスタライゼーションアルゴリズム。三角形はラインごと(スキャンライン)に処理されます:画面の各ラインについて三角形の入口点と出口点が決定され、その間のすべてのピクセルが塗りつぶされます。スキャンライン変換は大きな三角形には効率的ですが、任意の形状の三角形には複雑なロジックが必要です。

ハーフスペース(エッジ関数)法

最新のGPUはハーフスペースラスタライゼーション法を使用します:三角形の各辺についてエッジ関数が計算されます — 片側で正、反対側で負となる線形方程式です。3つのエッジ関数すべてが正であれば、ピクセルは三角形に属します。ハーフスペースラスタライゼーションは並列化が容易で、SIMD GPUアーキテクチャに適しています。

タイルベースラスタライゼーション(TBR)

モバイルGPU(Qualcomm Adreno、ARM Mali)はタイルベースレンダリング(TBR)を使用します。画面は小さなタイル(16x16または32x32ピクセル)に分割され、ラスタライゼーションはタイルごとに個別に実行されます。これにより、フレームバッファを高速なローカルメモリ(タイルメモリ)に格納してメモリアクセスを最小限に抑えます。TBRは電力消費を削減し、これはモバイルデバイスにとって重要です。

ラスタライゼーション vs Ray Tracing

Rasterizationとレイトレーシングは、3Dグラフィックスレンダリングへの2つの根本的に異なるアプローチです。ラスタライゼーションはリアルタイムアプリケーションで支配的であり、レイトレーシングはオフラインレンダリングで使用され、徐々にリアルタイム(RTX互換GPU)に浸透しています。

パラメーターRasterizationRay Tracing
原理三角形 → フラグメント光線 → シーン交差
速度非常に高速(数百万三角形/フレーム)低速(数千光線/フレーム)
品質追加手法が必要(影、反射)物理的に正しい影と反射
モバイルGPU標準的手法限定的サポート(A17 Pro、Snapdragon Gen 3)
消費電力

MSAAとラスタライゼーションにおけるアンチエイリアシング

ラスタライゼーションではエイリアシングの問題が発生します — 三角形の境界でのジャギーエッジ(ギザギザ)。これはピクセルが離散的であり、三角形で部分的にカバーできないために発生します。エイリアシングに対処するためにマルチサンプリング(MSAA)が使用されます。

MSAAの仕組み

MSAA(マルチサンプルアンチエイリアシング)は、増加したサンプリングレート(2x、4x、8x)でラスタライゼーションを実行します。ピクセルあたり1つのサンプルの代わりに、複数のサブサンプルが使用され、それぞれが三角形カバレッジについてテストされます。MSAA 4xはピクセルあたり4つのサブサンプルを処理し、レンダリング解像度を完全に上げることなく顕著なエッジ平滑化を提供します。

FXAAおよびその他のポストプロセス手法

MSAAとは異なり、ポストプロセスアンチエイリアシング手法(FXAA、SMAA、TAA)はラスタライゼーション後に最終画像を分析して機能します。FXAA(高速近似アンチエイリアシング)は画像のエッジを検出し、平滑化のためにぼかしを適用します。MSAAよりも大幅に高速ですが、品質は低くなります。

GPUでのラスタライゼーションと最適化

Rasterizationは最新のGPUでは専門のハードウェアブロック — ROP(レンダー出力ユニット)によって実行されます。ROPの数はフィルレート(GPUが1秒間に処理できるピクセル数)に直接影響します。

ラスタライゼーションパフォーマンスの要因

  • 三角形数 — 1フレームあたりの三角形の数。各三角形にはセットアップとエッジテストのオーバーヘッドが必要。
  • フィルレート — ROPブロックが1秒間に処理するピクセル数。GPUのクロック周波数とROPの数に依存。
  • オーバードロー — 三角形の重なりによる同一ピクセルの繰り返しラスタライゼーション。オブジェクトを深度でソートして最適化。

モバイルGPU向けラスタライゼーション最適化

モバイルGPU(タイルベースレンダリング)にとって重要な要素には以下が含まれます:アーリーZリジェクションによるオーバードローの最小化、バックフェイスカリングによる非表示三角形の除去、および他のオブジェクトに完全に隠れた三角形を排除するオクルージョンカリング

よくある質問

ラスタライゼーションを簡単に言うと何ですか?

ラスタライゼーションは、三角形を画面のピクセルに変換するプロセスです。GPUは3次元の三角形を取得し、それがカバーする画面ピクセルを決定して、着色のためにFragment Shaderに渡します。

ラスタライゼーションとレイトレーシングの違いは何ですか?

ラスタライゼーションは三角形を画面に投影し、ピクセルカバレッジを決定します(非常に高速)。レイトレーシングはカメラから光線を発し、ジオメトリとの交差をチェックします(物理的により正確ですが、大幅に低速です)。

ラスタライゼーションでアンチエイリアシングが必要な理由は?

ラスタライゼーションでは、ピクセルは完全に三角形に属するか属さないかのいずれかです — そのためジャギーエッジ(エイリアシング)が発生します。MSAAはピクセルあたり複数のサブサンプルを使用してエッジを平滑化し、FXAAは最終画像にフィルターを適用します。

ラスタライゼーション段階をプログラムできますか?

いいえ、ラスタライゼーションはグラフィックスパイプラインの固定段階です。開発者はアルゴリズムを変更できませんが、設定(カリング、ポリゴンオフセット、ラスタライゼーションモード(点、線、三角形)、MSAAパラメーター)を制御できます。

モバイルGPUがタイルベースレンダリングを使用する理由は?

タイルベースレンダリング(TBR)は画面をタイルに分割し、グローバルVRAMではなく高速なローカルメモリで処理します。これにより消費電力と帯域幅が大幅に削減され、バッテリー駆動のモバイルデバイスにとって重要です。

まとめ

  • Rasterization — 画面表示のためのベクター三角形のラスターフラグメントへの変換。
  • Half-space法 — 最新GPUの主要なラスタライゼーションアルゴリズム。
  • タイルベースレンダリング — モバイルGPU(Adreno、Mali)で使用されるラスタライゼーションアーキテクチャ。
  • エイリアシング — ジャギーエッジの問題。MSAA、FXAA、TAAで解決。
  • フィルレート — ROPブロック数に依存する主要なラスタライゼーションパフォーマンスパラメーター。
  • オーバードロー — ピクセルの繰り返しラスタライゼーション。アーリーZとオクルージョンカリングで最適化。
  • Ray Tracing — パフォーマンスを犠牲にして物理的に正しいレンダリングを提供する代替手法。

ターンキー方式のモバイルアプリケーションを開発します

IT Sectrは2017年からスタートアップや企業向けにiOS・Androidアプリケーションを開発しています。私たちがご相談に乗り、最適なソリューションをご提案します。

プロジェクトについて相談

こちらもお読みください