I was wandering if you managed to load a RGBA texture without pre-
multiplied alpha.

I'm working with an assumption that every texture is alpha pre-
multiplied, because I was unable to load a RGBA texture without pre-
multiplication (on G1). I'd love to know if it's possible or not.

Thanks,
David

On May 28, 9:56 pm, Anton <socialhac...@gmail.com> wrote:
>     The ball.png that you reference above is 30x30 pixels.  As MrChaz
> said, you must use power of two sized bitmaps.  Otherwise the
> texImage2D function will not accept your texture.  It seems likely
> that that is what is going on here.  Also, this works in the 16 bits
> per pixel modes as well.  You don't need a separate alpha channel in
> your frame buffer to do alpha compositing, so a simple RGB454 frame
> buffer works, which is what you get if you use a SimpleEGLConfigChooser
> (false) to select your pixel format.  16bpp formats are twice as fast
> when it comes to rendering as 32bpp formats (if your fill rate
> limited, and if you're rendering a 2D game with sprites then you
> probably are).
>
>     Another word of caution, PNG files are supposed to (if you follow
> the spec) have non-premultiplied alpha channels.  But it seems that
> not many people actually follow the standard, and so you can find PNG
> files that do it either way.  If your PNG files are in fact using non-
> premultiplied alpha then the glBlendFunction should be
> (GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA).  If they use
> premultiplied alpha then it should be as MrChaz said (GL10.GL_ONE,
> GL10.GL_ONE_MINUS_SRC_ALPHA).  If you use the first and see dark halos
> around all of your sprites then you probably have premultiplied alpha
> PNGs.
>
>     As a side note, premultiplied alpha is better for a number of
> reasons.  It simplifies a number of compositing operations and treats
> all of the color and alpha channels in a uniform way.  It also allows
> for super-luminous pixels.
>
>     -Anton
>
> On May 27, 7:00 pm, Nate <nathan.sw...@gmail.com> wrote:
>
> > I am rendering this PNG with no transparency just 
> > fine:http://n4te.com/temp/test.png
> > However if I try to render this PNG (with transparency) with the exact
> > same code, I just get a white box:http://n4te.com/temp/ball.png
>
> > I am loading the PNG into a texture like this:
> > Bitmap bitmap = BitmapFactory.decodeStream(input);
> > int[] temp = new int[1];
> > gl.glGenTextures(1, temp, 0);
> > textureID = temp[0];
> > gl.glBindTexture(GL10.GL_TEXTURE_2D, textureID);
> > 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_NEAREST); // GL_LINEAR for quality.
> > 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);
> > GLUtils.texImage2D(GL10.GL_TEXTURE_2D, 0, bitmap, 0);
> > bitmap.recycle();
>
> > I am using this blending:
> > gl.glBlendFunc(GL10.GL_SRC_ALPHA, GL10.GL_ONE_MINUS_SRC_ALPHA);
>
> > How is it possible to render a PNG with transparency in OpenGL ES?
>
> > Thanks!
> > -Nate
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to android-developers@googlegroups.com
To unsubscribe from this group, send email to
android-developers-unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to