OpenGL ES 3.0 / OpenGL 4.3 ETC2 テクスチャ圧縮の比較

比べてみました。

↓元 (4倍に拡大したものです)
orig_enc0z.png orig_enc1z.png

↓DXT1 (S3TC)
dxt1b_enc0z.png dxt1b_enc1z.png

↓ETC1 (RGB8)
etc1_enc0z.png etc1_enc1z.png

↓ETC2 (RGB8)
etc2_enc0z.png etc2_enc1z.png

結果はエンコーダーの能力にも依存します。
おそらくもっと良い圧縮ツールもあると思います。
特に DXT (S3TC) はツールが豊富なので、上の例よりも良い結果に
なるかもしれません。

ETC1 しか使えない Mali-400 等の GPU では、今までテクスチャの
圧縮方法が限られていました。

・RGB8 のみで Alpha がない
・4×2 単位で 1色しか選択できない

ひとつは Alpha が使えないなど機能的な問題ですが、もうひとつは
画質の問題です。上の例のように 4×2 の大きなブロックが生じ、
DXT1 よりも著しく劣化するケースがありました。

結果を見ても、ETC2 ではこの問題が解消されていることがわかります。

・Alpha や 1-2 component などバリエーションが豊富
・DXT のように 4×4 単位で 2色使える mode が追加された
・GPU 間で共通のフォーマットとして使える (ようになるはず、将来は)

(注意: 手元に手頃なサンプル画像がなかっただけで、決して法線圧縮に
利用しているわけではありません。)

関連エントリ
OpenGL 4.3/ES 3.0 ETC2 Texture 圧縮の仕組み (PVRTC2,ASTC)