11
$\begingroup$

I am trying to make thick forest in blender using emitter or hair emitter. The problem is that with huge ammount of trees they intersect with each other and I do not want that to happen. I did use various setting, groups and tricks without success. Does anyone have idea how to make it work? Here you can find blend file

$\endgroup$
10
$\begingroup$

I would suggest to disable Emit in Random order.

enter image description here

Particles in this case are emitted from faces. Every faces has it's own id. With the Random opton enabled you are asking Blender to pick a Random face id to generate the next particle.

In this case, where your simulation does'n run trought time, means that is very likely to have a particle create in the same place of another.

Let's say you have 100 faces. First random id is 1, so a tree is generated in Face1. Than pick another id, randomly..it may occour to pick the same id..1, so the generated tree will be overlapped to the previous one. It may seems that you have a low probability to pick the only 1% that is already came out, but you have to consider that for each particle cration iteration, the number of "free" ids lower, so when you are at half of the particle cration, you'll have 50% probability of overlap.

If this effect is not very strong is because you have also Random distribution option enabled.

enter image description here

With that, you are asking to position randomly the created tree on the face. So , despite they are created on the same face, the might have different location. On th other side, it may occour that two tree of born in adiacent faces, let's say along the common border, will be very near, causing overlap.

Particles generation is not aware of where other particles have previously been generated (it would be very high computing demanding for large numbers), so for now it is not possible to have a random distribution without any overlaps.


One possible workaround can bw to subdivide your mesh till the faces are almost the size of the trees XY bounding plane. Now you should have about 2000 faces in the "forest area". If we put without a tree in the center of each faces we would be able to create about 2000 trees without any overlap.

enter image description here

This obiuvsly resamble more to a plantation than a forest, but by lowering the amount of trees and the use of voronoi density map:

enter image description here

you should be able to dampen the "grid" effect a bit.

$\endgroup$
  • $\begingroup$ Thank you for detailed and fast reply. Sadly I plan to make forest on low poly terrain but still this is quite usefull workaround that I will use in future projects. Hopefully someone will make add-on someday that will allow to generate nice forests without using emitters. $\endgroup$ – mantisghost Sep 2 '15 at 21:11
  • 1
    $\begingroup$ You can use two different planes, one lowpoly and one for emission. Just hide the emission plane below or make it unrenderable or transparent. Or make particles real by converting the particles. $\endgroup$ – Carlo Sep 2 '15 at 21:21
  • $\begingroup$ Nice explanation! Are you sure heavy computation is the reason an overlap prevention feature doesn't exist? I hope such a feature will be added in the future. In the meantime, I solved this problem by: First making a particle system to scatter single-vert objects. Then I converted those particles to real objects and joined them into one object. Next I did a Remove Doubles operation at a threshold that would just remove the ones that appeared too close. Finally, I used this new point cloud object as my emitter mesh with the particle count matching the number of verts on the mesh. $\endgroup$ – Mentalist Jan 18 '16 at 3:46
  • $\begingroup$ It wouldn't be impossible to find a "free" location for the particle, but it should at least be calculated the position of each particle on the surface and (at least) it's bounding box. I'm not saying this is impossible to implement, is just not handy (particles were firsty thought to simulate large numbers of tiny and moving objects). Not to mention that there are some current features (e.g. rotation, size, emission vector...) that would make the formula much more complicated in order to preserve their functionalities. $\endgroup$ – Carlo Jan 18 '16 at 10:54
  • $\begingroup$ That's a good solution @Mentalist: post that in your question when you have time! Even if it has some limitations [e.g. is not "interactive" as a particle system (you had to bake it), it doesn't take into account surface normal or particle size (just location)] I think it could be a nice way to achieve a result with the current tools. $\endgroup$ – Carlo Jan 18 '16 at 11:03

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.