ID:2966117
 
Resolved
The HSV/HSL/HCY color spaces didn't clamp their non-hue inputs, which caused strange results for out-of-range values in rgb() and especially in color matrix filters.
BYOND Version:515
Operating System:Windows 10 Pro
Web Browser:Firefox 135.0
Applies to:Dream Seeker
Status: Resolved (516.1657)

This issue has been resolved.
Descriptive Problem Summary:
Saturation (and possibly value/light) in HSV/L color filters seems to "wrap" and alter hue and value/light values when going above/below 0 - 100 range

Numbered Steps to Reproduce Problem:
Add a filter with values that can go out of standard color range

Code Snippet (if applicable) to Reproduce Problem:
    var/active_filter = filter(type = "color", "color" = list(
1, 0, 0, 0,
0, 1.5, 0, 0,
0, 0, 1, 0,
0, 0, 0, 1,
0, -0.5, 0, 0,
), "space" = FILTER_COLOR_HSL)
filters += active_filter


Expected Results:
The filter would clamp resulting values at 0 - 100 range, ensuring that colors remain valid

Actual Results:
With the provided filter, any pixels with saturation lower than 50 would turn bright (red turns into cyan, suspecting that they do a 180 hue shift). Pixels with saturation higher than 50 become desaturated as expected.


Does the problem occur:
Every time? Or how often? Always
In other games? Everywhere
In other user accounts? Everywhere
On other computers? Everywhere

When does the problem NOT occur?

Always occurs

Did the problem NOT occur in any earlier versions? If so, what was the last version that worked? (Visit http://www.byond.com/download/build to download old versions for testing.)

No

Workarounds:

None known
Lummox JR resolved issue with message:
The HSV/HSL/HCY color spaces didn't clamp their non-hue inputs, which caused strange results for out-of-range values in rgb() and especially in color matrix filters.

Login to reply.