Drawing an image with OpenGL ES?


Last Updated:

  1. cmh0114

    cmh0114 Well-Known Member This Topic's Starter

    Joined:
    Jan 10, 2010
    Messages:
    116
    Likes Received:
    7
    Hey everyone,

    I'm trying to develop a game for Android, and I need to know how to draw an image onscreen using OpenGL - an image that I access from the resources, not created within the program. Any tips?

    Thanks.
     

    Advertisement
  2. DiCon

    DiCon Member

    Joined:
    Aug 12, 2010
    Messages:
    12
    Likes Received:
    1
    I'm not sure, if there is a way to directly copy some kind of image buffer into the active frame buffer, but if you want to manipulate your image (translating, scaling, rotating, placing it according to the z-buffer, etc.) you will want to go the usual way:
    Create two triangles forming a rectangle and apply your image as a texture - For example using the Bitmap class and GLUtils.texImage2D(...).

    Additionally, if you do not want to add a perspective, you should use gluOrtho2D(...) as your projection matrix.

    Now, if you want some code or more details on one of these steps, just ask for it - It's just a very general answer to a very general question ;)
     
  3. cmh0114

    cmh0114 Well-Known Member This Topic's Starter

    Joined:
    Jan 10, 2010
    Messages:
    116
    Likes Received:
    7
    That's what I'm interested in - how do I apply an image to a texture to the triangles? And how do I use the gluOrtho2D() method?
     
  4. DiCon

    DiCon Member

    Joined:
    Aug 12, 2010
    Messages:
    12
    Likes Received:
    1
    ok, so I can probably assume, that you are pretty new to OpenGL. In this case, I would recommend the NeHe tutorials that have been ported for Android (since OpenGL != OpenGL ES) -> INsanityDesign NeHe Android Ports

    If you already have an OpenGL environment running with your triangles already rendering, but without textures, you can skip to "Lesson 06". Set "gl.glEnable(GL10.GL_TEXTURE_2D)" and have a look at loadGLTexture(...) from the cube-class in this lesson.

    The gluOrtho2D just sets up a projection matrix with an orthographic projection. With this projection you can easily do 2D graphics in OpenGL as the z-coordinate does not affect the size of your graphics. gluOrtho2D is just like gluPerspective but "without depth".
     
  5. obviam

    obviam New Member

    Joined:
    Aug 4, 2010
    Messages:
    3
    Likes Received:
    0
    I have put up a tutorial describing exactly that.
    How to draw images with opengl.
    It explains triangle strips, how to create a square and how to create a texture from an image and how to bind it.
    You can find the article here.

    Good luck!
     
  6. jonbonazza

    jonbonazza Well-Known Member

    Joined:
    Jul 13, 2010
    Messages:
    1,934
    Likes Received:
    458
    Depending on the complexity, you could just use glTexImage2D()... this can be kind of slow tho.
     

Share This Page

Loading...