1

GLES 2.0foriOSを使用してiOSゲームを作成しました。実際のデバイスで実行すると、高解像度の画像で完全に機能しますが、シミュレーターで実行すると、非常に途切れ途切れの画像が表示されます。

途切れ途切れ

私は開発中はあまり気にしませんでしたが、iTunes Storeに提出するので、持っていない3.5インチと4インチのiPhoneのスクリーンショットをアップロードする必要があります(私はiPad)。そこでシミュレーターを使うことにしましたが、正直なところこれらのスクリーンショットは使えません。

スクリーンショットを撮るためだけに3.5インチと4インチのデバイスを購入する以外に、これを修正して高品質のスクリーンショットを取得するにはどうすればよいですか?

注:元の画像は非常に高品質です。Retina iPadでも、途切れ途切れには見えません。

4

2 に答える 2

2

これは予想される/既知の動作です。シミュレーターはまさにそれです:エミュレーターではなくシミュレーターです。シミュレータでのOpenGLのパフォーマンスと画質は、実際のデバイスとは大きく異なる(そして多くの場合は悪い)ことがよくあります。OpenGLコードがデバイス上でどのように表示され、実行されるかを確認する唯一の方法は、デバイス上でテストすることです。ケースで適切なスクリーンショットを取得する唯一の方法は、そのようなデバイスを探し出し、それを使用してスクリーンショット。そうでなければ、シミュレーターが行く限り、あなたが見るものはあなたが得るものです。「これをデバイスのように見せてください」という魔法のスイッチはありません。

于 2013-02-07T01:06:01.727 に答える
1

シミュレーターはずっと正しかったことがわかりました。

友人のiPhone5で最終バージョンを試してみたところ、一見問題ないように見えましたが、よく見ると上のスクリーンショットのように見えました。友達にスクリーンショットを撮ってもらうことでこれを確認できました。実際、そこに投稿したスクリーンショットと同じように見えます。

iPadで見栄えがする理由は、iPadでは、ゲームが実際にはわずかでもテクスチャをアップスケーリングしており、アップスケーリングアルゴリズムはダウンスケーリングアルゴリズムよりも優れた結果をもたらすためです。(私はそれが480x3202.3ドロイドでかなりよく見えることを誓うことができます)

とにかく、私はロード時にミップマップを作成することで問題を修正し始めました

GL.GenerateMipmap(TextureTarget.Texture2D);

そして、これらのミップマップを使用するようにダウンスケーリングを設定します

GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)All.LinearMipmapLinear);

そして今、途切れ途切れのダウンスケーリングはなくなりましたが、汚いものに置き換えられました。orz

実際にこれを行うと、網膜ディスプレイのサポートを誤って使用していたことが明らかになりました。アプリはiPhone3GSの解像度で実行されていました。

そのため、フレームバッファが正しいサイズで作成されていることを確認する必要があり、問題は解決しました。ただし、Retinaディスプレイでは、テクスチャを再度アップスケーリングしていたため、ミップマップの作成(VRAMの消費量が多くなり、ゲームの読み込みが遅くなります)は、Retina以外のデバイスにのみ残しました。

于 2013-02-08T18:17:20.987 に答える