# Context matters: point versus polygon

Since the introduction of ICE modeling, you may have hit context mismatches like this:

or this:

That’s because compounds like Test in Geometry and Randomize Around Value are built to work with points/particles. For example, if you look inside Test Inside Geometry, you’ll see it is getting the point position.

So, when you want to use these convenience compounds in a different context, you’ll have adapt them.

# ICE Modeling – extruding polygons with random lengths

I didn’t look yet at the Random Extrusion compound Guillaume posted yesterday, because I wanted to work through the basics on my own (but do go get his compound, it’s sure to be pretty useful). Here’s a simple ICE tree that uses a different random length for each extruded polygon:

.

You can’t get different extrusion lengths for different polygons without using the Repeat node. That’s because the length, inset, and transform are basically per-object, even though you can plug seemingly per-poly values into those ports.

# Copying tangent data with ICE modeling

Here’s an example of using Copy PolyNode Data from Source to copy tangent data from a source mesh to a cloned mesh. Typically you would plug this into the Execute on Copy port of a Create Copies from Polygon Mesh or Clone Polygon Mesh, but here I’ve done something more basic.

To display the tangent data of the clone in the viewport, I’m using the Vertex Color Display Property setting (OpenGL Display tab of the material applied to the clone).

# ICE Modeling – Extruding a random polygon

All you have to do is plug a Random Value node into the Polygon Index port, and then set the Mean Value and Variance. If you then play around with the ID (of the Random Value), you’ll get a different polygon extrusion.

Most of this tree is for setting the Mean and Variance. If I have an odd number of polygons, say 81, then a mean of 40 and a variance of 40 will cover the range of polygon indices (0-80). But if I have an even number of polygons, say 80, then a mean of 40 and variance of 40 might give me an index of 80, which is out of range.

To randomly extrude more than one polygon, just feed a bunch of IDs into the Random Value node, like this:

I increased the number of polygons to avoid getting the same random number multiple times.

# ICE Modeling example – extruding and extruding a grid

Here’s a simple example that extrudes the polygons in a grid, and then applies a second extrude op to the extruded polygons.
I modified the Disconnect compound to output the Topo, just to make it easter to connect things. Really, I should probably daisy-chain everything in this example.

Chris_TC did something more sophisticated here.

# Breaking up with ICE modeling

Clone and disconnect, and you’ve broken up an object into separate polygons…

I touched on this in this video, but I wanted to call it out with a separate post.

Hat tip to Guillaume Laforge

# Scene walkthrough – Polygons following particles

In this video, I do a walk through of a scene posted by Guillaume Laforge on the XSI mailing list. In the scene, Guillaume uses a point cloud to drive the polygons of a mesh, so that the polygons follow that transformations (pos and ori) of the particles. ICE modeling is used to “break up” the mesh into polygons. Includes a description of how vector subtraction is used to locate points relative to a polygon center.

# ICE Modeling – rotating copies

In this video, I show how to rotate copies created with Create Copies from Polygon Mesh so that the copies are aligned with the PolygonRefFrame.

Mentions: PolygonRefFrame, context, Rotate Vector, transformation matrix

# ICE Modeling – placing copies on another object

Part 1 of 2. A video walkthrough of how to use ICE modeling to create copies of an object and place them at specific positions on another object (in this case, on the polygon centers).