2012/08/20
OpenGL ES 3.0 / OpenGL 4.3 ETC2 テクスチャ圧縮の比較
比べてみました。
↓元 (4倍に拡大したものです)

↓DXT1 (S3TC)

↓ETC1 (RGB8)

↓ETC2 (RGB8)

結果はエンコーダーの能力にも依存します。
おそらくもっと良い圧縮ツールもあると思います。
特に DXT (S3TC) はツールが豊富なので、上の例よりも良い結果に
なるかもしれません。
ETC1 しか使えない Mali-400 等の GPU では、今までテクスチャの
圧縮方法が限られていました。
・RGB8 のみで Alpha がない
・4x2 単位で 1色しか選択できない
ひとつは Alpha が使えないなど機能的な問題ですが、もうひとつは
画質の問題です。上の例のように 4x2 の大きなブロックが生じ、
DXT1 よりも著しく劣化するケースがありました。
結果を見ても、ETC2 ではこの問題が解消されていることがわかります。
・Alpha や 1-2 component などバリエーションが豊富
・DXT のように 4x4 単位で 2色使える mode が追加された
・GPU 間で共通のフォーマットとして使える (ようになるはず、将来は)
(注意: 手元に手頃なサンプル画像がなかっただけで、決して法線圧縮に
利用しているわけではありません。)
関連エントリ
・OpenGL 4.3/ES 3.0 ETC2 Texture 圧縮の仕組み (PVRTC2,ASTC)
↓元 (4倍に拡大したものです)


↓DXT1 (S3TC)


↓ETC1 (RGB8)


↓ETC2 (RGB8)


結果はエンコーダーの能力にも依存します。
おそらくもっと良い圧縮ツールもあると思います。
特に DXT (S3TC) はツールが豊富なので、上の例よりも良い結果に
なるかもしれません。
ETC1 しか使えない Mali-400 等の GPU では、今までテクスチャの
圧縮方法が限られていました。
・RGB8 のみで Alpha がない
・4x2 単位で 1色しか選択できない
ひとつは Alpha が使えないなど機能的な問題ですが、もうひとつは
画質の問題です。上の例のように 4x2 の大きなブロックが生じ、
DXT1 よりも著しく劣化するケースがありました。
結果を見ても、ETC2 ではこの問題が解消されていることがわかります。
・Alpha や 1-2 component などバリエーションが豊富
・DXT のように 4x4 単位で 2色使える mode が追加された
・GPU 間で共通のフォーマットとして使える (ようになるはず、将来は)
(注意: 手元に手頃なサンプル画像がなかっただけで、決して法線圧縮に
利用しているわけではありません。)
関連エントリ
・OpenGL 4.3/ES 3.0 ETC2 Texture 圧縮の仕組み (PVRTC2,ASTC)