In this case, the obfuscation comes from the length of the tree; not many people have a monitor large enough to see more than just a fraction of this tree in the viewer.

# Tag Archives: ICE

# Emitting particles from instances

Suppose you want to emit particles from the instances in a point cloud. For example, suppose you have a point cloud of instances of a BigFish model, and you want to emit little fish from each BigFish instance.

One simple approach is to set up a point cloud on your master BigFish instance, and do the emitting there.

Then when you emit the point cloud of BigFish instances, use InstanceShape instead of Set Instance Geometry.

# Tip: Get the XSI logo as a mesh

# ICE: Calculating edge midpoints

It’s a relatively simple thing to do, but to get to edge midpoints, there’s a few context hoops to jump through:

I guess I could most of the context conflicts by putting the ICE tree on the mesh and storing the midpoints there.

And now, let’s get the midpoint of the first edge only. All the Show Values are there to prove that it works.

# ICE: Volume of a grid

# ICE: Selecting every N points in a grid

Here’s a question from the Softimage mailing list, and what I would have answered (I didn’t answer, and I didn’t peek at the other answers either).

Given a 100×100 Grid point cloud, how would you do something to the following subsets of points?

[0,5,10, … 595] and [1000,5,10, … 1595]

For something like that, modulo is an obvious way to do it:

Contrast the above with this nicer tree

Here’s [a cruder?] approach using linearly interpolated arrays:

See also this for some compounds.

# ICE: Summing up array elements by group

Given an array like

[0, 3, 7, 22, 6, 71, 1, 0, 9]

how do you sum up the first group of three elements (0+3+7), the second group of three elements (22+6+71), the third group (1+0+9), and so on and so on, without using a Repeat node?

Well, you could write your own custom ICE node. Or you could use Generate Sample Set like this:

# Rotating vectors around the global X axis

Another Rotate Vector example. This time, I rotate the points of a mesh around the global X axis. In short, the point positions are treated as vectors, and then rotated about the specified axis. Of course, this requires some conversion between coord systems, which is always fun :)

The bottom part of the tree is just for visualization.

# Rotate Vector

Not sure how Rotate Vector works? Is that 26 words (including five “the”s) of documentations not doing it for you?

Fortunately, it’s not hard to rig up an ICE tree to help visualize what Rotate Vector does.

Compound is here if you want it.

# Sorting points with Sort Array with Value

Here’s a couple of examples to illustrate how to use Sort Array with Key.