今回はベイヤーディザフィルタを作成します。ベイヤーディザフィルタはディザリング手法の一つです。ベイヤーとはベイヤー型のパターンをさし、4×4のマトリックスを用いて処理を行います。以下にベイヤー型のパターンを載せます。 ベイヤーディザでは4×4のマトリックス内の輝度の平均値をとり、その平均値が上の図の右の各セルの値以上ならばそのセルを白色にするという処理を行います。例えば、160という値では下のような塗りつぶし方になります このように白黒の数で範囲内の濃淡を表します。なお、平均値をとらず、各ピクセルの場所とマトリックスの場所の対応関係から変換する方法もあります。 Tutorial1Activityクラスと同じ場所にBayerDitherFilterクラスを作成します。その後、filterメソッドに以下のコードを入力します。 public int[] filter(int[] imageArr
ディザリング トーンマップやガンマ補正を行うと, Float精度のHDRテクスチャから8bit精度のSDRテクスチャへのマッピングができるわけですが, シーンによっては精度不足であったりしてバンドが見えてしまうことがあります。 上の図は,画面の左から右にかけて,なめらかに0.0~1.0で明るさを変化させているシーンに対して, Logトーンマップを適用した結果です。精度不足なのかバンドが微妙に見えています。 SDRテクスチャは256分割の分解能しかないので,シーンによってはマッピング後に階段状に見えてしまうことがあります。 そこで今回実装するのがディザリングです。 https://en.wikipedia.org/wiki/Ordered_dithering Bayer Matrix 以下のような行列を4x4のBayer行列と呼びます。 0/168/162/1610/16 12/164/16
こんにちは、エンジニアの成田です。今回はUnityのシェーダを使ってちょっと遊んでみましょう! 先日、PCインディーズゲーム界隈でこのようなゲームが発表されていました。 作者の説明によればUnityで作られているらしいのですが、やはり目を引くのは"1bit風"グラフィックスでしょう。人によってはApple IIとかPC-88時代のゲームを思い出すのではないでしょうか。 この1bit風グラフィックスを特徴付けているのはディザリングと呼ばれる画像技法です。今回はUnityのシェーダを使ってディザリングを再現してみました。 1.ディザリングって何よ? まず、スマートフォンのテザリングが思い浮かんだ人。残念ながら全く関係ありません。 ディザリングとは、簡単に言うと「限られた色数でより多くの"見かけ上の色"を表現する技法」です。 次の画像を見てください。 この画像は左端が黒で右端が白であるグラデーシ
グレースケールのグラデーションに、白黒2値のカラーパレットと4x4のしきい値マップを使った配列ディザリングを適用した例。この時、使われるタイルパターンは全17通り。 配列ディザリング(はいれつでぃざりんぐ)とは、画像をディザリングするアルゴリズムの一つである。 このアルゴリズムは通常、色深度が小さくて表示可能な色数が少ないディスプレイにおいて、なるべく滑らかな画像を表示するために使用される。たとえば、Microsoft Windowsは「VGA標準16色グラフィックモード」の時に配列ディザリング法を用いてグラフィックを表示する。画像にこのアルゴリズムを適用した場合、特徴的なクロスハッチング状のタイルパターンがハッキリと現れる。 しきい値マップ[編集] このアルゴリズムは「しきい値マップ(M)」を使って色数を減らす。ディスプレイに表示される画像の各ピクセルの色の値と、対応する「しきい値マップ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く