ICE Nodes Reference Library: Simulation & Point Cloud

In this tutorial, we will be taking a detailed look at each of the Simulation & Point Cloud nodes found in Softimage's Interactive Creative Environment. Software required: Softimage 7 and higher.
Course info
Level
Advanced
Updated
Sep 25, 2008
Duration
24m
Table of contents
Description
Course info
Level
Advanced
Updated
Sep 25, 2008
Duration
24m
Description

In this tutorial, we will be taking a detailed look at each of the Simulation & Point Cloud nodes found in Softimage's Interactive Creative Environment. Each video in this course is a self-contained tutorial centering on one of the nodes found in ICE within Softimage. This means that these tutorials can be viewed in any order you wish, allowing you to jump straight to the content that is most relevant to you. These tutorials will take a detailed look at each of the nodes found within the Simulation & Point Cloud sections of ICE and we'll learn how they can be used to speed up our workflow. Software required: Softimage 7 and higher.

About the author
About the author

Originally from Lagos, Nigeria, Sunder has made great headway in both the interactive game design and 3D animation worlds.

More from the author
Using ICE to Create Motion Graphics
Intermediate
44m
Feb 8, 2012
RIB Archives in RenderMan for Maya
Intermediate
48m
Sep 17, 2009
More courses by Sunder Iyer
Section Introduction Transcripts
Section Introduction Transcripts

Introduction and Project Overview
The Add Point node will add points to your particle clouds based on individual point positions or an array of points. This is a very powerful node, and this is really what causes particles to be created or emitted. We're going to learn now how to use this node to create an underwater type plant. We're going to basically take a particle cloud and emit particles from it. So this is an interesting experiment. Let's begin by creating the first particle simulation. Let's go to the Model menu, down to Get Primitive, and Get a Null. Now with this Null still selected, go to your Simulate menu, go to ICE, Create, Emit Particles from Selection. Now when you hit the play button here, particles will be emitted like so. Let's look at the ICE tree. There's an Emit from Null node. Let's grab it, and with this Emit from Null node, let's reduce the particle rate. Let's try something like 10. Alright, so that's kind of neat. Now let's go in here and add a turbulent for these particles to jitter a little bit. So grab an Add Forces node, connect it into Port2, and then grab a turbulize node. Turbulize Around Value will do the trick, and connect it into Force1 here. So these guys will move around. Perhaps it's a little bit on the strong side. Let's go in here and set the Turbulence Scale to 1, alright. Okay, so we'll go ahead and use this. We'll basically have each one of these particles emit another particle every frame. And we'll do this in another point cloud so we can keep these things separate so we can really see how they work isolated, more or less. So, let's go to Model and go to Get Primitive menu, but this time go to Point Cloud and drop it in Empty point cloud. That point cloud will be empty, and it'll still be selected, so go to your Create menu and drop in a Simulated ICE Tree. Now to this Simulated ICE Tree, grab an Add Point node and connect the Add Port to Port1. So now you can execute the addition of a point. But this node will not do anything until we supply some kind of position information in here. So, what can that be? Well we can plug in 3D vectors in here of any kind. You can plug in constants, but they'll all be added at the same point. So what we can do instead is we can get the point information from these particles and use those as the basis for adding new particles to this second point cloud. So, grab your existing yellow particles in the scene and tap F3 to bring up the selection explorer. Drag and drop the node here, and change the Get Data reference of point cloud to PointCloud. PointPosition, and now we'll get a 3D vector for every single point in this particle simulation. When we connect this Value to Position1, it'll add a point based off of every point in here. So when you rewind and hit play, you can see how it's not adding particles to every yellow particle that we have in here. The reason why these added particles are black is because empty point clouds by default have 0 as a setting on almost all parameters, so that's why they're all black like so. But there you go. Now you can see we're taking an original point cloud and adding particles for every point in that point cloud. Now there are some other interesting things we can do with the Add Point node, such as setting certain values upon creation. So if we want to set the particle type on this from a point to a blob, we can do it very easily. Grab a Set Particle Shape node, connect that into On Creation, and set the value in here to Blob. So now we'll have blobs in here. Of course, any time you set a particle shape on an empty point cloud, you want to initialize the size value because that's going to be 0. So let's go in here and change the size from 0 to 0. 5, and there we go. Well these are a little bit of a thicker blob set, but let's go ahead and hit render to see what this looks like. Let me take a couple of moments. Alright, here we are. Just let me flip it over to the other side where the default light is shining on it, and any second now it'll run right through. There we go. Let me reduce the size now, try 0. 1. And every time you make such a change, your render will not update until you re-run the simulation. Alright, let's try this. And now with every one of these points created as part of a blobby system, we can actually generate nice geometry to use in render time. And now we have something that represents some kind of underwater plant, and we have done that very easily with the Add Point node and by setting each one of those particles as a blob. So that's the Add Point node. Keep in mind that you can use it to add particles based on any incoming point position or point location attribute. And once you have those points, you can set initial values on them the moment they are added.