.png画像をiPhone上の圧縮されたPVRTCテクスチャに変換する標準的なメカニズムや既知のライブラリがあります(OS Xの標準ツールを使用した開発ではありません)。.pngをPVRTC *に変換する
私のアプリケーションには数多くの.pngテクスチャがありますが、スワップが問題です。アプリケーションの起動時(またはアプリケーションの最初の負荷時)に利用可能なメモリが少ない場合は、デバイス上に.pngのPVRTCバリアントを作成したいと思います。
.png画像をiPhone上の圧縮されたPVRTCテクスチャに変換する標準的なメカニズムや既知のライブラリがあります(OS Xの標準ツールを使用した開発ではありません)。.pngをPVRTC *に変換する
私のアプリケーションには数多くの.pngテクスチャがありますが、スワップが問題です。アプリケーションの起動時(またはアプリケーションの最初の負荷時)に利用可能なメモリが少ない場合は、デバイス上に.pngのPVRTCバリアントを作成したいと思います。
PVRTCの画像を手動で作成する方法に関するネット上の情報は見当たりませんでした。私の知る限りでは、iPhoneに組み込まれているサポートはありません(そして、PVRTCファイル)。
ほとんどのアプリケーションでは、両方のバージョンのファイルを含めるか構築するのはほとんど意味がありません。最適な条件下では、PVRTCバージョンはPNGバージョンと実質的に区別できないはずであり、ビデオメモリに直接ストリーミングするために最適化されたファイルの「プリプロセス」バージョンです。
特定の制限されたメモリ状況だけでなく、すべてのユーザーのメモリの節約と品質のバランスを取るためにイメージを最適にパッケージ化する方法については、すべてのイメージを調べて決定するのが一般的です。
(これは冗長な知識である場合の謝罪を)考慮すべきいくつかのこと:前処理がブレンドされたエッジに沿って見苦しいアーティファクトを引き起こすことができるよう
アプリケーションがシステムアプリケーション以外で実行される唯一のものであるため、実際のメモリオーバーヘッドは限られた量の「ディスク」スペースになります。すべての画像ファイルの2番目のコピーを作成すると、実際には手伝ってくれるのではなく、実際に作業しています。
バーニー
返事をありがとう。私はすでにこれらの点に精通していました(私もCocos2Dを使用しています)。私はすでに1024x1024のテクスチャスプライトシートをいくつか使用しています。私は代替のピクセルフォーマットとPVRTCを試しました。通常の使用のために、私はUIの品質を私が許容したい以上に低下させます。しかし、実際にメモリが足りない状況(例えば、私のアプリが空き容量が10MB未満で起動している場所)では、劣化した品質モードで実行したかったのです。 – bradhouse
これはあなたに役立つことを前提にしています。画像を一度参照すると、UIImageに読み込まれます。好きなように、iPhoneはあなたのPNGをキャッシュし始めます。私の意見では、それらを圧縮することは、あなたがここで探しているものを達成するのにうまく役立たないでしょう。
PVRTCがより適切な場合は、.pngをロードするつもりはありませんでした。まずアプリケーションが実行したいのは、利用可能なメモリを調べ、残りのアプリケーションの実行に使用する正しいフォーマットを選択することです。私はちょうど元のダウンロードの同じイメージの2つの変種を出荷したくありません。 – bradhouse
あなたはIOSにPVRする画像を圧縮したい場合は、OpenSceneGraphプラグインPVRを考慮することができる:
多分私は何かが欠けているかもしれませんが、私はそのファイル内のコンプレッサーを見ることができません。 –
はい、申し訳ありませんが、別のリーダーと交換しました。ここにはコンプレッサーがありません。 –
私はバーニーの答えを今のところ正しいものにしました。誰かが実際に画像フォーマットを変換する方法について具体的な詳細を持っているなら、私は答えを切り替えます。 – bradhouse