J'ai été dans une situation similaire.
La façon dont j'ai commencé avec openGL avec commencez par regarder la très de base GLSurfaceView échantillons/demos.
Commencer, par la mise en place de votre application d'activité et mettre en place le canevas de base.
Prendre un butin à la réplique de l'île de fichier de code source: GameRenderer.java comment installer votre toile avec le bon GL drapeaux pour la 2D (sprite) le rendu.
Vous devriez vraiment jeter un oeil à SpriteMethodTest par le même auteur de la réplique de l'île: http://code.google.com/p/apps-for-android/source/browse/trunk/SpriteMethodTest
Voir cette question où j'ai posté mon propre code: en Utilisant OpenGL pour remplacer Toile - Android
Après vous avez votre toile mis en place, commencez par appeler quelque chose comme:
gl.glClear(GL10.GL_COLOR_BUFFER_BIT);
Après que vous êtes prêt à effectuer le rendu d'un sprite.
Tout d'abord, vous aurez besoin de charger le sprite dans une texture: http://qdevarena.blogspot.com/2009/02/how-to-load-texture-in-android-opengl.html
Cependant, c'est le tutoriel qui m'a vraiment aidé avec le chargement des sprites:
http://tkcodesharing.blogspot.com/2008/05/working-with-textures-in-androids.html
C'est de cette façon que je le fais, j'ai une classe nommée Texture.java:
public class Texture
{
/*Begin public declarations*/
public float x = 0;
public float y = 0;
public float z = 0;
public float width = 0;
public float height = 0;
/*Begin Private Declarations*/
private GL10 gl;
public int[] texture; //holds the texture in integer form
private int texture_name;
private int[] mCropWorkspace;
private final BitmapFactory.Options sBitmapOptions;
/*Begin Methods*/
public Texture( GL10 gl_obj )
{
gl = gl_obj;
texture = new int[1];
mCropWorkspace = new int[4];
sBitmapOptions = new BitmapFactory.Options();
sBitmapOptions.inPreferredConfig = Bitmap.Config.RGB_565;
//Log.d(TAG, "Initializing Texture Object");
}
public int get_texture_name( )
{
return texture_name;
}
/*Loads the resource to memory*/
public boolean Load( Bitmap bitmap ) //rename this to glLoad and don't have it as an initializer parameter
{
/*many thanks to sprite method test if this works*/
if ( gl == null )
{
Log.e(TAG, "Failed to load resource. Context/GL is NULL");
return false;
}
int error;
int textureName = -1;
gl.glGenTextures(1, texture, 0);
textureName = texture[0];
//Log.d(TAG, "Generated texture: " + textureName);
gl.glBindTexture(GL10.GL_TEXTURE_2D, textureName);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MIN_FILTER, GL10.GL_NEAREST);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_MAG_FILTER, GL10.GL_LINEAR);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_S, GL10.GL_CLAMP_TO_EDGE);
gl.glTexParameterf(GL10.GL_TEXTURE_2D, GL10.GL_TEXTURE_WRAP_T, GL10.GL_CLAMP_TO_EDGE);
gl.glTexEnvf(GL10.GL_TEXTURE_ENV, GL10.GL_TEXTURE_ENV_MODE, GL10.GL_REPLACE);
GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
mCropWorkspace[0] = 0;
mCropWorkspace[1] = bitmap.getHeight();
mCropWorkspace[2] = bitmap.getWidth();
mCropWorkspace[3] = -bitmap.getHeight();
((GL11) gl).glTexParameteriv(GL10.GL_TEXTURE_2D,
GL11Ext.GL_TEXTURE_CROP_RECT_OES, mCropWorkspace, 0);
error = gl.glGetError();
if (error != GL10.GL_NO_ERROR)
{
Log.e(TAG, "GL Texture Load Error: " + error);
}
//Log.d(TAG, "Loaded texture: " + textureName);
return true;
}
}
Ensuite dans mon onDrawFrame() la méthode je n'ai tout simplement:
Texture texture = ...
gl.glBindTexture(GL10.GL_TEXTURE_2D, texture.texture[0]);
((GL11Ext) gl).glDrawTexfOES((float)(draw_x + 0.5), (float)(draw_y + 0.5), 0, tile_width, tile_height);
Vous allez dessiner les sprites 2D sur un openGL toile.
J'ai remarqué que ce n'est pas vraiment simple de ce tutoriel. J'espère que dans le futur, je vais en poster un dans mon dev blog: http://developingthedream.blogspot.com/
Bonne chance.