How to add intances?

I need to instance a bush but see only a command to add “group instance” and the bush I already appended to the scene doesn’t appear as a group instance to be added. Somewhere I read Alt-D command will do the job but it only adds linked trees but the poly count is increased as if just duplicating the bush.

You have to first group your bush. Don´t worry if it is only a single object. You will probably want to give your group a reasonable name after that.
Then you can choose your bush in the add group instance menu.

You can then use it as often as you want in your scene without any significant rendering performance hit.
However, when duplicating it there are several methods do so. Simply copying it will result in lots of object. Blender gets really slow at around 8000 objects. Not the rendering but adding new objects, even if it is just a single one is really slow.

To circumvent this problem it makes sense to use a particle system (hair) for bush distribution. This comes with the added advantage that you can give every bush a velocity. Don´t worry your bush won´t take off. You can control the velocity of each particle via a texture in the particle system or via python script. You can then access this velocity data in your material via particle info node and use it to control for example the color or each bush. The random outpout of the particle info node is useful as well.

Here is a test render with a single tree instanced a million or so times via particles i did a while ago.

1 Like

Nice, it works.
Is there a way to array the group instances? I need to make an alley from the bushes.

You can not put modifiers onto group instances.
However, there are other options.

Personally I would do the following:

  • create a single mesh with a vertex wherever you want a bush.
  • create a particle system and set it hair
  • turn on “advanced”
  • set emissoin number to as many bushes as you have vertices in your emitter
  • set length to 1
  • set “emit from” to “Verts”
  • uncheck “Random” (if you have random checked several bushes might spawn on the same vertex and no bushes on other vertices)
  • In the Render tab of the Particle System set “Dupli Group” to “Group” and chose your Bush Group
  • give it some Random Size
  • in the Rotation tab above give it some random rotation on “object z”
  • give its material a “particle info” node and feed the “random” output into a color ramp.
  • feed the leaf texture into a hue/saturatoin node
  • feed the color ramp mentioned above into the satiuration and/or the hue input
  • use the give variations to the leaf color.

Here is an example shader. Of course you´ll want to add transparency and reflection and all that stuff but it shows the principal. It uses a mix node set do dodge instad of a hue/saturation node.


Is there a shortcut to add an instance group? And can the instances get exported (particles cannot be exported, I know)?

Edit: Also can I instance a whole row of instances? Meaning to make an instance group from instance groups? Or simply duplicate or link-duplicate them but they still to remain instances?

Shift+a -> g -> letterYourGroupInstanceBeginsWith

I am not sure if they can be exported. I think they can be.

If you want to export them you can turn particles into real objects by selecting your emitter, going to the modifier panel and pressing the “Covert” button.

Using the highly scientific method of “push and poke” I found you can Alt-D any instance besides the original and thus creating a new instance; not only this - you can select as many instance as needed and Alt-D them all (still w/o the original) at once.

That is different from a group instance, though. If you alt-d objects you create linked object meaning, that specific data is shared. You can, for example share the mesh, the material and a bunch of other things.
It is the same as createing two different object and then seleting both and hitting ctrl-L.
You get a menu to chose which characeristics you want to link.

I know, but I was surprised the new objects were still instances - no increase of the polygons at all. Much faster especially if you Alt-D a whole bunch of instances at once.

They’re not. Object instancing options are:

  • procedural duplication,
  • particle system duplication,
  • linked libraries

and an unique object that shares object data with another unique object is called a linked duplicate. The object data gets instanced, not the object.

I see. There was no increase of the number of the polygons when I Alt-D the original instance group. Do those copies increase the load of the computer and and increase the rendering times more compared to making new instances through Shift+A - G command?

Compared 1 to 1, object instancing takes less memory than linked duplicates but won’t save render time.

For example, 5 Suzannes with subdivision surface at level 2 took the same time to render in Cycles, but linked duplicates took 9.34M of memory and instances took 2.10M.

Got it, thanks.