Here's a zoomed in version of the image showing the artifacts more clearly: <http://cl.ly/image/3z1c2d0i2E3N/Screen%20Shot%202013-09-02%20at%206.27.41%20PM.png>
On Monday, September 2, 2013 6:23:43 PM UTC-7, Jason wrote: > > I realize this is an old thread, but I'm having the same issue and the > above solutions haven't worked for me. > > Firstly the link to the PNGDecoder from libgdx is old and no longer exists > (libgdx appear to have re-vamped the way they load images and tracking down > where exactly the PNG decoding happens is a bit of a nightmare) > > I tried directly calling GLES20.glTexImage2D using the pixels extracted > from the Bitmap (as described above), but I still get gray artifacts on the > edges of the texture. > > For example: > > The top image is the original PNG, the bottom is after rendering (taken > from screenshot) > > > <https://lh6.googleusercontent.com/-Dyf568n0gD4/UiU4vJP80wI/AAAAAAAACsY/ygEOOrLYBao/s1600/cloud_text_problem.png> > > The bottom image has gray pixel artifacts around the edge. It's also sort > of *blurry* which I can't work out either. > > I tried manually decoding the PNG using this: > > http://wiki.l33tlabs.org/bin/view/TWL/Using+the+TWL+PNGDecoder > > But got the same result. > > I'm creating the texture with: > > GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MIN_FILTER, > GLES20.GL_LINEAR); > GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_MAG_FILTER, > GLES20.GL_LINEAR); > GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_S, > GLES20.GL_CLAMP_TO_EDGE); > GLES20.glTexParameteri(GLES20.GL_TEXTURE_2D, GLES20.GL_TEXTURE_WRAP_T, > GLES20.GL_CLAMP_TO_EDGE); > > My fragment shader is pretty basic, just multiplies the texture color by a > couple of other color values I pass in: > > gl_FragColor = texture2D(u_Texture, v_TexCoordinate) * u_Color * v_Color; > > Does anyone have a clue as to: > > 1) How I can render/create the texture without the artifacts > 2) Why the texture is kind of blurry once it's rendered. > > Thanks! > > > On Sunday, September 2, 2012 11:43:59 AM UTC-7, arberg wrote: >> >> Hi, >> >> I think it would make sense that either Bitmap could be without >> premultiplied alpha, or GLUtils.texImage2D method could take as parameter >> whether to load with or without premultiplied alpha. Since you say Bitmaps >> will never be without premultiplied alpa, I suggest the latter, plus as you >> suggest a convenience method on the Bitmap, which returns its content in an >> array without premultiplied alpha. >> >> It makes sense to me to add the option to GLUtils.texImage2D since the >> very purpose of the GLUtils class is '... to help bridging OpenGL ES and >> Android APIs.' (javadoc class reference). >> >> Cheers Alex >> >> On Friday, 29 June 2012 21:18:59 UTC+2, Romain Guy (Google) wrote: >>> >>> Another big issue similar to alpha-premultiply is that 32Bit ARGB Images >>>> are changed >>>> to 16Bit after scaling (especially if all alpha values are 255), >>>> without some dirty tricks. >>>> This is a big issue to, it's far away from the precission needed for >>>> good normal mapping. >>>> >>> >>> There was a bug in the scaling code that I fixed. a 32 bits image will >>> now always be scaled to another 32 bits image. >>> >>> >>>> >>>> -- >>> Romain Guy >>> Android framework engineer >>> [email protected] >>> >>> -- You received this message because you are subscribed to the Google Groups "Android Developers" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/android-developers?hl=en --- You received this message because you are subscribed to the Google Groups "Android Developers" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. For more options, visit https://groups.google.com/groups/opt_out.

