HSBToRGB.js 808 B

1234567891011121314151617181920212223242526
  1. //This file is automatically rebuilt by the Cesium build process.
  2. export default "/**\n\
  3. * Converts an HSB color (hue, saturation, brightness) to RGB\n\
  4. * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl}\n\
  5. *\n\
  6. * @name czm_HSBToRGB\n\
  7. * @glslFunction\n\
  8. * \n\
  9. * @param {vec3} hsb The color in HSB.\n\
  10. *\n\
  11. * @returns {vec3} The color in RGB.\n\
  12. *\n\
  13. * @example\n\
  14. * vec3 hsb = czm_RGBToHSB(rgb);\n\
  15. * hsb.z *= 0.1;\n\
  16. * rgb = czm_HSBToRGB(hsb);\n\
  17. */\n\
  18. \n\
  19. const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\n\
  20. \n\
  21. vec3 czm_HSBToRGB(vec3 hsb)\n\
  22. {\n\
  23. vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www);\n\
  24. return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y);\n\
  25. }\n\
  26. ";