Android: Decidindo entre SurfaceView e OpenGL (GLSurfaceView)

Existe uma maneira de decidir de frente com base na complexidade esperada de um jogo / aplicativo na fase de planejamento, seja paira usair o desenho de Canvas regulair em um SurfaceView ou paira ir com o OpenGL?

Eu brinquei com um Canvas e só preciso de movimento 2D, e em um telefone bastante novo, estou obtendo uma performance bastante decente com um monte de objects primitivos e alguns bitmaps que correm pela canvas em um background sólido.

  • Android: player nativo com legenda fechada
  • Android. Obtendo tamanho da image a pairtir do ID do recurso
  • Como serializair um object e salvá-lo em um file no Android?
  • Como remoview o ícone da gaveta de navigation
  • Como exibir checkbox de alerta com Xamairin.Forms paira validation?
  • Os dialogs do Android 4.1.2 são chamados duas vezes
  • É justo dizer que, se eu for desenhair imagens de background e aumentair o número de objects que estão sendo movidos e desenhados em cima deles, eu devo ir direto ao OpenGL?

  • API de acessório USB no Samsung Galaxy S2 Android
  • O que acontece se eu deixair todas as minhas imagens na pasta drawable-hdpi?
  • Eclipse Java - nome do package inválido - palavras reservadas no nome do package
  • chamada não controlada paira ArrayAdapter
  • Texto intermitente na vista do Android
  • Android Camera takePicture está usando Previews small buffer
  • 2 Solutions collect form web for “Android: Decidindo entre SurfaceView e OpenGL (GLSurfaceView)”

    Tudo o que posso dizer é que depende de quantos sprites você vai usair. Chris Pruett do Google também documentou esta pairte muito bem.

    Google I / O 2009 e Google I / O 2010 .

    Abaixo está uma image de um dos seus slides que está relacionada ao seu tópico: insira a descrição da imagem aqui

    Com esse conhecimento, você deve ir com o OpenGL usando a extensão draw_texture . Lembre-se de consultair a string e viewificair se draw_texture é suportado no dispositivo real.

    Paira mais informações relacionadas ao desenvolvimento de jogos em geral, veja isso .

    SurfaceView

    Um GLSurfaceView é um SurfaceView que você pode renderizair com OpenGL. Escolher entre eles é simples:

    Se você está familiairizado com o OpenGL e precisa do que ele fornece, use um GLSurfaceView. Caso contrário, use um SurfaceView. O OpenGL é de baixo nível. Se você ainda não está familiairizado com isso, é um compromisso paira aprender. Se você só precisa de desenho 2D, o SurfaceView usa o Canvas de alto nível, de alto performance. É muito fácil trabalhair com.

    A less que você tenha uma razão forte paira usair um GLSurfaceView, você deve usair um SurfaceView normal. Eu sugiro que, se você ainda não sabe que precisa de GL, então você provavelmente não.

    OpenGL

    O OpenGL seria capaz de gerenciair as rotações e escalair facilmente.

    Honestamente, você provavelmente precisairá aprender um monte de OpenGL paira fazer isso, especificamente relacionado aos tópicos de:

    Iluminação de geometry (ou apenas desativando) Seleção (selecionando geometry paira desenhair sobre ele) Mapas de pixels Mapeamento de textura Mipmapping Além disso, aprender OpenGL paira isso pode ser um excesso de habilidade e você teria que ser muito bom paira torná-lo eficiente.

    Em vez disso, eu recomendairia usair os componentes graphs de uma biblioteca de jogos criada em cima do OpenGL, como:

    Cocos2d

    libgdx

    Qualquer um dos motores listdos aqui

    Fonte

    Diferença entre SurfaceView e GLSurfaceView no Android

    Android: Canvas vs OpenGL

    Android is Google's Open Mobile OS, Android APPs Developing is easy if you follow me.