3

iPhone用のシンプルな2Dゲームを作っています。CrashLanding に基づいています。つまり、基本的には背景テクスチャといくつかの長方形のテクスチャが動き回っています。

私はこの奇妙な小さなグラフィックの問題を抱えています: いくつかの小さな 2D アイテム (単なる長方形と見なすことができます) が動き回ると、その上にこの小さな点滅する黒いバーが表示されます (背景テクスチャはほぼ完全に白であるため、小さなバーが目立ちます)。

私が使用しているテクスチャは小さい (~1Kb) png です。

他の誰かがこれに遭遇しましたか?これは一般的な openGL の問題ですか?

ところで、これはシミュレータと実際のデバイスの両方で発生します。

4

2 に答える 2

5

テクスチャに小さな黒いバーのようなものはありますか?

何か間違ったことをしたときに、同様の問題に遭遇しました。ここに小さなチェックリストがあります:

  • テクスチャをミップマップしたかどうか、どのようなパラメータがあるかを確認してください。
  • glTexパラメーター。(WRAP_S、WRAP_T、MAG_FILTER、MIN_FILTER...)
  • テクスチャの寸法。(2 の累乗でないテクスチャが許可されている場合、テクスチャの読み込み方法によっては、グラフィックの不具合が発生する可能性があります)
  • 長方形の上にその点滅するバーを描いていますか?
  • テクスチャに黒いバーの原因があるかどうか。
  • アニメーション フレームの配置。
  • ブレンディングとアルファブレンディング。

リストの中の何かがあいまいな場合は、それらについて読むのは良い練習になります。

私も良い推測をします.テクスチャをどの方向にもラップしておらず、アニメーションフレームが少しずれているため、アプリケーションが描画しているクワッドのテクスチャ座標/高さが少し間違っていると思います.

私のアドバイスが理にかなっていることを願っています。私は通常のopenglでしか経験がなく、OpenGL ESではなく、グラフィックパイプラインがよりコンパクトでクリーンでエレガントになるように刈り込まれています。

于 2008-10-14T10:05:36.293 に答える
0

これは 2D ゲームなので、これらの小さな長方形のスプライトは同じテクスチャ シートに含まれていますか? 別の原因として考えられるのは、テクスチャ フィルタリングです。

テクスチャ座標を操作してテクスチャのサブ領域を描画しようとしている場合は、1:1 より大きい比率でスプライトを描画しているかどうかを確認できます。リニア テクスチャ フィルタリングを有効にしている場合 (ニアレストではなく)、スプライトを 1:1 を超えてスケ​​ーリングしようとすると、OpenGL は隣接するスプライトからいくつかのピクセルを取得することがあります。

この場合、テクスチャ シートのスプライト間に 1 ピクセルのバッファを配置してみてください。

于 2008-10-18T15:22:43.593 に答える