1. Check out our app, Forums for Android! Download and leave feedback here!

Drawing an image with OpenGL ES?

Discussion in 'Application Development' started by cmh0114, Aug 10, 2010.

  1. cmh0114

    cmh0114 Well-Known Member
    Thread Starter
    36

    Jan 10, 2010
    116
    7
    36
    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
    16

    Aug 12, 2010
    12
    1
    16
    Physicist (PhD student)
    Aachen, Germany
    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
    Thread Starter
    36

    Jan 10, 2010
    116
    7
    36
    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
    16

    Aug 12, 2010
    12
    1
    16
    Physicist (PhD student)
    Aachen, Germany
    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
    5

    Aug 4, 2010
    3
    0
    5
    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
    163

    Jul 13, 2010
    1,934
    458
    163
    Male
    Depending on the complexity, you could just use glTexImage2D()... this can be kind of slow tho.
     

Share This Page

Loading...