2

我正在尝试在我的简单 2D android 应用程序中进行纹理映射,以避免 OpenGL 代码加载我需要渲染的每个单独的图块的开销。但是,这使我的代码变得更加复杂,并且我遇到了一个非常烦人的错误。

这是一张准确描述正在发生的事情的图像。在我看来,这两种情况之一正在发生:纹理映射中使用的源坐标或目标坐标略有偏差。

我事先计算的源坐标,找到了合适的值,所以我很难相信它们是问题所在。目标坐标是通过游戏世界上的“窗口”计算的,OpenGL 坐标系的原点被转移到该窗口。然后,它遍历窗口,放置瓷砖。

我在某处读到,当您使用“像素边缘”坐标而不是“像素中心”坐标时会发生这种情况。但是我尝试将源坐标移动半个像素(我的纹理贴图是 1024x1024,所以我加/减 0.5f/1024),问题仍然存在。

有没有人遇到过类似的问题或看到过类似的事情可能会引导我走上正确的道路?我真的很讨厌不得不重新设计这个图形系统,特别是因为它是如此接近。

4

0 回答 0