我正在为 iPhone 制作一个简单的 2D 游戏。它基于 CrashLanding。所以它基本上是一个背景纹理和一些移动的矩形纹理。
我有这个奇怪的小图形问题:一些小的 2d 项目(可以假设只是矩形)在它们上面有这个闪烁的小黑条(背景纹理几乎完全是白色的,所以小条很明显)。
我使用的纹理是小(~1Kb)png。
有没有其他人遇到过这个?这是一个常见的openGL问题吗?
顺便说一句,这发生在模拟器和实际设备上。
你的纹理中有像那个小黑条这样的东西吗?
当我做错事时,我也遇到过类似的问题。这是一个小清单:
如果列表中的某些内容对您来说含糊不清,那么阅读它们是一个很好的练习。
我也做了一个很好的猜测:我相信你没有在任何方向包装你的纹理,并且动画帧有点错位,所以你的应用程序在你正在绘制的四边形中的纹理坐标/高度有点错误。
我希望我的建议是有意义的。我只有通常的 opengl 经验,而不是 OpenGL ES,它的图形管道已被修剪以使其更紧凑、更干净、更优雅。
由于这是一个 2D 游戏,这些小的矩形精灵是否包含在同一个纹理表中?另一个可能的罪魁祸首可能是纹理过滤。
如果您尝试操纵纹理坐标来绘制纹理的子区域,则可以检查是否以大于 1:1 的比例绘制精灵。如果您启用了线性纹理过滤(而不是最近),如果您尝试将精灵缩放到 1:1 以上,OpenGL 可能会从相邻精灵中抓取一些像素。
如果是这种情况,您可以尝试在纹理表中的精灵之间放置一个 1 像素的缓冲区。