Dividing an integer N by itself doesn’t always give you 1.
I think it’s a problem in the Divide by Scalar node (the division is probably returning a scalar like 0.99999999, and then that is truncated to zero when it is converted to an integer).
A workaround is to do all your division with scalars, and then use modulo to determine whether you Round or Floor the result. Here’s an example compound by Guillaume Laforge:
A weightmap is per-point, but it’s per-point on the emitting geometry, not the point cloud. So you can’t just do a plain “get weights” if you want to use the weightmap to control particle values like Velocity or Speed.
Instead, you use get a location, like the particle emit location, and then get the weightmap value at that location. Then you’ll have a particle per-point context to work with.
When you get the weight at a location, you get an interpolated weight value.
Here’s a couple of examples of how to use a geometry query to modify certain points in a point cloud. The geometry queries return locations, and you can’t plug locations into Set Data nodes, so you need to take a different approach.
The interesting part (to me) is generating the sequence of indices. It’s too bad I have to create a second array to do it, but I keep the size down to an Nth of the original.
The short answer is that you can’t do it, not really. The best you can do is provide a URL in the compound properties
and then right-click the compound and click Open Netview on URL.
For ICE compounds, a CompoundNode property is loaded into the PPG when you inspect the compound.
This CompoundNode is like a proxy container for the actual compound, and it takes care of populating the PPG with the required controls, and finding the right help page. To do that, it just takes the name of the compound and constructs a URL like http://download.autodesk.com/global/docs/softimage2014/en_us/userguide/files/iceref_MyCompound.htm. (Hmm, having just said that, I figure if you had a local version of the help, then you could stick your own help page there, and Softimage would find it.)
For shader compounds it’s a little better, because you can put something like this in your PPG Logic, and it will work.
#ppg logic start
from win32com.client import constants
Application.LogMessage( "OnInit" )
PPG.PPGLayout.SetAttribute( constants.siUIHelpFile, "http://lmgtfy.ca" )
#ppg logic end
hat tip: everybody on this thread
You don’t necessarily have to understand everything about transformation matrices to use them. Just understand then when you multiply a point by a transformation matrix, you’re applying scaling, rotation, and translation to that point all at once.
If you do want to understand more, you can use ICE to visualize what goes into a transformation matrix:
And you can do some reading 🙂
No screenshots, just videos this week.
As you know, in Softimage all scalar (aka floating point) values are displayed with 3 (or sometimes 4) decimal places. For example: 0.333 instead of 0.33333333333…
One way to display the attribute value with greater precision is to use the Log Values node, and multiply the attribute value by some power of 10 (to get more digits). Hat tip to Leonard Koch for that suggestion.
The above Log Values outputs this:
# INFO : 4000 - elt 0: 3333333504.000000
You could also use scripting. But note how I get 0 for the attribute named _tmp, even though it is clearly set to 0.3333333333333 in the ICE graph.
x = si.Selection(0)
y = x.ActivePrimitive.Geometry.ICEAttributes( "tmp" )
print "tmp = %.10f" % y.DataArray
y = x.ActivePrimitive.Geometry.ICEAttributes( "_tmp" )
print "_tmp = %.10f" % y.DataArray
# tmp = 0.3333333433
# _tmp = 0.0000000000
Finally, here’s a quick hack using a proxy parameter and the SDK explorer:
Softimage Creatives London user group
More Making Of from RodeoFX
ICE used for the MGM ground crowds, the falling money (and some of the bills being sucked into the vents) and the fancy motiongraphic’y “projection” animated cubey stuff on the walls of the building shot.
Strands through surfaces
As I wrote yesterday, there surely was a better way to get the neighbors of a specific point than messing around with a bunch of arrays. Here it is.
Hat tip to Eric Thivierge