Unity iOS/Android におけるテクスチャ画質の改善

October 4, 2013

Animation

iOS/Android においてテクスチャ圧縮は必須ですが、画質の著しい劣化を招く可能性があり、嫌われる傾向にあります。特に厳しいのはアルファチャンネルを使う場合です。どうしてもこの劣化を受け入れることができず、泣く泣く 32 bit true color を使っているケースも少なくないのではないかと思います。

ただ、多くのケースにおいては、ちょっとした工夫を行うことにより、これらの問題の改善が可能です。その代表的な3つの手法を文書にまとめてみました。

16 bit 減色を行う際にディザリングを適用することによって画質の改善を図る。

アルファが 0% の領域をクリアすることによって PVRTC の画質の改善を図る。

アルファチャンネルをマスクとして別テクスチャへ分離することにより画質の改善を図る。


OpenGL ES 3.0 では ETC2 が対応必須になっているらしいので、これで状況は若干まともになるのではないかと思います。個人的には ASTC の義務化に期待したいところですが。