2011-04-12 125 views
2

我正在使用OpenGL ES制作3D应用程序。我创建了一个正方形框架,将其渲染到我的OpenGL ES上下文中。如何将地图视图添加到OpenGL ES视图?

如何添加地图视图到这个方形框架?我希望能够在此地图上应用3D效果。

我尝试将地图添加为OpenGL ES托管视图的子视图,但没有看到应用于此的任何3D效果。我究竟做错了什么?

回答

2

我想你可能会以这种错误的方式去做。首先,所有OpenGL ES渲染都是独立包含在您的CAEAGLLayer中的,因此您不能只添加一个子视图并期望它成为您场景的一部分。 OpenGL ES内容将在一个平面图层内呈现,并且任何添加在其上的任何内容都将叠加在该图层上。

您可以抓取地图视图的图像,将其转换为纹理,然后将该纹理上传到OpenGL场景中,但这可能会导致可怕的性能,我认为您无法维护用户与地图的交互。

如果您只是试图为您的地图提供透视效果,则可以使用Core Animation CATransform3D以3-D旋转地图视图并将透视图应用于该视图。看到我的回答here为例如何可以实现。使用Core Animation为此需要比OpenGL ES少得多的代码。