073 · 画像

block-char

ブロック記号で密度を敷き詰める

1マスを6x6のドット盤にして、明るさの高い順に黒く埋めていく。タイルそのものをブロック記号として扱い、盤面全体は密度の場の上に積まれた小さな板の集まりになる。

タイルの明るさは1枚の式で作る。下方向のグラデーション、4タイルごとの粗いブロブ、各タイルのジッター、ゆっくり進む波の4つを足して 0〜1 に正規化する。グラデーションは下が濃く、上が薄い。地平線 horizonsin で上下させるので、晴れと曇りが行き来する。

タイル内のドット配置は 6x6 のBayer行列。値 density に対し、しきい値が (bayer + 0.5) / 36 未満なら黒。Bayerは隣接ドットが似た値にならないよう設計されているので、低密度では均等に散らばり、高密度で初めて塊になる。順序ディザの粒度感がそのままタイルの個性になる。

ブロブ noise は gx / blobX gy / blobY の粗い格子から sin ハッシュで取る。同じブロブを共有する数タイルが密度の塊になり、隣の領域と段差を作る。位置は固定して、時間で動くのは地平線と波だけにする。

ジッターは各タイル固有のオフセットで、ブロブの単調さを壊す。波 sin * cos は全体に細かい揺らぎを足す。グリッドは 32x32、タイルは 12px、ドットは 2px、しきい値 0.03 未満のタイルはまるごと飛ばす。