Skip to content

Inconsistent Saturation Behavior in Vibrance Filter #255

Description

@Zeus64

When using the vibrance MSL filter from the file vibrance.msl, applying a parameter value of -0.01 results in a significantly more saturated image compared to using 0.01. This asymmetry is unexpected; ideally, small positive and negative adjustments around zero should produce similar visual effects in the opposite directions. Notably, only when the negative parameter reaches around -0.3 does the output start to approximate the effect of a 0.01 value.

Steps to Reproduce:

Clone the repository or open the vibrance.msl file.

Apply the vibrance filter with a parameter value of 0.01 and observe the image’s saturation.

Apply the vibrance filter with a parameter value of -0.01 and compare the saturation level.

Optionally, increase the negative parameter gradually (e.g., -0.05, -0.1, -0.3) to see how the effect changes.

Expected Behavior:
Minor adjustments to vibrance (both positive and negative values near zero) should result in similarly scaled changes in image saturation, with the signs only affecting the direction of the change. A value of -0.01 should not cause a significantly higher saturation compared to 0.01.

Actual Behavior:
A vibrance value of -0.01 produces much higher saturation than a value of 0.01. It takes a negative value of approximately -0.3 for the saturation effect to match that produced by 0.01.

Impact:
This inconsistency might lead to confusion for users attempting to fine-tune image saturation. It also indicates a potential bug in the calculation or implementation of the vibrance effect within the shader code.

Additional Notes:

Verify if the asymmetry in behavior is intentional (e.g., for artistic purposes) or a coding mistake.

Consider reviewing the math handling positive and negative vibrance values to ensure symmetric behavior around zero.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions