Skip to content

Releases: boatbomber/GradientCanvas

v0.1.8 - Fix lossy artifacting and expose thresholds

11 Apr 19:36
Compare
Choose a tag to compare

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

19 Nov 03:48
Compare
Choose a tag to compare

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:

image

But Roblox doesn't render that correctly:

image

This release literally just makes the keyframes 0.08 apart instead of 0.02.

v0.1.6 - Fix streak artifacts

18 Nov 18:28
Compare
Choose a tag to compare

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

14 Nov 08:15
Compare
Choose a tag to compare

Changes to the dynamic lossy valuation as well as minor performance improvements.

Before:
image

After:
image

v0.1.4 - Performance improvements

14 Nov 06:57
Compare
Choose a tag to compare

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

14 Nov 03:34
Compare
Choose a tag to compare

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

12 Nov 04:21
Compare
Choose a tag to compare

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)

12 Nov 03:26
5c54a35
Compare
Choose a tag to compare

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.