同じ頂点セットを持つが、互いに隣り合うように変換された 2 つのオブジェクト間の結合に沿って 1 つのピクセル ホールが時折あるという問題に遭遇しました。シンプルな正方形のラインでこれを再現することができました。
正方形は、中心が 0,0 の 1 単位 x 1 単位です。glTranslatef を使用して各正方形を所定の位置に移動し、これらの正方形を一列に配置しました (この場合、提供する値は常に整数です)。カメラが特定の位置にある場合、OpenGL はこれらの四角形の間に 1 ピクセルのギャップを残し、そこから背後にあるもの (たとえば、バック バッファをクリアした色) を確認できることがわかりました。角が 0,0 になるように正方形の頂点を変更しても、問題は解決しませんでした。
コード例:
glPushMatrix();
glTranslatef(0, 0, 0);
drawSquare();
glPopMatrix();
glPushMatrix();
glTranslatef(0, 0, 1);
drawSquare();
glPopMatrix();
glPushMatrix();
glTranslatef(0, 0, 2);
drawSquare();
glPopMatrix();
画像はそのような場合を示しています。問題のピクセルの周りのスクリーン ショットに赤い円を追加しました。
これが事実である理由はわかりません。最終的な「世界」座標を指定して、単純な正方形の正方形ごとの変換を排除することは可能ですが(そして問題を解決します)、最初に問題に気付いたはるかに複雑なジオメトリでそうしますは実際には実用的ではありません。