0
$\begingroup$

I need to create a scene where hundreds of detailed objects are cloned within the volume of another shape. Tutorials online showed me how to do this using the particle emitter (render type: group), which worked great. Here's my problem: I need to export my final scene to the web using Verge3D, which apparently does not support particles. Therefore, I would like to convert all the particles to duplicates. I do not want to convert them to actual geometry, because it is hundreds of shapes and it will run very slow. Is there a way to convert the particles, in the positions they are in now, to duplicates?

Thank you!

filaments inside cell: currently particles

$\endgroup$
  • 1
    $\begingroup$ do you have any images of what you want to do? $\endgroup$ – Yash Feb 10 at 4:39
  • $\begingroup$ In this case images aren't necessary. It's perfectly clear what they are trying to achieve. $\endgroup$ – Brenticus Feb 10 at 5:14
0
$\begingroup$

Welcome to Blender Stack Exchange!

After out discussions in the comments, I'll lay out what I mean a bit more clearly, and give you a step by step solution so you understand what you have to do and why.

The end result/goal will be to get rid of the particle system (although we will use it as a step) and end up with a large number of objects that are all duplicates of each other.

First off, by default, converting a particle system to real meshes via the modifiers tab does actually make them into duplicates automatically. Each identical object will have identical data. If you edit one mesh, they will all update accordingly. This should be much faster already than having individual objects with unique data. So there may not be much improvement available over what is done automatically already.

That said, the second method is to use linked objects for the particle system. A linked object is an object that is referenced from another file. When you link an object, it will appear in you scene, but you will not be able to edit the mesh data at all. Any updates you want to make to the objects will have to be done in the original file. This may provide you with some speedups. In my tests, the viewport was a bit more responsive, but memory usage was about the same. Theoretically though, this should be the fastest.

So let's get down to business.

The first method is self explanatory. Click the convert button on the particle system in the modifiers tab. This isn't what you want though, as it should be the slowest method.

For method 2, I'm assuming your setup is something like this: You have an object that is the emitter for a particle system, and you have a group of objects that are being instanced by said particle system.

Here's my setup that I used:

This is the group of objects that I used for the particle system enter image description here

And this is half an icosphere used as an emitter for 5000 particles with random size and rotation (I used Blender Render with a transparent material for the emitter and enabled viewport transparency which is why it is not visible). enter image description here

From here, I selected the 4 objects and copy pasted them to a new file Ctrl+C then Ctrl+V. Save this file and you can close it, as we won't need it again. Then I deleted the 4 objects from the file with the particle system. This will make the particle system disappear. However, all the settings will have remained the same. The only ones that may change are the render settings where you select the group, so maybe make note of them just in case.

Now, go to the file menu and choose the link option about 2/3 of the way down. This will allow you to add an instance of another object to your scene. Navigate to the file with the copy-pasted group, and Link the objects. It's important to link them all as separate objects, and not import the whole group, as importing the whole group will not allow us to work with each object individually.

Once you've linked the objects, they should appear in your scene, but you can't edit them or move them in any way really. For our case that's just fine, just put them on another layer. Then we can group these linked objects.

Next, Go back to your original particle system and select this newly created group. Since they are the exact same objects, just linked, and since you haven't changed any settings at all, the new particles should be identical to the old ones. Now you can convert the particle system by going to the modifiers tab. This won't delete the emitter and original particles, you you have to do that manually. At this point, you will have a bunch of individual objects, but they are all instanced from another file. On my system though I really didn't notice much of a speedup, but just converting the particles directly didn't seem to bog it down much though so there may be a noticeable difference.

There is one other way that will probably be the fastest. That would be to link the entire system to a new file as a group. Basically all you do is select all the converted objects, make a group out of them, then go to a new file and link this group (actually linking the group this time). This will create an Empty with duplication enabled and set to group.

There is also a modifier you may want to check out called the Particle instance modifier, but at least from my basic understanding it doesn't work with groups.

While these speed-ups should all work in theory, I didn't actually notice much a of a difference on my computer. The biggest slow down was when I had a bunch of individual objects and selected them. This was much slower than selecting the linked group from the final option. As far as navigating the viewport though there wasn't much difference.

$\endgroup$
  • $\begingroup$ Fantastic! I am extremely new to Blender, so I don't exactly understand what you mean, but it is wonderful knowing that there is a solution. Let me see if I understand you correctly. The object I am using that I want hundreds of copies of is an actin filament, and I want it to be copied inside the volume of a cell, so I will use the terms "filament" and "cell" from now on for clarity. Are these the steps you are saying: (1) copy the cell to another file. (2) Delete the cell (3) Copy and paste the cell back into the main file. $\endgroup$ – CJo Feb 10 at 6:36
  • $\begingroup$ I added a photo to my original question so you can see what my layers look like. My finished piece will have a few hundred more filaments inside the cell, but scaled down to a smaller size. I don't think I understand how to copy and paste the filaments to a new file: either I copy and paste just a single filament (the original filament), or I copy and paste the entire cell with all the particles inside. Maybe I misunderstand what you mean by linking them back to my original scene? (You are a life-saver by the way!) $\endgroup$ – CJo Feb 10 at 6:49
  • $\begingroup$ What I mean by linking is going to the file menu and choosing the link option. This imports the object, in a way that only allows you to edit the object, not the mesh data. Other than that I think you've got it. $\endgroup$ – Brenticus Feb 10 at 16:33
  • $\begingroup$ And yes, copy paste the single original filament, then link it back in. If you want, I can edit my answer with a more detailed step by step. $\endgroup$ – Brenticus Feb 10 at 16:34
  • $\begingroup$ How does this get rid of the particles? Do I delete the particles after I link it back in? I'm looking to have the duplicates be positioned exactly how they were in the particle system, but without using particles $\endgroup$ – CJo Feb 10 at 17:23

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.