Objects instancer

Make sure you’ve read the general notes about all the nodes.

This node turns SceneCity objects into Blender objects, or instances.

Instancing mode

There are two types of instances, each with their strengths and weaknesses. Choose depending on your needs.

Individual objects: each instance will be a real, full Blender object. Each of them will share the same datablock, ie mesh or object group. The good thing with this option is that you will have the full control on each instance. You can move them, edit them, add modifiers to them etc… everything that is possible to do with regular Blender objects. However it is the slowest, most CPU and RAM intensive method. You won’t be able to generate more than about a thousand instances with it (even with a very capable machine), which is a very low number considering the sheer size of a city. Therefore it is best used for only some parts of a city where you need that kind of control on the instances, or for very small cities, the size of a building block.

Objects hierarchies are preserved. If the objects have modifiers they will all be applied.

Dupli verts: this method is called like this because it uses the dupli verts feature of Blender. It is a way to place copies, or virtual instances of objects, on each vert of a mesh. You don’t need to know the exact setup for it to work, this node will do it for you automatically. You can check in Blender’s manual if you’re interested of course. However, it has the opposite benefits and drawbacks of the previous method. It is expremely fast to generate, and uses very little RAM and CPU. However you won’t be able to manipulate any instance, in ANY way. Even entering edit mode to move a vert around (in order to move the corresponding instance) is impossible, unfortunately, because Blender will then automatically reset all the verts’ rotations, so all your instances will have somewhat random rotations.

Objects hierarchies are preserved to the best possible extent, with the following limitations inherent to dupliverts (no way around them):

  • no scaling of objects other than 1

  • no rotations around their local y axis

  • no modifiers can be applied on the objects

In case you need the speed and efficiency of dupliverts but want to avoid their limitations, use object groups instead and not object hierarchies.

Hide objects in viewport

There are two ways to see your 3d scene in Blender:

  • with the 3d viewport, it uses realtime OpenGL to draw your scene

  • with a render, using mostly Cycles

The viewport cannot draw too many objects, or it’ll be so slow you won’t be able to navigate it anymore, and Blender will become unresponsive. However Cycles can easily render MANY MORE objects than the viewport. So how do you manage to have a large scene to render, if the viewport can’t draw it but the final renderer can? Simple: don’t draw the objects in the viewport, only at render time. That’s what this option is for.

The drawback is if you need to see your scene in the viewport to place the camera precisely, or place cars, or pedestrians etc… then you can’t. Well this is a tradeof. A solution is to hide most of the city, and show only some smaller parts, using districts and different object instancer nodes with Hide objects in viewport checked for the large part, and unchecked for the smaller part.