由于 Core Graphics 的性能瓶颈,我尝试在 iOS 上使用 OpenGL EL 来绘制 2D 场景,但 OpenGL 以极低的分辨率渲染我的图像。
这是我正在使用的图像的一部分(在 Xcode 中):
以及 OpenGL 的纹理渲染(在模拟器中):
我正在使用 Apple 的 Texture2D 从 PNG 创建纹理,然后将其绘制到屏幕上。按照 Apress 的“开始 iPhone 开发”一书中的建议,我正在使用 Ortho 投影直视场景。该图像恰好是屏幕的确切尺寸并且是这样绘制的(我没有在上面的屏幕截图中拍摄完整图像)。我没有在模型上使用任何变换,所以绘制图像应该不会导致子像素渲染。
我很高兴发布代码示例,但如果没有简单的解释,我想我会开始。
为什么使用这种方法图像会损失这么多质量?我在我的环境设置中错过了一步吗?我简要阅读了纹理在 2 的幂次方时表现更好的信息——这对 iPhone 有影响吗?我还阅读了有关多重采样的信息,但我不确定这是否相关。
编辑:更新屏幕截图以减轻混乱。