R110 to r175 color space

Ok, we’ve been doing a big migration leap here. From 110 to 157. So, we’ve been going through all the necessary migration tasks. One issue in particular, however, is color. We have, for instance of a green screen video that we can successfully make (the green) transparent. Under r175 the green is always muted regardless of what we do. Camera light value bumps, color management settings, colorspace settings,

Here;s our original;

And here;s what it looks like under 175

Tried
texture.colorSpace = THREE.LinearSRGBColorSpace
texture.colorSpace = THREE.SRGBColorSpace;

Thoughts?

If filtering happens after rendering: renderer.outputColorSpace?

I add the colorspace before rendering.

Maybe need for effect composer with: examples\jsm\shaders\GammaCorrectionShader.js

If you’re using MeshStandardMaterial you can try material.toneMapped = false

Did you set the renderer output colorSpace as @PavelBoytchev suggested above?

I have

renderer.outputColorSpace = THREE.SRGBColorSpace;

And (video) texture.toneMapped = false

No change

toneMapped is a property of Material not texture iirc, try like this…

texture.colorSpace = THREE.SRGBColorSpace;
material.toneMapped = false;

if you’re using MeshBasicMaterial this will not affect the material but if you’re using MeshStandardMaterial you should see a difference…

Nope.

texture.colorSpace = THREE.SRGBColorSpace;
material.toneMapped = false;
//
base_material = new THREE.MeshStandardMaterial({
side: THREE.DoubleSide,
transparent: true,
map: texture});

Sorry. Nope.

texture.colorSpace = THREE.SRGBColorSpace;
base_material = new THREE.MeshStandardMaterial({
side: THREE.DoubleSide,
transparent: true,
map: texture});
base_material.toneMapped = false;

Have a look at this thread R3F / Drei -> Image component with videoTexture. How do I fix brightness/tone mapping issue? - #6 by donmccurdy

My only suggestions (in case no solution is found) are:

  • Test with various releases between 110 and 175 to find where exactly things become different → then check the changelog file for that specific release. This may provide more concrete clues what features to tackle.
  • Put a minimal online debuggable example, so that others can replay and experiment various ideas. Sometimes blind guessing an issue is like fixing a car engine by looking at a photograph of the engine.
  • Change the green-screen-filter to act on the current shade of green
2 Likes

Also if you’re using post-processing or custom ShaderMaterial here, that could be important to mention. The settings you’ve described (texture.colorSpace = SRGBColorSpace, material.toneMapped = false) do sound correct, assuming default renderer settings.

This is also assuming the video file is, in fact, in sRGB color space. That’s usually true, but texture.colorSpace = SRGBColorSpace for color textures is just the most common case, not a rule, you may need to check the video’s metadata.

1 Like