A new modifier for adding randomness to mesh objects, duplicated objects and arrays

Yeah. Except the node based modifier system isn’t much more than an idea (afaik) whereas this code is available right now…

Still, it may not help since there seems to be a policy against modifiers that introduce overlap or do many different things.

More likely, this may need to be remade into a modifier that displaces the transform of individual mesh islands which include those generated by the stack (removes functionality overlap and can be used with unmodified models), or maybe this even gets remade into an “island displacement” mode for the displace modifier so textures can be used.

Cant understand why they would reject such item. I think for 3d artists its very important to mimic real life behaviour. Making objects more random is pretty much a key to that i think

Last I read, it’s because it had a significant number of overlap functionality-wise with the displace modifier (particularly the modifier’s “vertex mode” which could be done with a very small noise texture, I’m not sure about the “whole mesh mode” but it may be the case there too if it actually displaced the surface).

Can we just have a bit of overlap until they implement the node based modifier system? I mean really, I think most of us would forgive them for the small amount of temporary overlap in this case.

Has anyone tried this to make grass? Are the render times similar to the particle system (when duplicating meshes with it)? Just wondering, I hate using the particle system in Blender.

Didnt BlenderGuru noticed in his trailer that mesh grass is much faster than particle grass? Also mesh grass looks much better and way more realistic

Hi. Indeed, the noise modifier was trashed. There is no working alternative within the standard Blender for introducing randomness into things generated by array modifiers, nor for objects generated through cloning (Alt-D). The fact that some (small part) of its features could be achieved using the Displace Modifier is not the main reason, I think. The dream of some day having a node based modifier system is maybe a part of the explanation. The fact that it introduces the new concept (in the scope of modifiers) of loose parts is maybe a part of it too, although many had felt this could be useful to other modifiers as well. And the fact that it was started and developped, and demonstrated without prior agreement, seems to not be the best way to get a contribution accepted, which I didn’t know. I had been working closely with Bastien (mont29), who is one of the leading committers, for quite a few weeks on fine-tuning its features and implementation, so its a little disappointing. It was even shown with enthousiasm on Blender Developper “Rocket Science” (https://www.youtube.com/watch?v=t4MG6LMBrFQ), which I thought was a good omen. For those who know how to recompile Blender, I think generating a version with the noise modifier is quite possible (https://developer.blender.org/D320). I hear that the “Blender Market” now has a similar thing for sale, which is all the more heartbreaking, since mine was free… But those for whom these features are must-have can get them there, for a very reasonable price.

I tried looking at the blender market, site seems down.

But simply making a py file of that source code and replace the current modifier.py doesnt work i presume?

At the least, we should just have a ‘loose parts’ option for the displacement modifier, it would virtually eliminate any chance of functionality overlap and it might be a simpler implementation than an entirely new modifier (you get texture support and directional displacement that way too).

You might want to ask Campbell if it would be okay to make a patch for that (or even better, Campbell replies in this thread with a good explanation for the noise modifier’s rejection).

I kind of understand that this modifier war rejected. It seems to be useful and much easier to use than the displace but the overlap of functionality is evident. The loose parts option would be very nice to have and it would be great if patb would be able to include it into the displacement modifier. The problem with add it now to the trunk and remove it later when there is better solution is that if you want to remove a modifier from the trunk you will break the compatibility with the old files. So it would have to stay there forever even if there is a better solution for the problem.

And BTW.: there is currently an option to randomize transforms for duplicated objects (alt+d, shift+d). It is not as versitile as the modifier could be and you cannot edit the settings later but it works.

And as for the grass: This modifier is absolutely useless for generating grass because it doesnot generate instances as the particle system does. With this modifier you would end with a ridiculous amount of polygons and it would be slow to render and it would need huge amount of memory. And you would not be able to preview the result in your viewport…

I would also really like to see an array modifier that generates instances and not extra geometry but am not sure whether its even possible.

Does anybody know what happened to the “advanced array modifier”? It had very simillar functionality as this modifier but its been a long time since I last heard about it.

A workaround for instanced objects is duplifaces. Each triangle defines the instance translation, rotation, and scale (if enabled). I just start with an equilateral triangle at origin and go from there.

Array modifier on the simple triangle:


Added a curve and displace modifier:


A 10000 triangle mesh performs much better than 10000 objects. Too bad displace modifier can’t work on whole faces individually though (similar to what Ace mentioned with a ‘loose parts’ setting). It could work as just translation instead of all three.

I would love to see something in the python API for manually creating and directing instances of objects. Maybe even with an interface for a “DupliScript” that could be specified in the duplication panel pointing to a text datablock with the script.

@SynaGlow: Thanks for the tip! I will definitely try this! :slight_smile:

I remember that advanced array modifier, I even had a look at it again yesterday. Problem was that when modifications where made that it added these to each copy. So I wanted a a transformation it would get higher with each extra duplicate I set. For stuff it still works nice.

Extending the displacement modifier to work on ‘loose parts’ as I suggested would likely work on generated geometry from previous modifiers, so a couple of them using that mode with a very low-frequency noise texture (with axis restrictions in place) would work exactly like the old advanced array modifier patch (and cover the primary use case that this patch provides to users).

It’s a nice little addon but does not update in real time like your modifier. It’s nice but not nearly as nice as having an actual modifier to do this. It seems like a shame that you’re just quitting on this, I really think this will be a nice addition until Node based modifiers happen. And who really knows how long that will take before it gets implemented…

@patb I tend to agree that the displace modifier is the right place for these features. I already use the Displacement modifier (with some workarounds) when I try to do these types of thing. E.g. moving floorboards, or pages in a book around so they don’t align perfectly.

Could you explain your workflow a bit? I tried it yesterday but it didnt fit my needs. What you explain about using it for pages in a book sounds what i would like to achieve. I tried this once using a empty to copy rotation and location and than duplicated the mesh and applief different setting to it, than doing this for all of them but manual. Very tedious…

I also tried a warp to modifier and than used about 5 vertexgroups so they would all act different, but again pretty tedious to setup.

Is your method easier?