Hi
I need quick response to my question, cos I’m doing very complicated project in short period of time. I need to copy model of the flower (attached as a pic below) over the terrain surface in ICE, but I would like to all models not to overlap each other. Please give me some tip or solution. Which node should I use?
Overlaping in ICE
-
Czarodziej3D
- Posts: 5
- Joined: 05 Mar 2010, 11:29
Overlaping in ICE
You do not have the required permissions to view the files attached to this post.
-
owei
- Administrator
- Posts: 840
- Joined: 03 Jun 2009, 15:25
- Location: Siegen/Germany
Re: Overlaping in ICE
Hi..!
Well, you could check how many neighbours occure in a certain range, perhaps taking the particle size/scale in concern, too. If one particle has a neighbour in for example 2 units, just delete it...I aould do this in the model section, not simulation...
Do you have to animate it..? You could use negative particle force, to drive the particles away from each other. After you are confident with it, you can freeze the pointcloud...
You can also define your emit position manualy with a certain geometry, if you use the "get sample set" node in conjunction with an "add point" node. If you use points as samples, you can precizely define where each particle is emitted...
Just a few thoughts..
cheers,
oliver
Well, you could check how many neighbours occure in a certain range, perhaps taking the particle size/scale in concern, too. If one particle has a neighbour in for example 2 units, just delete it...I aould do this in the model section, not simulation...
Do you have to animate it..? You could use negative particle force, to drive the particles away from each other. After you are confident with it, you can freeze the pointcloud...
You can also define your emit position manualy with a certain geometry, if you use the "get sample set" node in conjunction with an "add point" node. If you use points as samples, you can precizely define where each particle is emitted...
Just a few thoughts..
cheers,
oliver
Founder of www.si-community.com
http://www.pixelpanic.de
http://www.pixelpanic.de
-
Hirazi Blue
- Administrator
- Posts: 5113
- Joined: 04 Jun 2009, 10:15
Re: Overlaping in ICE
You might want to check out Julian Johnson's Dart Throw Custom ICE Node for Softimage 2010
PS - This would also need some tweaking/scaling, obviously...
Haven't tried it myself yet, but the idea of random, non-overlapping points seems to be what you are looking for... ;)The node will let you position random, non-overlapping points on any polygonal geometry
PS - This would also need some tweaking/scaling, obviously...
Stay safe, sane & healthy!
-
Czarodziej3D
- Posts: 5
- Joined: 05 Mar 2010, 11:29
Re: Overlaping in ICE
...great but it is not solution. I do not want delete points, there should move from colision area. It should be one button :/.
I knowe "Dart Throw" but is very slow and i I want to control my instance.
I knowe "Dart Throw" but is very slow and i I want to control my instance.
-
Hirazi Blue
- Administrator
- Posts: 5113
- Joined: 04 Jun 2009, 10:15
Re: Overlaping in ICE
Sorry, but I'm afraid you're gonna have to explain your setup/question a little better. What do you, for instance, mean by "I want to control my instance"? And does anything happen to the instances over time (do they grow/shrink)? And do you have a set number of instances you want to place and will they all be the same size? Questions like that... ;)
BTW: if you have problems with the beautiful English language: no worries - most of us do!!!
If all else fails: screen-shots, lots of screen-shots...
And if you're not having language problems, please ignore this remark...
BTW: if you have problems with the beautiful English language: no worries - most of us do!!!
If all else fails: screen-shots, lots of screen-shots...
And if you're not having language problems, please ignore this remark...
Stay safe, sane & healthy!
-
Zarvosa
- Posts: 13
- Joined: 19 Aug 2009, 21:13
- Location: Vancouver, Canada
Re: Overlaping in ICE
There isn't a built-in solution to avoiding the overlapping of particles when they spawn.
I fiddled around and here's what worked reasonably well for me.
- get the closest points (within a range, the distance apart you want the particles to be)
- find the average position
- get the distance from each point to the average neighbor
- subtract that number from the range (so that it's a bigger number when the particles are close, and smaller when the particles are distant)
- add that number (or mix between adding that number and adding nothing) to the particle point position.
That of course, won't work alone. You'd plug that into a Repeat node and increase the iterations.
The problem is brought up that the particles get pushed off the emit surface.
So into the same Repeat (using an execute), you would also set the point position to the closest location on geometry (the emitter).

I fiddled around and here's what worked reasonably well for me.
- get the closest points (within a range, the distance apart you want the particles to be)
- find the average position
- get the distance from each point to the average neighbor
- subtract that number from the range (so that it's a bigger number when the particles are close, and smaller when the particles are distant)
- add that number (or mix between adding that number and adding nothing) to the particle point position.
That of course, won't work alone. You'd plug that into a Repeat node and increase the iterations.
The problem is brought up that the particles get pushed off the emit surface.
So into the same Repeat (using an execute), you would also set the point position to the closest location on geometry (the emitter).

-
Gith
- Posts: 26
- Joined: 08 Jun 2009, 19:11
- Location: Poland
Re: Overlaping in ICE
hmm.. i got confused.
That's the part i'm missing. Actually the second one. While getting average from the "distance between" and subtracting it from the given range.. i have a scalar. So i grabbed "Vector resize" node, added output from "Subtract" and "Point Position Length", which gives me new length for the "resize", and plugged "PointPosition" vector to the first input of the "resize" that.. gives me particles shrinking down to the middle of the emitter. That's not good. Anybody got that working?Zarvosa wrote:- subtract that number from the range (so that it's a bigger number when the particles are close, and smaller when the particles are distant)
- add that number (or mix between adding that number and adding nothing) to the particle point position.
-
CiaranM
- Posts: 87
- Joined: 08 Jun 2009, 23:37
- Location: London
Re: Overlaping in ICE
Here's a compound that might be useful. It uses several of the techniques describe previously to push particles apart until they're more evenly distributed.
In your case you should apply this to a non-simulated ICE tree. The most important controls are:
Simulation state - non-simulated is most practical for this example.
Non-simulated iterations - more iterations will smooth out the resulting distribution, but can get slower.
Emitter geometry, Goal geometry - in this case they could be the same.
Valency - the number of inter-particle forces that a particle will experience. A higher valency will be more stable but slower.
Bond strength - strength of inter-particle force. Could be a function of size.
Force cut-off distance - length of the bonds or forces.
Just try to emit a few particles in a modeling ICE tree and play with the bond force controls until you see a positive reaction. Then increase the iterations to smooth out the result.
It's been a few years since I've looked at this compound (the first real one I ever did), so it may not handle all situations well, but I've found it useful for this problem many times
In your case you should apply this to a non-simulated ICE tree. The most important controls are:
Simulation state - non-simulated is most practical for this example.
Non-simulated iterations - more iterations will smooth out the resulting distribution, but can get slower.
Emitter geometry, Goal geometry - in this case they could be the same.
Valency - the number of inter-particle forces that a particle will experience. A higher valency will be more stable but slower.
Bond strength - strength of inter-particle force. Could be a function of size.
Force cut-off distance - length of the bonds or forces.
Just try to emit a few particles in a modeling ICE tree and play with the bond force controls until you see a positive reaction. Then increase the iterations to smooth out the result.
It's been a few years since I've looked at this compound (the first real one I ever did), so it may not handle all situations well, but I've found it useful for this problem many times
You do not have the required permissions to view the files attached to this post.
-
Zarvosa
- Posts: 13
- Joined: 19 Aug 2009, 21:13
- Location: Vancouver, Canada
Re: Overlaping in ICE
Hey Gith,
It's true, the distance from point to point is a scalar and the point's position is a vector. To have your particles spread out, you'd want to move each point away from the neighboring points. My suggestion is to use self.pointposition minus the average neighbor position. That gives you the direction you want the particles to go. You'd resize THAT vector and add it to the particle's point position.
Too many words eventually become confusing though, so I have attached here a compound that fulfills the idea. The one that was used in the picture was never saved and disappeared about a year ago. The attached compound deviates a little from this prescription in that it includes a couple "Multiply by Scalar" nodes to grant simplified control, and a little randomizing power. Think of the randomize as shaking the jar of jacks so that they settle more compactly.

_
It's true, the distance from point to point is a scalar and the point's position is a vector. To have your particles spread out, you'd want to move each point away from the neighboring points. My suggestion is to use self.pointposition minus the average neighbor position. That gives you the direction you want the particles to go. You'd resize THAT vector and add it to the particle's point position.
Too many words eventually become confusing though, so I have attached here a compound that fulfills the idea. The one that was used in the picture was never saved and disappeared about a year ago. The attached compound deviates a little from this prescription in that it includes a couple "Multiply by Scalar" nodes to grant simplified control, and a little randomizing power. Think of the randomize as shaking the jar of jacks so that they settle more compactly.
_
You do not have the required permissions to view the files attached to this post.
-
Gith
- Posts: 26
- Joined: 08 Jun 2009, 19:11
- Location: Poland
Re: Overlaping in ICE
Thanks a ton, You both!
I'll try to get that working.
Cheers!
Cheers!
-
nautilus
- Posts: 29
- Joined: 08 Mar 2011, 21:32
Re: Overlaping in ICE
if you wannt to have the distance as a vector (instead of a scalar), just subtract one position from the other (end-point minus starting-point). that will return a vector (with the direction and the length from starting-point to end-point)."distance between" and subtracting it from the given range.. i have a scalar.
by the way: this vector has only the direction and the length, and NOT the position (actually it always has the global postition 0,0,0 - which can be confusing sometimes when subtracting points from each other)