簡體   English   中英

Android:在SurfaceView和OpenGL之間做出決定(GLSurfaceView)

[英]Android: Deciding between SurfaceView and OpenGL (GLSurfaceView)

有沒有辦法根據游戲/應用程序在規划階段的預期復雜性來預先確定是否在SurfaceView中使用常規Canvas繪圖或使用OpenGL?

我一直在玩Canvas並且只需要2D移動,而在一部相當新的手機上,我得到了相當不錯的性能,其中有一堆原始對象和一些在固定背景屏幕上運行的位圖。

可以公平地說,如果我要繪制背景圖像並增加移動和繪制對象的數量,我應該直接使用OpenGL嗎?

我只能說,這取決於你將使用多少精靈。 Google的Chris Pruett也很好地記錄了這一部分。

Google I / O 2009Google 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之上的游戲庫的圖形組件,例如:

的Cocos2D

libgdx

這里列出的任何引擎

資源

Android中SurfaceView和GLSurfaceView的區別

Android:Canvas vs OpenGL

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM