R3F / Drei -> Image component with videoTexture. How do I fix brightness/tone mapping issue?

In most cases, the output of a video-driven shader material should be sRGB-encoded and not tone mapped. Use tone mapping if the video drives an albedo, emissive, or other PBR material input, but that is rare.

That said… excluding these fragments doesn’t feel like the right way to achieve the fix, it’ll break other things later (post-processing comes to mind). If excluding “encodings_fragment” improves the result, then it probably means the video was never decoded from sRGB to Linear-sRGB to begin with. Currently that needs to be done in a shader …

… because we can’t use WebGL’s hardware sRGB decoding for videos right now. I think Drei’s shader material will require a similar decoding block for the video texture here, so that the encoding block starts from the expected color space.

2 Likes