The following illustration shows a typical ICE tree for a simple particle system.
The root ICETree node appears in the object's construction stack. You can have multiple ICE trees on the same object, and they can be renamed. ICE trees are evaluated with other operators according to their position in the stack, and they can be moved by dragging and dropping.
When you create a simulated ICE tree, two new construction regions are created: Simulation and Post-Simulation. The ICE tree is added to the Simulation region. The only difference between a simulated ICE tree and a non-simulated one is its position in the stack. You can turn a simulated tree into a non-simulated one by moving it to another region, say the Modeling region, and you can turn a non-simulated tree into a simulated one by moving it to the Simulation region.
The difference between the Simulation region and other regions is that the Simulation region is incremental. That is, calculations are based on the previous frame rather than the results of the lower construction regions.
This is true not only for ICE trees, but for all operators in the Simulation region. For example, if you apply a non-ICE Twist deformation with a small Angle value in the Simulation region and play back the scene, the object becomes progressively more twisted without any keyframes or other animation being directly defined.
If the simulation environment is not active, operators in the Simulation region are skipped. When the construction stack is evaluated, the results of the top of the Animation region are passed directly to the Post-Simulation and Secondary Shape Modeling regions.
By default, the initial state of a simulation is the result of the regions below the Simulation region on the first frame that the simulation environment is active. While the simulation is active, the lower regions are not re-evaluated.
Because the first frame of the simulation is the initial state, if you are emitting particles in the Simulation region then they will appear on the next frame.
If you manually set an initial state, that state is stored and used when the simulation starts instead of the top of the Animation region.
If you accidentally created a Simulation region and you want the lower regions to be re-evaluated, you can select and delete the Simulation region marker from the construction operator stack. Both the Simulation and Post-Simulation region markers are removed if either one is deleted, but operators in these regions are not affected and can be moved to the desired regions afterward.
See The ICE Simulation Environment for more information about the simulation environment, and see Creating an Initial State for ICE Particle Simulations for more information about the initial state.
You can use the Post-Simulation region for any operators that you want applied on top of the simulation, but that you don't want applied incrementally like in the Simulation region and that you don't want to use for defining shapes like in the Secondary Shape Modeling region. For example, you can use the Post-Simulation region to apply a lattice on top of a particle effect.
The Post-Simulation region is always evaluated, even when the simulation environment is not active.
You can emit particles outside of the Simulation region. For example, you can emit a number of particles in the Modeling region, and then optionally freeze the construction history.
Because other regions are not simulated, particles are not added to those that existed at the previous frame, but instead they are added to the result of the previous operators in the stack.
Outside of the Simulation region, you can select and move particles like any other type of geometry. However, operators below the Simulation region are not re-evaluated while the simulation environment is active. You must move to the first frame of the simulation environment (the default initial state) to see the effect of MoveComponent and other operators.
Attributes are at the heart of ICE. Attributes are data that is associated with scene elements. Attributes can be stored on objects or on components such as points, edges, polygons, and nodes (also known as polygon nodes or texture samples). Almost every ICE tree involves getting and setting attributes.
Some predefined attributes are inherent to elements in the scene, such as PointPosition, PointNormal, Weights, EdgeLength, PolygonArea, and so on. Some inherent attributes can be modified in ICE trees, including PointPosition and Weights. Other inherent attributes cannot be modified directly, including PointNormal, EdgeLength, and PolygonArea (although they will be affected by modifying other attributes such as PointPosition).
In addition to the inherent attributes, there are other predefined attributes including PointVelocity, Force, Mass, Size, and so on. They are dynamic, meaning that they do not exist until they have been set. Some nodes and compounds automatically set certain attributes, but otherwise it's up to you to set them. For example, the Add Point node sets ID, and the various Emit compounds that contain Add Point also set Age and other attributes, but those attributes are not set if you get a point cloud from the Get > Primitive menu. All dynamic attributes can be set, except for ID.
Some nodes and compounds recognize specific attributes by name. For example, the Simulate Particles node uses Force, Mass, and PointVelocity to update PointPosition.
In addition to predefined attributes, you can set custom dynamic attributes in your trees and use the data in any way that you want. In fact, some attributes used in the supplied compounds, such as AgeLimit and StateID, are not predefined but are actually custom attributes that are used in the compounds for specific purposes.
For more information, see Getting and Setting Data in ICE Trees.
Except where otherwise noted, this work is licensed under a Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License