Author Topic: Real Splatter Node ?!?  (Read 1314 times)

I need to have a node that does the following:

1. Take an input shape and replicate it a certain number of times (without scaling or transforming it in any way). Number is given as user parameter.

2. Transform these replications randomly according to user given parameters (random shift x and y, random rotation, random scale, random luminance etc.)

3. Blend the result together (Screen blending mode works best here).

I don't want the shapes to be aligned to any kind of grid. This is what all the pattern nodes (tile generators etc.) and even the splatter node seem to do (how can there be a grid with 'splatter' ??). The key problem is: It is not possible to create more instances of the input without them becoming smaller.

I have been trying to accomplish this for days now but it does not seem to be possible. Is there something that I overlooked?

If there was something like a 'for loop' then I could create this myself, but there isn't ... ;(

Any help would be much appreciated. I don't want to shelf my current project because of this.

to get those results you'll have to build your own as all built-in solutions suffer on one of the points.
look inside the slope blur node on how to set up a network that iterates over things. unfortunately there is no way in substance to have it be an arbitrary number of max iterations - you need to set it all up beforehand.
if you need more than a few iterations we've described our approach to a slightly more complex setup here:

Thank you very much for your advise.

My solution right now is to just roll out the loop like in slope blur. I'm thinking about a maximum of 20 iterations, so its doable. Sucks super hard that there is no for loop. In Houdini for example there is. I'm sure Designer could realize the loop in a similar way. But probably they don't want to for some weird reason ...

I will also have a look at the article but is probably overkill for my needs here.

Thanks !

Since this is just about splattering shapes you could use the fx map, which works iteratively. But it does not allow for any per-pixel functions, so you can't implement other blend modes than the standard ones: max, add and add/sub.

Well, the blend mode I need here is screen. The others don't give me proper results, I tried.
I already implemented it by rolling out a loop of transforms that are fed random values (generated by white noise). It does exactly what I described.
The only thing that sucks about it is that it looks terrible and is extremely annoying to do. A for loop would be much nicer.