Noise + Perspective + Grid

Noise Distortion tool is my most favorite of tools up until now especially since I’m able to pull off complex fire, water and smoke effects with its help, but I’ve realized that the tool’s got more potential.

One draw back is that the noise tool is heavily parameter based (there may be visual controls but I guess I haven’t seen it). Another drawback is that it’s quite linear/2D.

Now combining the perspective tool with the Noise tool should give you more depth-based noise (and masking, the kinda distortion I’ve seen in Soul Eater anime where Death the Kid faces a ghost ship) that might resemble 3D but the algorithm might need to harness the power of the hardware’s graphics acceleration.

But how WOULD we know which direction the plane is being moved? Thus comes “perspective grid” within the Noise Distortion tool where (if enabled) the perspective could be moved in a virtual 3 Dimensional space, much like our current perspective tool, and thus rendering the noise as such.

On another note, how do I make Synfig take advantage of multi-core processors? Not just rendering, I mean while working on high-end resource hungry projects.

Apart of displacement and size the other parameters are difficult to represent in the canvas.

That’s the way it works: Distortion of a 2D context buffer into a 2D context buffer.

A visual example please?

Hmmm I need something more visual to understand what’s behind this :slight_smile:

Synfig bottle neck is render (in final render or meanwhile designing the animation. Until we can enable opengl you just can:

  1. use linux better than windows
  2. Use a bigger pixel size in the low resolution render.
  3. Use quality = 10 (basically deactivate all the effects) when working the animation. Enable them back to do a quick render to see the results.
  4. Deactivate layers that you don’t need when editing others (i.e backgrounds if they are not a reference for the character animation).


maybe the only think i can remember that is a noticeable issue is that Perspective, Rotation and maybe the other distortion-related layers does not anti-alias very well everything they have as child objects:
Of course at the end, a ‘Super Sample’ Layer set at 4x4 solve the problems, sometimes only one is enough on top of all of them, but sometimes it’s neccesary to have a sampling layer for every ‘encapsulated’ layer (at least that is how i’m working now), i don’t quite know at all how they work with the current method of rendering, but if sometime you enable OpenGL on Synfig, take note on this, it would save some memory also =), out of that i think that Synfig manage quite good everything, it’s true sometimes it’s tricky, but it’s the only way to understand what are you doing.


Ah crud! Sorry for the late reply, I decided to take a break from my movie so I could work on my novel. At least until the Act 1 of the script is reviewed, so anyway–

Check the attachments. The first one is a simple “grid” that can enabled via simple check box, similar to how you enable “Turbulence” in Noise Distortion. In the second one, you can see some green squiggly lines that represent the distortion from one point to the other. As you can see, it’s 2D-ish, exactly as it currently is in Synfig (minus the grid), but the third one shows the perspective tool applied to it. Of course, combining the perspective tool with Noise right now is… confusing, thus the grid. When you check the “Enable 3D grid” checkbox in Noise, it shows you a grid with some handles at the corners which work quite like Perspective tool but only distort the Noise Distortion element.

If you see what I mean. @.@

Oh and I use Ubuntu for Synfig since it hardly crashes in there. I have most of the tools I require in that.

Is this what you mean?


Sort of, but not entirely. Here’s the limitations in that method.

You’ve applied distortion to the object and then warp; it’s all in standard hierarchy, and that’s basically the problem, because the warp not only affects the noise layer but ALSO the object layer since Warp is a master layer, and that’s not what we want. If we encapsulate warp and noise, not only will warp not affect the object but the noise would be isolated as well, and thus pointless. This method wouldn’t work as desired when you already have a background and don’t want to warp it; just the noise. There are two ways to fix this.

  1. If there was a system where we could specify if an effect layer (noise, warp, blur) affects any of the other layers below it or not. Basically “affect this layer/don’t affect this layer”, and thus it would be easier for warp not to influence the object.

  2. If the “perspective mode” was built within Noise. I’ve already mentioned that before.

One thing did struck me though. When I was trying out Peacock I liked the node-based system since it gives you much freedom for the effects compared to layer based and you can apply effects both in a hierarchy and side by side. I wondered if Effects in Synfig could be node-based as well, but then again despite the possibilities there would still be much limitations, so I suppose it wouldn’t be a good enough idea.

So I guess that this is what you want:

Paste canvas
-Stuff 1 <- noise this one
-Stuff 2 <- noise and warp this one
-Stuff 3 <- warp this one
-Stuff 4 <- Do not affect this one

So it becomes like this in Synfig workflow:

Paste Canvas 1
-Noise (a)
-Stuff 1
Paste Canvas 2
-Noise (a)
-Warp (b)
-Stuff 2
Paste Canvas 3
-Warp (b)
-Stuff 3
Stuff 4

Where (a) and (b) means linked layers (all parameters are linked so it works as cloned layers).
What would be interesting is to create cloned layers automatically. Like duplicate but with all the parameters linked.

I still don’t get it. Linked layers? XD Do you mean warp the “noise” effect layer without warping the object? How do I pull that off?

Liked layers means that all parameters of both layers are linked, so both layers are the same but in different places. It can be done with effect layers or content layers.