P.S.  It turns out the *blur* is from using GL_CLAMP_TO_EDGE.  Changing to 
GL_REPEAT removes the blur even though it doesn't really make sense to 
repeat the texture as I'm just rendering sprites as quads (triangle pairs).

On Monday, September 2, 2013 6:29:17 PM UTC-7, Jason wrote:
>
>
> 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.

Reply via email to