2

私が作成しているMinecraftのようなゲームでは、ポリゴンのエッジに次の奇妙な線が表示されます。

テクスチャアトラスを使用していて、でクランプされていGL_CLAMP_TO_EDGEます。

に設定GL_TEXTURE_MIN_FILTERしてみましたがGL_LINEARGL_NEARESTミップマップも使ってみましたが、違いはありません。また、テクスチャ座標を0.5ピクセルだけ挿入するか、x16異方性フィルタリングを使用してみましたが、成功しませんでした。

何か助けはありますか?

編集-立方体の上面は次のようにレンダリングされています。

            glBegin(GL_QUADS);

            glTexCoord2f(0f, 0f);
            glVertex3f(x, y + 1f, z);

            glTexCoord2f(0f, 1 / 8f);
            glVertex3f(x, y + 1f, z + 1f);

            glTexCoord2f(1 / 8f, 1 / 8f);
            glVertex3f(x + 1f, y + 1f, z + 1f);

            glTexCoord2f(1 / 8f, 0f);
            glVertex3f(x + 1f, y + 1f, z);

            glEnd();
4

1 に答える 1

0

これは、私には古典的なテクスチャピクセル<->画面ピクセルのフェンスポスティングの問題のように見えます。ここでそれに対する私の答えを参照してください:https ://stackoverflow.com/a/5879551/524368

もう1つの問題は、立方体のコーナー座標が完全に同じではないことです。浮動小数点数には固有のエラーがあり、浮動小数点数を追加してこれらの立方体をグリッドに配置すると、頂点の位置がわずかにずれ、丸め誤差のために深さの戦いが見られる場合があります。これを解決するための2つのこと:1つ目:2つの立方体の面が接触している場合は、それらをレンダリングしないでください。2番目:整数座標を使用して立方体グリッドをレイアウトし、OpenGLに送信する場合にのみ頂点を浮動小数点に変換するか、まったく変換しないでください。

于 2013-01-27T12:58:05.883 に答える