Releases: boatbomber/GradientCanvas
v0.1.8 - Fix lossy artifacting and expose thresholds
Vastly improves color streak artifacts in the render. Exposes the internal color diffing thresholds as Canvas.Threshold and Canvas.LossyThreshold so you can tweak as well.
v0.1.7 - Fix Roblox failing to draw closely grouped keyframes
Apparently, if you had keyframes in a gradient that are too close together Roblox can sometimes fail to render it.
The gradient correctly computes the character's arms as solid white:
But Roblox doesn't render that correctly:
This release literally just makes the keyframes 0.08 apart instead of 0.02.
v0.1.6 - Fix streak artifacts
If two colors are very similar they get blended. However, if those two pixels are far apart, the blend can become noticeable as it stretches across a long distance. This update imposes a dynamic distance limit to the blending to avoid this.
v0.1.5 - Fixed awful artifacting bug
v0.1.4 - Performance improvements
Implemented some performance gains throughout- removing table length checks, square root calls, and adding early exit clauses to avoid work.
This version is up to ~60% faster in some cases! You should definitely switch to it.
v0.1.3 - Dynamic compression and CIE76
The lossy compression threshold is now dynamic instead of hardcoded, so it can better handle a wide variety of images. It also uses CIE76 delta E so that the visual quality loss is nearly imperceptible.
v0.1.2 - Major performance gain
When you call :Render()
, this version will only recompute+redraw the columns that have had changed pixel(s) since the last render.
This saves tons of CPU since it no longer has to loop over everything and compute+draw.
Instead, it loops over columns that were updated by a :SetPixel()
call and recomputes+redraws just those. Huge win!
v0.1.1 - Better compression (and bug fixes)
This version merges colors based on perceived difference, calculating color space according to the cones of a human eye. This means that the blending artifacts are less noticeable to us humans, while still keeping the Instance count nice and low. With this, I've also made it compress a bit more aggressively.
Also fixed some bug with edge cases.