【问题标题】:OpenGL - weird lines on polygon edgesOpenGL - 多边形边缘上的奇怪线条
【发布时间】:2013-01-26 23:33:32
【问题描述】:

在我正在制作的一款类似于我的世界的游戏中,我在多边形边缘上出现了这些奇怪的线条:

我正在使用纹理图集,被GL_CLAMP_TO_EDGE 夹住。

我尝试使用将GL_TEXTURE_MIN_FILTER 设置为GL_LINEARGL_NEAREST 甚至使用mipmap,但这并没有什么不同。我也尝试将纹理坐标插入半个像素,或者使用 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();

【问题讨论】:

  • 看起来这取决于实际的多边形干扰。你是如何定义立方体的?你是如何把立方体放在一起的?
  • 如果立方体的多边形“重叠”,您可能会看到这样的效果,它无法决定先绘制哪一个,因此将它们都绘制。
  • 感谢您的帮助,但这并没有发生。 :( 还有其他提示吗?
  • 它们只需要重叠几个像素。但不,我没有其他建议。
  • 你试过在每个子纹理周围放置一个 1 像素的边框吗?

标签: opengl polygon


【解决方案1】:

这看起来像是经典的纹理像素 屏幕像素围栏问题。在这里查看我的答案:https://stackoverflow.com/a/5879551/524368

另一个问题可能是立方体的角坐标不完全相同。浮点数有一些内在误差,如果您通过向其添加一些浮点数将这些立方体排列在网格中,则可能会发生顶点位置稍微偏离并且由于舍入误差而导致您看到深度战斗的情况。解决这个问题的两件事:第一:如果两个立方体的面接触,不要渲染它们。 2:使用整数坐标布局立方体网格,只有在提交到OpenGL时才将顶点转换为浮点数,或者根本不转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-01-14
    • 2019-01-03
    • 1970-01-01
    • 1970-01-01
    • 2011-10-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多