我正在尝试在我简单的2D android应用程序中进行纹理映射,以避免OpenGL代码的开销,以加载我需要渲染的每个单独的tile。但是,这使我的代码变得更加复杂,而且我遇到了一个非常恼人的错误。
Here is an image描绘了究竟发生了什么。它看起来像是发生了两件事之一:纹理映射中使用的源坐标或目标坐标稍微偏离。
我预先计算的源坐标,找到合适的值,所以我发现很难相信它们是问题所在。目标坐标是通过游戏世界中的“窗口”计算的,其中OpenGL坐标系的原点被移动到。然后,它遍历窗口,放置瓷砖。
我在某处读到,当你使用“像素边缘”坐标而不是“像素中心”坐标时会发生这种情况。但我尝试将源坐标移动半个像素(我的纹理贴图是1024x1024,所以我添加/减去0.5f / 1024)并且问题仍然存在。
有没有人遇到类似的问题,或者看到类似的东西可能会让我走上正确的道路?我真的很讨厌必须重新设计这个图形系统,特别是因为它非常接近。