明るさとUVからディザパターンを作ります
粒の間隔、並びの角度を変えられます
粒の中心から色を拾い、その色の明るさに応じた粒の大きさを描きます
粒の中心からの距離で粒の面積を求め、ピクセルの明るさと比べて大きすぎなければピクセルをONします
GrayScaleを通せば白黒になります
GrayScaleの中身です
RGBに明るさの重み付けをして合計しています
TexCoordMosaicAngleの中身です
色を拾うための粒の中心を求めます
元の座標を粒の中心にそろえて飛び飛びの座標にしています。
角度を付けるため座標を回転し、飛び飛びにしてから逆回転で元に戻しています
Mosaicの中身です
飛び飛び処理です
テクスチャ座標は0~1の範囲です
元の座標を粒の数(n)倍して0~nにしてから四捨五入し、nで割って0~1の範囲に戻します
Vector2のままx,yまとめて計算できて便利
MulSinCosToVector2Dの中身です
座標の回転処理です
角度ではなく、回転計算に必要なsineとcosineの値を呼び出し元から受け取っています
回転と逆回転で呼び出されるときに必要な値が同じなので一度のsine、cosine計算で済ますためです
この計算でなぜ回転するのか知りたい方はこちらへ(回転方向逆だけど)
ポストプロセスにしてみました
CMYの角度をずらしたものも作りました
圧縮に適さないようでまともに録画できず、画像にしました