Okay, I will try this but after all, it happens in OpenGL 1.0 as well and 
there is no chance to change the shader there.
What could I do there? And why did it work on older phones/android versions 
like the S1 and the S2 with Android 2.x?

Am Dienstag, 7. August 2012 09:08:57 UTC+2 schrieb Romain Guy (Google):
>
> Hi,
>
> You should output your colors with premultiplied alpha. Your code should 
> look like this:
>
> vec3 color = clamp(textureColor.rgb * lightWeighting.xyz, 0.0, 1.0);
> color *= 0.5; // premultiply by alpha
>
> gl_FragColor = vec4(color, 0.5);
>
>
>
> On Mon, Aug 6, 2012 at 4:21 PM, Tobias Reich <tobias...@gmail.com<javascript:>
> > wrote:
>
>> I'm working on a new Galaxy S3 and found a problem that didn't occur on 
>> other phones like my old Galaxy S1 or the Galaxy S2 - which has almost the 
>> same GPU as the S3.
>> When drawing my OpenGL models on top of my camera image like this:
>>
>> mGLView = new GLSurfaceView(this); 
>> mGLView.setOnClickListener(InputManager.getInstance()); GameRenderer 
>> renderer = new GameRenderer(kamera, this); 
>> InputManager.getInstance().currentActivity = renderer; 
>> mGLView.setEGLContextClientVersion(2); mGLView.setEGLConfigChooser(8, 8, 8, 
>> 8, 16, 0); setPreserveEGLContextOnPause 
>> mGLView.getHolder().setFormat(PixelFormat.TRANSLUCENT); 
>> mGLView.setZOrderOnTop(true); mGLView.setRenderer(renderer); 
>> setContentView(new CameraView(this), new 
>> LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT)); 
>> addContentView(mGLView, new LayoutParams(LayoutParams.MATCH_PARENT, 
>> LayoutParams.MATCH_PARENT));
>>
>> So the GLRenderer should be transparent. It actually is. It works fine 
>> for all the objects that are opaque as well as the background (where I see 
>> the image of the camera)
>>
>> My problem is, when I make the pixels semi-transparent in the fragment 
>> Shader I get a weird result. The brightest pixels seem overexpose when 
>> "blending together". And it looks like they got clamped after so the value 
>> that brighter than white - loosing probably the first bit - got dark again. 
>> So only the brightest pixels are affected. It happens even if I use a 
>> simple call like:
>>
>>> gl_FragColor = vec4(clamp(textureColor.rgb * lightWeighting.xyz, 0.0, 1.0), 
>>> 0.5);
>>>
>>>
>>
>> So the actual GL-Fragment is clamped and I'm pretty sure it comes from 
>> the camera preview itself. Here is an image that describes my problem:   
>>
>>
>> <https://lh6.googleusercontent.com/-XhUolY4rNXA/UCBQnwRqb6I/AAAAAAAAAAM/YgzaE-KfGZs/s1600/glProblem.jpg>
>>
>> I get more and more convinced that it is an "overflow" for the values but 
>> how can I change this? By the way - perhaps it helps - this effect gets 
>> stronger the lower the alpha value of the fragment (the gl rendered one) 
>> is. So somehow it looks like something is compensating/normalizing the 
>> "semi transparent" values.
>>
>> Is there any way of "clamping" both values together since in the Shader I 
>> can only clamp the actual rendered fragment somehow without asking for the 
>> camera preview values. :-(
>> Thank you very much! I hope it is not a severe problem,
>>
>>   Tobias Reich 
>>  
>>
>>
>>
>>  -- 
>> You received this message because you are subscribed to the Google
>> Groups "Android Developers" group.
>> To post to this group, send email to 
>> android-d...@googlegroups.com<javascript:>
>> To unsubscribe from this group, send email to
>> android-developers+unsubscr...@googlegroups.com <javascript:>
>> For more options, visit this group at
>> http://groups.google.com/group/android-developers?hl=en
>
>
>
>
> -- 
> Romain Guy
> Android framework engineer
> roma...@android.com <javascript:>
>
>  

-- 
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