iphone - 如何将 map View 添加到 OpenGL ES View ?

标签 iphone ios opengl-es

我正在使用 OpenGL ES 制作一个 3D iOS 应用程序。我创建了一个方形框架,它被渲染到我的 OpenGL ES 上下文中。

如何向这个方框添加 map View ?我希望能够对这张 map 应用 3-D 效果。

我尝试将 map 添加为 OpenGL ES 托管 View 的 subview ,但没有看到任何应用到它的 3-D 效果。我做错了什么?

最佳答案

我认为您可能采用了错误的方式。首先,所有 OpenGL ES 渲染都包含在您的 CAEAGLLayer 中,因此您不能只添加一个 subview 并期望它成为场景的一部分。 OpenGL ES 内容将在一个平面层内呈现,添加在其上的任何内容都将堆叠在该层上。

您可以抓取 map View 的图像,将其转换为纹理,然后将该纹理上传到您的 OpenGL 场景中,但这可能会产生糟糕的性能,而且我认为您无法维护用户与 map 互动。

如果您只是想为您的 map 提供透视效果,您可以使用 Core Animation CATransform3D 在 3-D 中旋转 map View 并对其应用透视。看我的回答here有关如何实现这一目标的示例。为此使用 Core Animation 需要的代码比 OpenGL ES 少得多。

关于iphone - 如何将 map View 添加到 OpenGL ES View ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5636483/

相关文章:

ios - IOS的文件系统加密?

iphone - 比较先前备份的 NSFileModificationDate

iphone - 为什么我的应用程序中报告 QuartzCore 泄漏?

iPhone 应用程序根据每个国家/地区的应用程序商店本地化并更改应用程序名称

ios - 我的应用程序的恢复时间很长

ios - 如何使用 Storyboard在 iOS 中制作水平和垂直滚动的 TableView?

ios - ARC __block 和 __weak

ios - 如何在导航 Controller 内的特定 View Controller 上隐藏导航栏

iphone - 如何在 openglES 中进行纹理映射? (将 2D 面映射到 3D 网格中)

graphics - 如何为不同分辨率的屏幕生成 Sprite 艺术资源?