2010-02-06 24 views
14

vi esta sesión Google IO: http://code.google.com/intl/iw/events/io/2009/sessions/WritingRealTimeGamesAndroid.html
Se dice que la función draw_texture es el más rápido y VBO es segundo más rápido.
Pero no entiendo cómo usarlo (el método draw_texture o el modo VBO).¿Cuál es la forma más fácil de dibujar texturas con OpenGL ES?

¿Alguna sugerencia?

+1

Estado lo que está buscando, lo que intentaste ... draw_texture está bastante bien explicado en la especificación, OISCIV tiene un montón de ejemplos por ahí. draw_texture y VBO no son para lo mismo. dibujar texturas simplemente hace una textura. Los VBO almacenan datos de vértices, generalmente utilizados para dibujar triángulos. Puede usar VBO para dibujar un cuadrante alineado con la pantalla para dibujar una textura exacta de píxel, pero draw_texture, si está disponible, lo hace mejor ... Entonces, ¿qué es lo que ** quiere ** dibujar? – Bahbar

+0

Digamos que quiero dibujar un texutre que pueda cambiar el tamaño (ancho y alto) y tal vez rotar – Adir

+1

draw_texture no permite transformaciones de texturas como la rotación. Para eso, tendrás que usar VBOs. –

Respuesta

20

El código fuente para el método de ensayo de sprites se menciona en el video está disponible aquí:
http://code.google.com/p/apps-for-android/source/browse/#svn/trunk/SpriteMethodTest

Aquí es un ejemplo de que cuando se utiliza un VBO:
http://code.google.com/p/apps-for-android/source/browse/SpriteMethodTest/src/com/android/spritemethodtest/Grid.java#237

Aquí es un ejemplo desde donde se usa la extensión de textura de dibujo:
http://code.google.com/p/apps-for-android/source/browse/SpriteMethodTest/src/com/android/spritemethodtest/GLSprite.java

Una cosa a tener en cuenta, sin embargo, es que la dibujar la extensión de la textura en realidad no es la más rápida para todos los juegos que usan sprites. Muchos juegos tienen grupos de sprites que comparten el mismo estado de representación, por ejemplo. En ese caso, es mucho más rápido poner todos los sprites con el mismo estado de renderizado en el mismo buffer y dibujarlos con el mismo comando de draw. El comando draw draw no permite esto. Con el comando de dibujar texturas tienes que llamarlo una vez por sprite.

Esta es la razón por la que a menudo se utilizan atlas texturas. Una textura de atlas es un objeto de textura unida que tiene muchas imágenes diferentes. Puede dibujar sprites con diferentes imágenes de esa manera sin tener que vincularse a un objeto de textura diferente. Todo lo que debes hacer es hacer que usen diferentes coordenadas de textura en la textura del atlas. Si el otro estado de renderizado es el mismo, como la función de mezcla necesaria, puede dibujar los sprites para obtener un mejor rendimiento.

+2

los enlaces parecen no estar funcionando ahora, pero el proyecto está todavía allí y los archivos se puede navegar a través de sVN 'Examinar'. – mlvljr

+0

@mlvjr Edité la publicación y arreglé los enlaces: solo necesitaba eliminar la porción/trunk /. – DavidDraughn

Cuestiones relacionadas