順序ディザ — 位置で閾値をずらす
しきい値は画面のどこでも同じ 0.5 で割る。割る線をピクセルの位置ごとに少しずつずらすと、あるピクセルは 0.3 で割り、隣は 0.7 で割る。中間の灰色が黒と白の点の混ざり具合で出て、離れて見ると灰色に見える。
順序ディザ。位置で決まる固定の閾値マップで各ピクセルを独立に二値化する。Bayer 行列はその閾値マップで、2×2 の基本パターンを入れ子に再帰展開して 4×4、8×8 と倍々に広げたもの。隣り合うセルの閾値が最も離れるように数を並べてあり、同じ濃さの領域でも点が固まらず均等にばらける。各ピクセルが独立で処理順を問わないため並列化しやすい。
ずらし方を 8 × 8 の表で決める。表の数を閾値として、値がそれを上回ったら白、下回ったら黒。表を画面に敷き詰めると、規則的な網点になる。
入れているのは左から右へのグラデなのに、出てくるのは網点の密度で濃淡を表したパターン。左(暗い)はびっしり、右(明るい)はまばら。& 7 は % 8 と同じで、表を画面に繰り返し敷くための剰余。y & 7 で行を、x & 7 で列を表から拾っている。v に足した Math.sin(y * 0.08 + t) で各行の明るさが上下に揺れて、網点の境目が波打つ。
表の数の並びが規則的なぶん、網点も規則的に並ぶ。dither はこの閾値で動く場を二値化した作例。