Re: [android-developers] OpenGL and Camera Preview - blending together gets “over saturated” color

2012-08-08 Thread Tobias Reich
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.comjavascript:
  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/AAM/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.comjavascript:
 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

Re: [android-developers] OpenGL and Camera Preview - blending together gets “over saturated” color

2012-08-08 Thread Tobias Reich
Alright. I got it.
Now it works. I simply didn't multiply the values!
Man, you helped me a lot! Really! How can I thank you for this??? I was 
working on that problem for... ages!
It doesn't explain why it worked perfectly fine on older machines nor does 
it explain what to do in OpenGL 1.0 but at least it is a solution!
Thank you very much!
 Tobias

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


  

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

Re: [android-developers] OpenGL and Camera Preview - blending together gets “over saturated” color

2012-08-08 Thread Tobias Reich
So than it was just pure luck it worked fine with all the previous 
versions? What changed? Why can't it just be like it was before?
I mean, its okay now and not really a big problem. - even though I don't 
know where I could have seen that information in the API.
Thanks anyway!

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

[android-developers] OpenGL and Camera Preview - blending together gets “over saturated” color

2012-08-07 Thread Tobias Reich
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/AAM/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-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

[android-developers] Re: OpenGL ES on Camera Preview

2012-08-07 Thread Tobias Reich
Huh, sorry,
might be that I made a mistake when compiling.
Please try it again.
Do you have a Galaxy S3? And there are no distortions in the lower grey 
area?

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

[android-developers] Re: OpenGL and Camera Problem

2012-08-07 Thread Tobias Reich
Huh, that is strange.
So it worked and than it crashed? And it looks like it was crashing at the 
setParameters();
That is a place where it shoudln't crash at all!!
Which Android Version do you have? Did you take the complete project? So 
there is no mistake in the Manifest (e.g. for the Camera rights)?
Thank you anyway. I just got some other replys that it didn't work on other 
phones as well. So I wonder what was changed.
Does anyone know a working Augmented Reality App for the S3?
Anyway, thank you for your help,
 Tobias

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