【问题标题】:How to set Background image in GLKViewController iPhone OpenGLES?如何在 GLKViewController iPhone OpenGLES 中设置背景图像?
【发布时间】:2012-04-06 05:01:30
【问题描述】:
我正在 iPhone 上使用 OpenGL 绘制一条线。我使用GLView 和GLKView 代表来画线。但是现在我想给GLKViewController设置一个背景图,然后在背景图上画线。我尝试使用UIImageView 设置背景图像,但图像出现在 (GLKView) 画线上方。
如何将背景图片设置为GLKViewController?
【问题讨论】:
标签:
ios
image
opengl-es
background
【解决方案1】:
最简单的方法应该是添加带有背景图像的附加视图(例如您建议的 - 但您需要将其设置在 OpenGL 视图后面)。试试这个:
[RootViewController.view addSubview: BackgroundView belowSubview: OpenGLView];
OpenGLView.opaque = NO;
但这会带来一些 FPS 损失(出于性能原因,Apple 建议使用不透明的 OpenGL 视图)。更正确的方法是通过 OpenGL 将背景绘制为全屏四边形。
【解决方案2】:
我只想声明,接受的答案是一个非常糟糕的答案......即使在较新的设备(iPhone 5、iPad 2 和更新的设备)上关闭不透明,您也会几乎立即失去 20fps。性能损失是可怕的,不应掉以轻心。
您可以在 OpenGL 中设置背景并保持不透明。将 UIImage 转换为 OpenGL 纹理并进行渲染。根据您的 OpenGL 环境,这可以通过多种方式轻松完成。