0

私は、ETC1 (具体的には PKM ファイル) を使用してテクスチャ圧縮を取得しようとしてきました。OpenGL ES 2 にアップグレードせずにこれを実行しようとしているので、マルチテクスチャリングを使用しています。

私はマルチテクスチャリングを現在(最終的に)動作させていますが、問題は期待どおりに動作していないことであり、その理由を理解したと思います。PKM を作成すると、カラー コンポーネントのみの PKM と、アルファ コンポーネントのみの PKM が作成されます。問題は、アルファ PKM がアルファ値を RGB チャネルに格納しているように見えることです。黒は完全な透明度を表し、白は完全な不透明度を表します。

私の質問は次のとおりです。マルチテクスチャリングを使用するときに、これらの RGB 値を組み合わせてアルファ値に変換する方法はありますか? そうでない場合、ETC1 を使用し、OpenGL ES 1.1 でアルファをサポートするためのオプションが表示されません (間違っている場合は修正してください)。

4

1 に答える 1

0

私はこの質問をさまざまなフォーラムにも投稿しましたが、一般的なコンセンサスは、これは不可能であるということです. したがって、アルファを処理する ETC1 圧縮を実装する場合は、最初に OpenGL ES 2 にアップグレードし、FragmentShaders を使用してください。

私はこれをしないことにしました。私にとって本当にうまくいったのは、アルファチャンネルが問題にならない画像に ETC1 圧縮を使用することでした。重要な他の画像については、量子化を使用して PNG のサイズを劇的に縮小しました。tinypng.org を使用してこれを行うか、pngquant をローカルにインストールすることができます。私は後者を実行し、特定の画像には ETC1 圧縮を使用し、他の画像には pngquant を使用してそれらをアセット ディレクトリにコピーする bash スクリプトを作成しました。

于 2014-06-14T00:21:02.310 に答える