HemisphereLight change colors automatically. Why?

This is likely a color space issue — most color pickers are not color managed, and you’ll need to assume their data is sRGB. Something like this should fix it:

const params = { color: hemiLight.color.getHex() };

gui.addColor(params, 'color').onChange((hex) => {
  hemiLight.color.setHex(hex);
});

This works because three.js assumes that hexadecimal and CSS-string colors are sRGB by default. Other methods of getting/setting a color assume the color space used for rendering (Linear sRGB), and you’d need to specify if they’re anything else.

More details:

2 Likes