我在使用 OpenGL ES 的 iPad 上遇到了传统的 tile/mipmap 问题。基本上,如果你有一个大的纹理(大于 1k X 1k),你可以把它分成几块并将这些块映射到单独的多边形上。您可以将纹理坐标钳制到边缘,它通常可以工作,但是您会沿着边界得到伪影。
现在我知道你为什么会得到这个并且知道传统的解决方案是什么。也就是说,您在每个较小的纹理(例如 6 像素)的外部制作一个边框。你从小纹理采样到大纹理,所以你只使用那些内部像素(比如 256-2*6)。然后将有效像素涂抹到边界区域。最后,您映射纹理坐标以仅使用那些有效的内部像素。工作正常。
如果您此时没有点头,请不要尝试回答。:-)
无论如何,OpenGL 早在过去就引入了钳位模式来解决这个问题。我在 OpenGL ES 中看不到这些模式(至少在这个硬件上),我看到了对这个问题的其他参考。我想知道我是否遗漏了什么。有没有更新的方法来解决我不知道的瓷砖/边缘问题?
[更新] 此处附上结果的屏幕截图。可见线位于一个纹理的末端和另一个纹理的起点。这是使用 CLAMP_TO_EDGE。