| 624 |
|
case 't': /* trace */ |
| 625 |
|
return(traceray(ekey->x, ekey->y)); |
| 626 |
|
case '=': /* adjust exposure */ |
| 627 |
+ |
case '@': /* adaptation level */ |
| 628 |
|
if (avgbox(cval) == -1) |
| 629 |
|
return(-1); |
| 630 |
< |
n = log(.5/bright(cval))/.69315 - scale; /* truncate */ |
| 630 |
> |
comp = com=='@' |
| 631 |
> |
? 59.2/pow(1.219+pow(luminance(cval)/exposure,.4),2.5)/exposure |
| 632 |
> |
: .5/bright(cval) ; |
| 633 |
> |
comp = log(comp)/.69315 - scale; |
| 634 |
> |
n = comp < 0 ? comp-.5 : comp+.5 ; /* round */ |
| 635 |
|
if (n == 0) |
| 636 |
|
return(0); |
| 637 |
|
scale_rcolors(ourras, pow(2.0, (double)n)); |