On Fri, 2022-02-18 at 09:47 +0100, cyrille henry wrote:
Le 17/02/2022 à 21:24, Roman Haefeli a écrit :
[...]
My impression is that the OpenGL side is all 32bit float. I tried 'quality 1' to [pix_texture] which does (from what I see) linear interpolation. And I also tried bicubic interpolation with a shader written by Cyrille Henry from 2007. The shader code is using type vec4 internally and GLSL spec says that this is 32bit float [1].
Computation is done with 32 bit float, but that does not mean that the result is stored as a 32 bit float... The GPGPU example shows how to keep precision in texture (but not to render in high precision).
In your example, you only need the gem windows to be rendered in 10bits/color. Unfortunately, I don't thing there is flag or message to allow this for now. You should create a feature request.
As Claude says, adding dither is a good way to mask this problem.
Yeah, thanks. Good to know that Gem window is rendered with 8bit. It turns out there is no real benefit in making sure the whole path is 10bit. It is very likely that the projector in the installation space supports only 8bit anyway.
I was finally able to hack something together in your bicubic_interpolation.frag by generating some noise that I add to the result of the bicubic interpolation. It looks good to me.
Thanks a lot for your inputs, Claude and Cyrille.
Roman