ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cal/cal/cieluv.cal
Revision: 1.4
Committed: Thu Jun 18 00:12:18 2015 UTC (8 years, 11 months ago) by greg
Branch: MAIN
CVS Tags: rad5R4, rad5R2, rad5R0, rad5R1, rad5R3, HEAD
Changes since 1.3: +2 -2 lines
Log Message:
Fixed non-constant function

File Contents

# Content
1 { RCSid $Id: cieluv.cal,v 1.3 2015/06/18 00:11:39 greg Exp $ }
2 {
3 Compute Luv color space and color differences from XYZ primaries.
4
5 5/4/98 G.W.Larson
6 }
7 Xw = 1; Yw = 1; Zw = 1; { default white }
8 sq(x) : x*x;
9 up(Xi,Yi,Zi) : 4*Xi/(Xi + 15*Yi + 3*Zi);
10 vp(Xi,Yi,Zi) : 9*Yi/(Xi + 15*Yi + 3*Zi);
11 up_neu : up(1,1,1);
12 vp_neu : vp(1,1,1);
13 uw = up(Xw,Yw,Zw);
14 vw = vp(Xw,Yw,Zw);
15 Ls(Yi) = if(Yi/Yw - .01, 116*(Yi/Yw)^(1/3) - 16, 903.3*Yi/Yw);
16 us(Xi,Yi,Zi) = 13*Ls(Yi)*(up(Xi,Yi,Zi) - uw);
17 vs(Xi,Yi,Zi) = 13*Ls(Yi)*(vp(Xi,Yi,Zi) - vw);
18 hue_deg(Xi,Yi,Zi) = 180/PI*atan2(vs(Xi,Yi,Zi),us(Xi,Yi,Zi));
19 sat_uv(Xi,Yi,Zi) = 13*sqrt(sq(up(Xi,Yi,Zi)-uw) + sq(vp(Xi,Yi,Zi)-vw));
20 dE(X1,Y1,Z1,X2,Y2,Z2) = sqrt(sq(Ls(Y1)-Ls(Y2)) + sq(us(X1,Y1,Z1)-us(X2,Y2,Z2))
21 + sq(vs(X1,Y1,Z1)-vs(X2,Y2,Z2)));