ラスタライゼーションについて個人的に調べたものです。内容には間違いが含まれている場合があります。
数学
三角形(Triangles)
- 3つの頂点、3つの辺を持つ多角形
- ある平面上に存在する
- 退化していなければ、その平面が一意に定まる
- 退化している三角形は、すべての頂点が一直線上にある(共線である)
- 内側と外側がある
- 内側は有限空間、外側は無限空間
- 3つの辺から成る境界で分けられる
- 常に凸である
- 三角形の内側にある2点から成る線分もまた常に三角形の内側にある
- 個の辺の凸多角形は個の半空間との交差として扱うことができる
向きを持つ辺(Oriented edges)
- 辺がからに向かうとき:
- 左側を”正”の半空間と呼ぶ
- 右側を”負”の半空間と呼ぶ
重心座標系(Barycentric coodinate system)
- 点は三角形の頂点を表す
- はとの外積を求める
- とから成る平行四辺形の符号付き面積に等しい
- 点がの左側にあれば正になる
- 点がの右側にあれば負になる
- とから成る平行四辺形の符号付き面積に等しい
- のすべてにおいてとなれば、点は三角形の内側または境界上にある
- このとき、ならば、点は辺上にある
ラスタライゼーション(Rasterization)
- 三角形を”ラスタライズする”とは、その三角形の内側にあるピクセルを見つけること
- そうして見つけたピクセルを色付けする
Top-left rule
- ピクセルの中心が三角形の内側に入るならば、それを描画する
- 上辺と左辺の上にあるピクセルを三角形の内側にあると定義する
- 上辺は完全に水平であり、他の辺より上にある
- 左辺は完全に水平でなく、三角形の左側にある
- これに従うと、隣接する三角形がどちらか一回だけピクセルを描画するようになる
Binning
- Binningとは、隣接する要素をひとまとめにして扱うこと
- スクリーンをタイルに分割して、タイルごとに処理を行う
- 計算に必要なデータをL2キャッシュに収まるくらいに小さくできる