1 |
greg |
1.1 |
SETTING GAMMA FOR A SPECIFIC MONITOR |
2 |
|
|
|
3 |
|
|
Gamma correction is a crude way of compensating for the nonlinear |
4 |
|
|
response function of a display device. Most CRT monitors roughly follow |
5 |
|
|
a power law in their response function, ie: |
6 |
|
|
|
7 |
|
|
output luminance = signal ^ gamma |
8 |
|
|
|
9 |
|
|
where gamma is typically between 1.5 and 3. Some system software |
10 |
|
|
attempts to partially compensate for this natural response function, but |
11 |
|
|
usually does not completely eliminate it (which would have other |
12 |
|
|
undesirable effects). |
13 |
|
|
|
14 |
|
|
Most of the Radiance display drivers look at an environment variable |
15 |
|
|
called "DISPLAY_GAMMA" to determine how to set the gamma correction for the |
16 |
|
|
current monitor. Many programs also have a -g option for setting the |
17 |
|
|
gamma value explicitly, but the environment variable is the only way to |
18 |
|
|
control gamma correction for rview, for example. |
19 |
|
|
|
20 |
|
|
To determine the approximate gamma for your monitor, display of the |
21 |
|
|
distributed picture file ray/lib/lib/gamma.pic like so: |
22 |
|
|
|
23 |
|
|
% ximage -g 1 -b ray/lib/lib/gamma.pic & |
24 |
|
|
|
25 |
|
|
Note that the gamma here has been explicitly set to 1, effectively |
26 |
|
|
turning gamma correction off for this test. |
27 |
|
|
|
28 |
|
|
Now, set the contrast and brightness controls on the monitor to what you |
29 |
|
|
would consider your normal settings. Stand back from the monitor a bit |
30 |
|
|
and try to match up the average brightness of the stripes on the left of |
31 |
|
|
the image with a patch on the right of the image. This will be the |
32 |
|
|
gamma value for this monitor. |
33 |
|
|
|
34 |
|
|
All that's left to do is to put a line of the form: |
35 |
|
|
|
36 |
|
|
setenv DISPLAY_GAMMA 2.2 |
37 |
|
|
|
38 |
|
|
in your .login or .cshrc file for C-shell users, or: |
39 |
|
|
|
40 |
|
|
DISPLAY_GAMMA=2.2 |
41 |
|
|
export DISPLAY_GAMMA |
42 |
|
|
|
43 |
|
|
in your .profile for Bourne shell users. You may also use a more |
44 |
|
|
complicated setting for different monitors if you use many displays, eg: |
45 |
|
|
|
46 |
|
|
if ( $?DISPLAY && ! $?DISPLAY_GAMMA ) then |
47 |
|
|
switch ($DISPLAY) |
48 |
|
|
case pink*: |
49 |
|
|
case floyd*: |
50 |
|
|
setenv DISPLAY_GAMMA 1.8 |
51 |
|
|
breaksw |
52 |
|
|
case hobbes*: |
53 |
|
|
case demo460*: |
54 |
|
|
setenv DISPLAY_GAMMA 2.6 |
55 |
|
|
breaksw |
56 |
|
|
case wimsey*: |
57 |
|
|
setenv DISPLAY_GAMMA 1.7 |
58 |
|
|
breaksw |
59 |
|
|
endsw |
60 |
|
|
endif |