Mipmap Generation

by Mike » Wed, 15 Jul 2009 00:26:53 GMT

Sponsored Links
 I've created a simple heightmap renderer for Android, and am at the
point where I'd like to apply textures to the terrain. I've had
success with applying a simple texture but there is an unbearable
amount of texture aliasing visible, I guess because there are no
mipmaps for the texture. I could not find any way of automatically
generating mipmaps as all the usual OpenGL methods seem to be

Have any of you figured out how to generate mipmaps on Android? Do we
need to write our own implementation to to it?



Mipmap Generation

by Mike » Wed, 15 Jul 2009 04:08:55 GMT

 Well I've come up with a solution, but I'd still like to hear from
others if you have a better way of doing it.

private int loadTexture(GL10 gl, Bitmap bmp)
        int level = 0;
        int size = bmp.getHeight();

        int[] textures = new int[1];
        gl.glGenTextures(1, textures, 0);
        int textureId = textures[0];

        gl.glBindTexture(GL10.GL_TEXTURE_2D, textureId);

        while(size >= 1)
                GLUtils.texImage2D(GL10.GL_TEXTURE_2D, level, bmp, 0);

                if(size == 1)

                size /= 2;
                Bitmap bmp2 = Bitmap.createScaledBitmap(bmp, size, size, true);
                bmp = bmp2;

        return textureId;


Sponsored Links

Mipmap Generation

by Nightwolf » Sat, 25 Jul 2009 00:30:56 GMT

 In texture loading function please try the following

gl.glGenTextures(1, texID, 0);

gl.glBindTexture(GL10.GL_TEXTURE_2D, texID[0]);


Mipmap Generation

by nea » Fri, 31 Jul 2009 03:05:45 GMT


I am also currently trying to get MipMaps to work and eventually this
is the thread that pops up several times in the search ^^'.

The problem I have with your posted solution, it does not work for me.
As soon as I try it your way I do not get any texture at all. It just
stays white. What could be the problem, as it should be the normal way
to to MipMaps by adding the new images to the according level. But as
soon as I add a second level it stays white. I define
gl.glBindTexture(GL10.GL_TEXTURE_2D, textures[0]);

before, but still it won't work.

Does anybody has a solution or a hint what could help here?

Thanks in advance.



Mipmap Generation

by Ante » Sat, 05 Sep 2009 00:49:51 GMT

 Hi Mike.

This works in the emulator:
if(gl instanceof GL11)
    gl.glTexParameterf(GL11.GL_TEXTURE_2D, GL11.GL_GENERATE_MIPMAP,
    GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);

Though, this doesnt help if your device doesnt support the GL11

I tried your mip mapping function but without success. You wouldnt
happen to have a working example?

Best regards,


Other Threads

1. Content P

With my one week old knowledge of Android I am trying use content
provider. I get this exception, it seems to occur if AndroidManifest.xml
didn't have it. But my file does have it.

Any pointers are appreciated.



04-14 20:15:03.029: ERROR/ActivityThread(637): Failed to find provider info
for com.providers.SubscribeContentProvider

I get this exception.

<provider android:name="com.providers.SubscribeContentProvider"




2. Action bar through compatibility lib on 1.x, 2.x API

Is the compatibility library expected to help with action bar on pre-

Have been trying to get it to work in vain for long.
Changed the sample that uses MenuCompat to show action irrespective of
room. Still no luck.
MenuCompat.setShowAsAction(item, MenuItem.SHOW_AS_ACTION_ALWAYS);

What am I doing wrong? Or is it just to use fragments in options menu
that show at the bottom of the screen?

Thanks in advance.
ps: The only relevant thread in this group was the one with Dianne
Hackborn's reply asking us to properly try the samples out. Yes, I
have already included the jar and the rest of the fragments*support
stuff work well.


3. Resource qualifier bugs in Honeycomb/xoom

4. m-gadget 1.0 release

5. Ticker

6. Increment field Via Content Values?

7. Android+Google Docs