1

最近、私のゲーム エンジンに PowerVR (PVR) のサポートが追加されました。Google とウィキペディアで検索したところ、PVR の定義しかわかりませんが、何に使用されるのか、その利点と欠点は何なのかわかりません。Android 用のゲームを開発していますが、PNG と PVR のどちらを使用すればよいですか?

4

1 に答える 1

7

(PowerVR は、Imagination Technologies Ltd. のグラフィックス アクセラレーション テクノロジを示すブランド名です。PVR は、PowerVR Insider SDK で使用されるテクスチャ コンテナー フォーマットです。PVRTC は、PowerVR のテクスチャ圧縮方式です。違ったらごめんなさい)

PVRTC は、PowerVR グラフィックス アクセラレータで使用するためのランタイム テクスチャ圧縮形式です (多くの Android プラットフォームにはこれらのいずれかがあります)。圧縮されていない 32 ビット テクスチャと比較して、PVRTC は 4 ビット/ピクセルまたは 2 ビット/ピクセル モードで 8 倍または 16 倍の圧縮を提供します。これはランタイム テクスチャ圧縮スキームであるため、グラフィックス コア自体の外側のどの段階でも解凍する必要がないため (そこにはそのビット専用の回路があります)、データはディスク上で小さくなり、GL にアップロードするには小さくなり、メモリとレンダリング時の使用量が少なくなり、ほぼすべての点でより良く、より速くなりました。メモリ帯域幅が貴重で、グラフィックスのパフォーマンスのボトルネックになることが多いモバイル システムでは、フレームレートに大きな違いが生じる可能性があります (また、消費電力 - メモリ アクセスが電力を消費します)。

欠点:

  • PVRTC は、ディスク上の PNG よりも大きくなる傾向があります。PVRTC データは (たとえば)、ディスク ストレージに適しています。
  • PVRTC は非可逆圧縮です。ソース イメージと比較すると、PVRTC テクスチャにアーティファクトが見られることがあります。PNGはロスレスなので問題はありません
  • PVRTC は (現時点では) PowerVR 以外のグラフィックス アクセラレーションでは使用できません。他のプラットフォームの DXT/S3TC (より大きな) または ETC (アルファなし) 圧縮を参照してください。
  • 正方形の 2 の累乗次元のテクスチャのみが機能する可能性があります (例: 32x32、512x512 など)。
  • 圧縮はかなり遅くなる可能性があります

PNG はランタイム形式ではないため、圧縮されていない画像よりも PNG 圧縮の方が有利な唯一の場所は、ディスク上のストレージ (またはネットワーク経由での送信など) です。PNG 画像データは、解凍する前に CPU で解凍する必要があります。 GL に渡されるか、何らかの方法で描画されます。つまり、PNG は、これらのプラットフォームでテクスチャを取得できるのと同じくらい遅くなります。

PNG はロスレスで、アルファ チャネルもサポートします。

そう...

最高のパフォーマンスを得るには、できる場合は PVRTC を使用し、できない場合はテクスチャの他のバージョンを使用します。たとえば、圧縮アーティファクトが明らかすぎる場合や、実行しているプラ​​ットフォームがサポートしていない場合などです。

参考文献:

PVRTC テクスチャを作成するには:

それが役立つことを願っています...

于 2011-09-16T15:28:06.503 に答える