如何摆脱OpenGL ES iPhone应用程序中的文物?

时间:2009-06-06 19:20:53

标签: iphone opengl-es

我正在使用CrashLanding示例代码中的Texture2D类。在模拟器和手机中,我的图像周围都出现了奇怪的文物。工件是纹理周围的小灰色边框。边框不一致,不包围整个纹理。我正在使用pngs。

2 个答案:

答案 0 :(得分:5)

嘿MrDatabase - 听起来问题是你的纹理图像有预乘alpha。我在iPhone上也遇到了这个问题 - 当你自动构建应用程序时,它执行的PNG压缩会预先计算所有alpha值。如果您使用的是glBlend(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA),那么您基本上应用了alpha两次 - 请尝试使用glBlend(GL_ONE, GL_ONE_MINUS_SRC_ALPHA)。 Apple论坛中有很多关于此的内容: - )

答案 1 :(得分:1)

你的纹理在宽度和高度上都是2的幂吗?如果没有,那可能是你的问题。

我也遇到了纹理小于一定大小的问题。我记得有人说过,对于小纹理,在分配后清除内存。在Texture2D源中将malloc更改为calloc解决了这个问题。

相关问题