https://github.com/taqu/YUVDither
ETC1 に無理やり透過情報を入れる.
まず, RGBを, YUVに変換する.
Yは平均と, R成分に保存する.
また, 隣のピクセルとの差分を1/2乗してG成分に保存する.
次に, UVは縦横半分にして, B成分に保存する.
最後に透過Aは, 縦横半分にして, さらに平均と
差分の1/2乗に分解して, B成分の残りに保存する.
周波数分解してみたり, 試行錯誤してみたがこれが一番良かった.
元画像のレンジが広ければ, Y成分を2成分に保存するとかできるかもしれない.
1ビットアルファに割り切った方が奇麗かも.
24bit版も追加..
元と比べると顕著に色相が変化するのがどうにも.
16bit版追加, これが最も実用的かもしれない.
RGB565フォーマットを使用する.
まず, YUVに変換後, YをG成分に保存, UVを横半分にしてBに保存, 透過AをRに保存する.
最後に, RGBを拡散誤差法でディザリングする.
レイアウトは24bit版と同じなので, シェーダも同じ.
色相は変化するが, RGBA4444に比べてざらつきは格段に減少する.
0 件のコメント:
コメントを投稿