There is indeed a bug with bump + OIT that comes from shader derivatives (dfdx and dfdy) being equal to 0, probably because some code paths from OIT don’t reach the derivative calculation. I’m still looking for a proper way to fix it, as safeguarding dfdx values has proven to be breaking bump.
In the meantime, I would advise to either disable bump or disable OIT, whichever is less important visually in your case
it seems to me that the normal error is fixed (checked version 5.13.3). Thank you very much @CraigFeldspar.
However there is still an error with the sorting, when hdr is to true for the rendering pipeline.
@CraigFeldspar I am sorry to tell you the normal error is still there. Just checked version 5.14.1.
In addition to that, it does not break with one or the other.
There is a sorting error, when hdr is set to true and black lines appear, when a normal map is used.
spent another few hours debugging that, I still don’t have a fix but I’m closer to finding the real problem. Posting details here in case someone else wants to take a stab at it too :
Turns out the problematic lines are in the oitFragment.fx shader bit : we use texelFetch and gl_FragCoord to retrieve the previous depth/color. I didn’t notice the problem during the development because I always used constant alpha values for the whole mesh. In here, the opacity texture makes alpha values vary from pixel to pixel, and it turns out this texelFetch sometimes doesn’t exactly sample the right depth/alpha (dunno why though). If you replace these fetches by a constant value, the problem is gone. Could also be a side effect somewhere else in the code, who knows…
I’ll pick back this issue later on, but for now I feel like I spent too much time on it, I’ll let my eyes rest a bit
Is the chromium bug tracker the right place to report it?
Isn’t it more an Nvidia issue?
Nonetheless, we could help ourselves by precomputing the tangents and skipping the whole dfdx/dfdy calculation in the shader. By doing this, the black lines disappear.
But now we have a new problem: When an object is viewed from a distance, it becomes noisy. Maybe this is due to missing trilinear filtering?
The noise is only visible, when “scene.useOrderIndependentTransparency” is set to true.