Page MenuHome

RGB/Vector/Float curves node fails to clamp output
Closed, ResolvedPublic

Description

System Information
Operating system: Windows-10-10.0.19041-SP0 64 Bits
Graphics card: GeForce GTX 1080/PCIe/SSE2 NVIDIA Corporation 4.5.0 NVIDIA 431.07

Blender Version
Broken: version: 3.0.0, branch: master, commit date: 2021-12-02 18:35, hash: rBf1cca3055776
Worked: (newest version of Blender that worked as expected)

Short description of error
When using the RGB/Vector/Float curves nodes and choosing the Extend Horizontal option, the output is the same as with Extend Extrapolated if the X value of the last point of the curve widget curve is greater than 1 and the Y value is smaller than 1.
The inverse is the case for the first point, so the output is the same as with Extend Extrapolated if the x value of the first point is smaller than 0 and the y value is greater than 0.

The image below shows the areas where, if you place the point, the result in the render will show as Extrapolated instead of Horizontal:

Exact steps for others to reproduce the error

  • Open attached file
  • Set Cycles Render Preview display mode to better visualize the problem through displace (Eevee has no such issue.)

The test files only include the case for the last point and for the RGB curves node, but everything is applicable to the first point and the Vector/Float curves node.

Each of the three objects shows the wrong result. The beginning and end of the geometry should be Horizontal.

Event Timeline

Richard Antalik (ISS) renamed this task from RGB/Vector/Float curves nodes extend results incorrectly to RGB/Vector/Float curves node fails to clamp output.Mar 3 2022, 1:51 AM
Richard Antalik (ISS) changed the task status from Needs Triage to Confirmed.
Richard Antalik (ISS) updated the task description. (Show Details)

Oops, I was too late, will check previous edit

The explanation was confused and was not correctly explaining the problem.
I edited the description and added an image to help understanding.

I looked into this bug and it appears to be a more general problem. All non-GLSL shaders completely ignore this setting. It looks to be an oversight by the developers.

The only reason it appears correct sometimes is due to two adjacent table values being identical:

Should be fixed with D14393