Gradient issues with 61.09 rc1

There seems to be some issues with gradient filled shapes with sharp corners. It’s sort of like the gradient “leaks” out. (Furthermore, the shapes are black, shouldn’t they initially be a grey gradient?)

It’s a cool effect, but don’t think that’s what you’re trying to do.

BTW: changing the outside tangent on the start to anything but 0 got rid of the problem.

Hi FishB8
First of all this “bug” was not introduced in 0.61.09 release due to the option to create Curved gradients using Rectangle, Circle, Bline or Star tool. It existed since the Curved gradient exists.

Curved gradient maps a given color gradient (a sequence of color points definitions) to a 2D map. The mapping is obtained by the bline that is the curved gradient applied to. If the mapping is broken due to the tangents of the bline are splitted you obtain a leakage. It is not possible to interpolate properly unless you extend the interpolation beyond the sane values. Also if the tangents are null in one point it leaks like in the rectangle or the star.

Notice that you don’t obtain leakage when the tangents are split and you look to the concave part of the bline. It is due that you are overlapping two maps areas into one. Ther is not problem there, but if you want to map an area into a non connected target map you are in troubles. It is similar to try to proyect the earth to a plane. You have to sacrify some information to preserve other. See … projection

Have you got any proposal to solve this or silimar situations?


Well, I’m not familiar with synfig’s internals and how gradients and shapes are represented, so this may be way off.

But if I understand correctly, you are saying that synfig tries to draw a gradient, confined to the space defined by a closed Bezier curve. What if instead, it worked off the model that gradients extend to fill all space available on the canvas, and that the Bezier shapes are then used to mask what part of the gradient is actually shown. (The masking could even be done in raster-space rather than vector-space if that makes it more consistant.)

The only downside to this is that this model gets a little messy if you want to be able to draw gradients on open Bezier shapes.

Well, I obviously haven’t mess with synfig very much. I’ve been playing with the gradients a bit and get how they work a little better, and my masking idea would probably only work well with something like perpendicular gradients.

For regular gradients you might try using two closed bezier curves, one offset inside the other to represent the area of the gradient. You could transform the vertices of the inside and outside gradient independently to control the gradient width.

Another idea that I’ve seen used in 3D apps for creating “seams” it to place more than one vertices on top of the other. So for split tangents, the tangents aren’t really split, but the ducks are actually controlling two separate (and connected) vertices that are in the same position.

Hi FishB8,
our main developer (aka dooglus) has been looking to this bug. It can be solved and my previous explanation of the reason of the leaks is not completely true.

I hope that soon we can have a solution for this bug and that those peaked curved gradients looks like they should look.