Color or Brightness Issue

Started by
5 comments, last by Anthony Serrano 12 years, 10 months ago
I have a display of some dots moving left and right. When the dots are stationary, the dots are brighter. In other words, when I begin the animation, the dots get darker. The RGB values are set at (.5, .5, .5). I assume that when stationary, the color of the dots is correct. But once moving, it changes and it no longer reflects the correct color. Any thoughts on why this happens?
Advertisement
What kind of environment are you using? and does the mouse cursor look weird as well when you move it fast?

If you are using an environment with a point light, then yes, it is most likely a lightning issue.. Try to disable the lightning if possible.
It's an issue of persistence of vision. The moving dots appear darker because they are clashing with the afterimage of the previous frame in the eye of the viewer. It's particularly noticeable when there is a high contrast between the moving object and the background, and when the speed of motion of large in relation to the size of the object.

Also, depending upon the monitor, there may be response time effects - if a pixel changes from dark to bright to dark faster than the monitor can respond fully to changes in intensity, the pixel by definition won't be able to reach full intensity.

What kind of environment are you using? and does the mouse cursor look weird as well when you move it fast?

If you are using an environment with a point light, then yes, it is most likely a lightning issue.. Try to disable the lightning if possible.


I'm using C++ in OpenGL. If I move my mouse rapidly across the screen, the trailing pointers look darker than the leading pointer.

It's an issue of persistence of vision. The moving dots appear darker because they are clashing with the afterimage of the previous frame in the eye of the viewer. It's particularly noticeable when there is a high contrast between the moving object and the background, and when the speed of motion of large in relation to the size of the object.

Also, depending upon the monitor, there may be response time effects - if a pixel changes from dark to bright to dark faster than the monitor can respond fully to changes in intensity, the pixel by definition won't be able to reach full intensity.


Interesting. It is the most noticeable when the dots are near the color of the background (less contrast). When the dots are full white (1.0,1.0,1.0), I still see the dots get slightly darker.

Thanks for your insight. Now, is there any way around this? A screen with a higher refresh rate?

[quote name='Anthony Serrano' timestamp='1306443776' post='4816177']
It's an issue of persistence of vision. The moving dots appear darker because they are clashing with the afterimage of the previous frame in the eye of the viewer. It's particularly noticeable when there is a high contrast between the moving object and the background, and when the speed of motion of large in relation to the size of the object.

Also, depending upon the monitor, there may be response time effects - if a pixel changes from dark to bright to dark faster than the monitor can respond fully to changes in intensity, the pixel by definition won't be able to reach full intensity.


Interesting. It is the most noticeable when the dots are near the color of the background (less contrast). When the dots are full white (1.0,1.0,1.0), I still see the dots get slightly darker.

Thanks for your insight. Now, is there any way around this? A screen with a higher refresh rate?
[/quote]

Test on a CRT monitor. This is not an afterimage issue, it's an issue inherent to the construction of LCD monitors. The crystals take a non-trivial amount of time to change states, which darkens/blurs moving objects. The effect is especially visible on thin objects with medium brightness (your exact scenario).


Newer and/or pricier monitors tend to be better in this regard. Older and cheaper monitors tend to have more pronounced issues (for instance, scrolling text actually disappears on many old LCDs).

This is something you need to consider in your design. Try using brighter and thicker objects; try using non-grayscale colors (gray is the hardest color for the monitor to reproduce and the effect is more pronounced there); avoid thin lines and points; test across a range of different monitors (what may look ok on one monitor may look very bad on a different one).

Edit: refresh rate has nothing to do with this - it's a response time issue that depends on the construction of the monitor (higher refresh rates do not automatically mean faster response times). Additionally, do not trust the latency specs of monitors (e.g. 2ms or 8ms) - they are completely bogus.


[OpenTK: C# OpenGL 4.4, OpenGL ES 3.0 and OpenAL 1.1. Now with Linux/KMS support!]


[quote name='Anthony Serrano' timestamp='1306443776' post='4816177']
It's an issue of persistence of vision. The moving dots appear darker because they are clashing with the afterimage of the previous frame in the eye of the viewer. It's particularly noticeable when there is a high contrast between the moving object and the background, and when the speed of motion of large in relation to the size of the object.

Also, depending upon the monitor, there may be response time effects - if a pixel changes from dark to bright to dark faster than the monitor can respond fully to changes in intensity, the pixel by definition won't be able to reach full intensity.


Interesting. It is the most noticeable when the dots are near the color of the background (less contrast). When the dots are full white (1.0,1.0,1.0), I still see the dots get slightly darker.

Thanks for your insight. Now, is there any way around this? A screen with a higher refresh rate?
[/quote]

In that case, it's less about persistence of vision and more about the way LCD monitors work.

In short, LCD monitors respond significantly faster to large brightness changes than to small, so in order to improve response times, most LCD monitors first make a large coarse brightness adjustment, and then fine-tune the pixel until it stabilizes at the correct level. The net effect of this is that areas in motion appear to have a lower bit-depth than static areas - this also causes significant mach-banding artifacts on moving gradients.

Changing the refresh rate will really do nothing about this - the best way to avoid such artifacts is simply to avoid small, rapidly-moving objects (and large on-screen gradients).

This topic is closed to new replies.

Advertisement