2011-04-12 161 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少得多的代碼。