iOS用のピクセルパーフェクトゲームと思われるものを描いています:
問題は、数フレームごとに、別のテクスチャのランダムな部分が描画されているのが見えることです (黒に浮かぶティールのドット)。まず、クワッドがすべて完全に並んでいることを確認してみました。次に、Z バッファのサイズを変更しました。これらのことはどちらも役に立たないようでした。
テクスチャ アトラスを使用していますが、残念ながらパディング ピクセルを追加することはできません (私が見た 1 つの解決策)。ここで、テクスチャ座標を 0,1 から 0.005,0.95 に変更すると、問題はなくなりますが、ゴミのように見えます。
このスクリーンショットの動作は、私が関連付けていない別の解決策を示唆していますか? スプライト アートのフィルタリング モードは NEAREST のままにしておく必要があることに注意してください。また、キャラクター/カメラを強制的にピクセル単位で移動させると問題が解決することに注意してください (残念ながら、サブピクセル単位で移動するほど良くはありません)。
編集:次のようにUVを計算することにより、境界ではなくテクセルの「中央」をサンプリングしようとしました:
u = (pixelCoordX + 0.5) / pixelsInTexture
v = (pixelCoordY + 0.5) / pixelsInTexture
しかし、今ではすべてが壊れているように見えます。
編集:これを修正する方法がわからない場合でも、ピクセル座標全体ではなく小数ピクセル座標で発生する理由を理解したいと思います。ゲームはズームではなく、パンのみであるため、テクスチャタイルをどれだけオフセットしても、同じ幅のように見えます-同じ量のピクセルを照らします-そして、この奇妙なラッピングを実行しません.
編集: テクセル サンプリングがどのように機能するかを読んだ後、すべてのクワッドの非整数位置がテクスチャリングに影響を与えている理由をある程度理解しました...しかし、OpenGL が uv を使用することが「許可されている」と言っている決定的なドキュメントを見つけることができません私のドローコールで指定された範囲外の座標(テクスチャアトラスを使用しているため、[0,1]よりもはるかに小さい)。