iPhone应用程序中奇怪的OpenGL ES行为

iPhone应用程序中奇怪的OpenGL ES行为,iphone,opengl-es,Iphone,Opengl Es,我正在为iPhone制作一个简单的2D游戏。这是基于撞车。所以它基本上是一个背景纹理和一些移动的矩形纹理 我有一个奇怪的小图形问题:一些移动的小2d项目(可以假设为矩形)上面有一个闪烁的黑色小条(背景纹理几乎完全是白色的,所以小条很明显) 我使用的纹理是小的(~1Kb)PNG 还有其他人碰到过这个吗?这是openGL常见的问题吗 顺便说一句,这种情况在模拟器和实际设备上都会发生。你的纹理中有像那个小黑条一样的东西吗 我做错事时也遇到过类似的问题。下面是一个小清单: 你有没有mipmap你的纹理

我正在为iPhone制作一个简单的2D游戏。这是基于撞车。所以它基本上是一个背景纹理和一些移动的矩形纹理

我有一个奇怪的小图形问题:一些移动的小2d项目(可以假设为矩形)上面有一个闪烁的黑色小条(背景纹理几乎完全是白色的,所以小条很明显)

我使用的纹理是小的(~1Kb)PNG

还有其他人碰到过这个吗?这是openGL常见的问题吗


顺便说一句,这种情况在模拟器和实际设备上都会发生。

你的纹理中有像那个小黑条一样的东西吗

我做错事时也遇到过类似的问题。下面是一个小清单:

  • 你有没有mipmap你的纹理,并检查它有什么参数
  • GLTEX参数。(包裹、包裹、磁性过滤器、最小过滤器…)
  • 纹理的维度。(如果允许使用非幂次双纹理,则可能会导致图形故障,具体取决于加载纹理的方式)
  • 你是在你的矩形上画那个闪烁的条吗
  • 在你的纹理中是否有导致黑条的原因
  • 对齐动画帧
  • 混合和阿尔法混合
如果列表中的某些内容对你来说很模糊,那么阅读它们是一种很好的锻炼

我还做了一个很好的猜测:我相信你没有在任何方向包装你的纹理,而且动画帧有点错位,因此你的应用程序在你正在绘制的四边形中有点错误的纹理坐标/高度


我希望我的建议有意义。我只使用过普通的opengl,没有使用过opengl ES,因为它的图形管道被修剪过,使它更紧凑、更干净、更优雅。

因为这是一个2D游戏,这些小矩形精灵是否包含在同一个纹理表中?另一个可能的罪魁祸首可能是纹理过滤

如果试图操纵纹理坐标以绘制纹理的子区域,可以检查是否以大于1:1的比例绘制精灵。如果启用了线性纹理过滤(与最近的相反),则如果尝试将精灵缩放到1:1以上,OpenGL可能会从相邻精灵中获取一些像素


如果是这种情况,您可以尝试在精灵之间的纹理表中放置一个1像素的缓冲区。

您在模拟器和实际设备上都看到问题了吗?这在模拟器和实际设备上都会发生。