oizma / angleproject

Automatically exported from code.google.com/p/angleproject
Other
0 stars 0 forks source link

ANGLE's gamma settings do not match OpenGL #31

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
What steps will reproduce the problem?
1. Run any OpenGL program with OpenGL
2. Run the same program with ANGLE

What is the expected output? 

The colors should be the same

What do you see instead?

The colors on the ANGLE program are much brighter.

Original issue reported on code.google.com by g...@chromium.org on 10 Sep 2010 at 1:34

GoogleCodeExporter commented 9 years ago
I use Angle project, and I don't see any brightness issues... Maybe some 
default parameter like global ambient which you don't set is different between 
OpenGL and Angle

Original comment by tom...@gmail.com on 10 Sep 2010 at 8:30

GoogleCodeExporter commented 9 years ago
There is no "global ambient" setting in OpenGL ES 2.0 nor is there one that 
would effect shaders in OpenGL when using it strictly as OpenGL ES 2.0 AFAIK.

Original comment by g...@google.com on 10 Sep 2010 at 8:38

GoogleCodeExporter commented 9 years ago
The issue is not gamma.

The issue is a bug in ANGLE where clearing with a mask, for example 

glColorMask(false, false, false, true); 
glClearColor(0,0,0,1);
glClear(GL_COLOR_BUFFER_BIT);

Is effected by state it should it not be effected by.

Original comment by g...@chromium.org on 15 Sep 2010 at 9:31

GoogleCodeExporter commented 9 years ago
Still not sure why but even though I'm calling

glColorMask(false, false, false, true); 
glClearColor(0,0,0,1);
glClear(GL_COLOR_BUFFER_BIT);

and even though inside Context.cpp in Context::Clear the color is 0xFF000000

The actual alpha is being set to 147. (0x93)

You can see this example in the webgl sample
http://webglsamples.googlecode.com/hg/aquarium/aquarium.html

Run it with ANGLE, press 'L' to turn lasers on/off.  Notice the entire screen 
gets brighter/darker depending on the state.

If you find these lines around line 1700

    // Set the alpha to 255.
    gl.colorMask(false, false, false, true);
    gl.clearColor(0,0,0,1);
    gl.clear(gl.COLOR_BUFFER_BIT);

and add this right after

    var buf = new Uint8Array(4);
    gl.readPixels(0, 0, 1, 1, gl.RGBA, gl.UNSIGNED_BYTE, buf);
    tdl.log(buf[3]);

It will print 147 with lasers off and 255 with them on but you can see from the 
6 lines above, it should always be 255.  Run the same code with OpenGL and the 
problem goes away.

Sorry I have not been able to make a smaller sample but at least it's 
reproducible.

Original comment by g...@chromium.org on 15 Sep 2010 at 10:57

GoogleCodeExporter commented 9 years ago
I believe this was fixed in revision 426.

Original comment by nicolas....@gmail.com on 21 Sep 2010 at 11:18

GoogleCodeExporter commented 9 years ago
Please reopen with more details if there is still another problem here.

Original comment by dan...@transgaming.com on 22 Sep 2010 at 5:21