[英]Android: Deciding between SurfaceView and OpenGL (GLSurfaceView)
有沒有辦法根據游戲/應用程序在規划階段的預期復雜性來預先確定是否在SurfaceView中使用常規Canvas繪圖或使用OpenGL?
我一直在玩Canvas並且只需要2D移動,而在一部相當新的手機上,我得到了相當不錯的性能,其中有一堆原始對象和一些在固定背景屏幕上運行的位圖。
可以公平地說,如果我要繪制背景圖像並增加移動和繪制對象的數量,我應該直接使用OpenGL嗎?
我只能說,這取決於你將使用多少精靈。 Google的Chris Pruett也很好地記錄了這一部分。
Google I / O 2009和Google I / O 2010 。
下面是他的一張幻燈片中與您的主題相關的圖片:
有了這些知識,你應該使用draw_texture
擴展來使用OpenGL。 請記住查詢字符串並檢查實際設備是否支持draw_texture
。
有關與游戲開發相關的更多信息,請參閱此內容 。
SurfaceView
GLSurfaceView是一個可以使用OpenGL渲染的SurfaceView。 在它們之間進行選擇很簡單:
如果您熟悉OpenGL並需要它提供的內容,請使用GLSurfaceView。 否則,請使用SurfaceView。 OpenGL是低級的。 如果你還不熟悉它,那就是學習的一項任務。 如果您只需要2D繪圖,SurfaceView將使用高級,合理的高性能Canvas。 它很容易使用。
除非您有充分理由使用GLSurfaceView,否則應使用常規SurfaceView。 我建議如果你還不知道你需要GL,那么你可能不會。
OpenGL的
OpenGL可以輕松處理旋轉和縮放。
老實說,你可能需要學習很多OpenGL才能做到這一點,特別是與以下主題有關:
幾何照明(或者只是禁用它)拾取(選擇要在其上繪制的幾何體)像素映射紋理映射Mipmapping另外,為此學習OpenGL可能過度,而且你必須非常擅長它才能使其高效。
相反,我建議使用構建在openGL之上的游戲庫的圖形組件,例如:
資源
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.