私はiPadでOpenGLテクスチャを使用していて、デバイスで恐ろしいアーティファクトを取得していますが、シミュレータはすべて完璧でスムーズに表示されます。iPhoneでも同じアーティファクトが表示されると思います。
ヘッダーを見ると、OpenGLES / ES2 / gl.hを含め、別のファイルにOpenGLES / ES1/*。hを含めるとわかります。これは問題になる可能性がありますか?
または、デバイス上のアーティファクトの理由は何でしょうか?
シミュレーター:
実際のデバイス:
ES 2.0 を使用している場合、最初に推測されるのは、精度の問題があるということです。highp、mediump、および lowp GLSL 精度指定子は、必要な最小精度を指定するため、絶対コマンドではなくヒントです。シミュレーターが明示的に要求したよりも高い精度を提供している可能性は十分にありますが、デバイスはそうではありません。
それについて科学的でない場合は、テストとしてすべてを highp に上げてみてから、ゆっくりとダイヤルを下げて、経験的に結果を確認してください。
コンパイル中に XCode が適用する PNG 最適化である可能性があります (オフにしてみてください)。1 つの PNG の圧縮をスキップするにはどうすればよいですか? を参照してください。
プロジェクト設定で「PNG ファイルの圧縮」を使用して PNG の最適化/圧縮を完全にオフにすることはできますが (プロジェクトのベース SDK がシミュレーター SDK ではなくデバイス SDK に設定されている場合にのみ表示されます)、これを行いたくありません。 ! 理由の詳細については上記のリンクを参照してください。ただし、その要点は、最適化により、iPhone が PNG 表示を遅くする計算をスキップできるようになることです。
Xcode は、認識している PNG 画像ファイルのみを最適化します。特定の PNG が最適化されないようにするには、そのファイル タイプを変更して、Xcode が PNG であることを認識しないようにします。
- プロジェクトウィンドウでファイルを選択します。
- [ファイル] -> [情報を見る] を選択します。
- [全般] タブで、ファイルの種類を image.png から file に変更します。