function RGB=wave2rgb(WL, GAMMA) %wave2rgb(WL, GAMMA) if (WL < 380) R = 1; G = 0; B = 1; end if ((WL >= 380) & (WL <= 440)) R = -1 * (WL - 440) / (440 - 380); G = 0; B = 1; end if ((WL >= 440) & (WL <= 490)) R = 0; G = (WL - 440) / (490 - 440); B = 1; end if ((WL >= 490) & (WL <= 510)) R = 0; G = 1; B = -1 * (WL - 510) / (510 - 490); end if ((WL >= 510) & (WL <= 580)) R = (WL - 510) / (580 - 510); G = 1; B = 0; end if ((WL >= 580) & (WL <= 645)) R = 1; G = -1 * (WL - 645) / (645 - 580); B = 0; end if ((WL >= 645)) R = 1; G = 0; B = 0; end % % LET THE INTENSITY SSS FALL OFF NEAR THE VISION LIMITS % if (WL > 700 & WL <= 807) SSS = 0.3 + 0.7 * (780 - WL) / (780 - 700); elseif (WL < 420 & WL >= 367) SSS = 0.3 + 0.7 * (WL - 380) / (420 - 380); elseif (WL <= 700 & WL >= 420) SSS = 1; else SSS = 0; end % % GAMMA ADJUST % RR = (SSS * R) ^ GAMMA; GG = (SSS * G) ^ GAMMA; BB = (SSS * B) ^ GAMMA; RGB = [RR GG BB];