2009-06-06 11 views
1

私はCrashLandingサンプルコードからTexture2Dクラスを使用しています。私はシミュレータと電話の両方で私のイメージの周りに奇妙な人工物を得ています。アーティファクトはテクスチャの周りに少し灰色の境界線です。境界線は矛盾しており、テクスチャ全体を囲っていません。私はpngを使用しています。OpenGL ES iPhoneアプリでアーティファクトを取り除くにはどうすればよいですか?

+1

スクリーンショットがありますか? – zoul

答えて

5

こんにちはMrDatabase - あなたのテクスチャ画像にはアルファが事前に乗っているというのが問題ですね。私はiPhoneでもこの問題を抱えていました。あなたのアプリケーションをビルドするときに実行するPNG圧縮は、すべてのアルファ値を自動的に事前に増やします。 glBlend(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA)を使用している場合は、基本的にアルファを2回適用しています。代わりにglBlend(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)を使用してみてください。これについてAppleフォーラムにはたくさんのものがあります:-)

+0

素晴らしいです!ありがとうございました:-) – MrDatabase

+0

おかげさまで、これをさまざまな組み合わせで把握しようとしていました。 –

1

テクスチャの幅と高さがすべて2ですか?もしそうでなければ、それはおそらくあなたの問題です。

また、あるサイズよりも小さいテクスチャにも問題がありました。小さなテクスチャの場合、割り当てられた後にメモリをクリアすると誰かが覚えています。 Texture2Dソースでmallocからcallocに変更することで問題は解決しました。

+0

Texture2Dはポット以外の画像を処理する必要があります。 – zoul

+0

する必要があります。しかし、しないでください。少なくとも私が持っていたCrashLandingのTexture2Dはありません。 – Nosredna

関連する問題