我正在使用OpenGL ES制作一个3D应用程序。我创建了一个方形框架,可以渲染到我的OpenGL ES上下文中。
如何将地图视图添加到此方框?我希望能够将三维效果应用于此地图。
我尝试将地图添加为OpenGL ES主机视图的子视图,但没有看到任何应用于它的三维效果。我做错了什么?
答案 0 :(得分:2)
我想你可能会以错误的方式解决这个问题。首先,所有OpenGL ES渲染都是在CAEAGLLayer中自包含的,因此您不能只添加子视图并期望它成为场景的一部分。 OpenGL ES内容将在平面图层中呈现,并且在其上添加的任何内容都将堆叠在该图层上。
您可以抓取地图视图的图像,将其转换为纹理,然后将该纹理上传到您的OpenGL场景中,但这可能会有糟糕的性能,我认为您无法维护用户与地图的互动。
如果您只是尝试为地图提供透视效果,则可以使用Core Animation CATransform3D以3-D旋转地图视图并对其应用透视。请参阅我的回答here,了解如何实现这一目标。使用Core Animation需要比OpenGL ES少得多的代码。