fig 1.  fig 2. 

There are improvements across the board.  The actual documentation for the nodes has not yet been updated.  Please use this web page to understand the new features and then refer back to the documentation for the older features. 

Sampler Emitter

Maya 4.0 ONLY

The Sampler Emitter does not work under Maya 4.5 as the initial release of Maya 4.5 has broken the API functionality for emitters.  Once this functionality has been fixed by A|W, the emitter will once again function.  For now, it does not load during plug-in initialization.

Polygonal UV Support

The Sampler Emitter now uses the UV information of the surface that it is emitting from to calculate shaders and outputs the UV information to the particles parentU and parentV attributes when the NeedParentUV flag is turned on.
This means that you can now use 2D textures such as ramps and file nodes for mapping various attributes when emitting from a polygonal surface.

Depth Map Shadow Support

There is now a flag that either enables or disables the calculation of Depth Map shadows when calculating shaders connected to the Sampler Emitter.  With the flag enabled, Depth Map shadows will be calculated for any light in the scene that has Depth Map Shadows turned on.  

Shadows will be cast onto the particles and baked into the channels that you are outputting the data into.  This differs from the Maya 4.5 support of hardware rendered depth map shadows on GForce graphic cards in that it supports all particle types including Sprites and the shadow information is applied directly to the particle attribute assigned.

When calculating the Depth Map shadows, the Sampler Emitter will automatically change the render type of the particles to Blobby Particles so that they will be visible in the Depth Map.  This allows the particles to self-shadow themselves.  However, you should keep in mind that the default radius for a Blobby Particle is 1 and if your hardware rendered particles are not 1 unit in size, the resulting Depth Map will be quite off.  If you are using Sprites, I recommend setting either the Radius of the particles to be the SpriteScaleX or SpriteScaleY attribute of the particles or if you are using SpriteScaleXPP or SpriteScaleYPP also use RadiusPP and have RadiusPP equal the greater of the two.  If you are using Multi-Point or Multi-Streak particles, set the Radius of the blobby particles to be the Multi-Radius.

Unlimited Attribute Mapping

Under the Shading Attributes tab in the Attribute Editor for the Sampler Emitter, there is a button titled "Add Attribute Map".  When you click on the button, the Sampler Emitter adds two new attribute entries, Map and To.  To the Map attribute, you can connect any shading node.  In the To attribute field, you can enter the name of the attribute on the particle object that you want to have populated with the resulting values of the shading node.

If the attribute that you are mapping the data to does not exist on the particle object, the shader evaluation is ignored.  If the attribute is a float array as opposed to a vector array, the resulting luminance is used with the simple equation, (colorR + colorB + colorG) / 3 .  This equation differs from a true luminance equation.

Scale Rate By Size Works With Polygons

The Scale Rate By Size attribute now works correctly with polygons.

Need ParentUV Now Properly Assign ParentUV Information

In the previous version of Stroika, the ParentU and ParentV attributes of the particle object were not populated with the UV information from the NURBS surface where the particles were emitted.  Instead, ParentU0 and ParentV0 were used.  This has been corrected in V1.5 .

Shading Field

Unlimited Attribute Mapping

Under the Additional Attribute Mapping tab in the Attribute Editor for the Shading Field, there is a button titled "Add Attribute Map".  When you click on the button, the Shading Field adds two new attribute entries, Map and To.  To the Map attribute, you can connect any shading node.  In the To attribute field, you can enter the name of the attribute on the particle object that you want to have populated with the resulting values of the shading node.
If the attribute that you are mapping the data to does not exist on the particle object, the shader evaluation is ignored.  If the attribute is a float array as opposed to a vector array, the resulting luminance is used with the simple equation, (colorR + colorB + colorG) / 3 .  This equation differs from a true luminance equation.

By using a single Shading Field to calculate multiple shaders, your simulations will evaluate more quickly as all of the input data required to calculate the shaders is only gathered once.

Depth Map Shadow Support

There is now a flag that either enables or disables the calculation of Depth Map shadows when calculating shaders connected to the Shading Field.  With the flag enabled, Depth Map shadows will be calculated for any light in the scene that has Depth Map Shadows turned on.  

Shadows will be cast onto the particles and baked into the channels that you are outputting the data into.  This differs from the Maya 4.5 support of hardware rendered depth map shadows on GForce graphic cards in that it supports all particle types including Sprites and the shadow information is applied directly to the particle attribute assigned.

When calculating the Depth Map shadows, the Shading Field will automatically change the render type of the particles to Blobby Particles so that they will be visible in the Depth Map.  This allows the particles to self-shadow themselves.  However, you should keep in mind that the default radius for a Blobby Particle is 1 and if your hardware rendered particles are not 1 unit in size, the resulting Depth Map will be quite off.  If you are using Sprites, I recommend setting either the Radius of the particles to be the SpriteScaleX or SpriteScaleY attribute of the particles or if you are using SpriteScaleXPP or SpriteScaleYPP also use RadiusPP and have RadiusPP equal the greater of the two.  If you are using Multi-Point or Multi-Streak particles, set the Radius of the blobby particles to be the Multi-Radius.

Evaluates On Particle Creation

The Shading Field now evaluates correctly on during the creation of the particles.  In V1.0, the field would only evaluate after the particle was more than 1 frame old.  This means that you can now use the Shading Field on particles that are emitted from sources other than a Sampler Emitter and have the particles evaluated by the Shading Field when they are first created.

Automatic Attribute Detection

If the attribute that you are mapping the data to does not exist on the particle object, the shader evaluation is ignored.  If the attribute is a float array as opposed to a vector array, the resulting luminance is used with the simple equation, (colorR + colorB + colorG) / 3 .  This equation differs from a true luminance equation.

Advanced Input Mapping

In V1.0 of Stroika, the Shading Field would read the values it needed to calculate the attached shading node based on some basic rules :

if the user had created a "samplePosPP" attribute, the Shading Field would use its values as the position in space in which to sample the attached shader, if it did not exist, the "position" attribute would be used.

if the user had created a "uCoordPP" attribute, the Shading Field would use its values as the uValue for the shading node that was being sampled, failing that, it would look for "parentU".

You can now specify which attributes on your particle object that you want the Shading Field to use.  Simply type in the name of the attribute that you want the Shading Field to use in the appropriate field in the Advanced Attribute Mapping tab of the Attribute Editor.  

In one of the sample files included with this release of Stroika, I use several Shading Fields to lookup different UV values in a file texture to determine which direction to move in.  Each Shading Field reads a different custom attribute on the particle object for its U Value and V Value attributes.

Curve Field

In the Attribute Editor for the Curve Field, there is a new tab called "Output Options".  

Returns Normal and Normalized Normal

You can enter the name of the attribute on your particle object that you want the resulting Normal of the point along the curve that the particle is currently being affected by to be sent to.  The Normal in this case is simply the difference between the particle's position and the closest point on the curve.

The Normalized Normal is the same data metioned above but normalized, or basically, with a length of 1, simply indicating the direction with a magnitude of 1.  This data is better suited for use in Shading Field.

Returns UValue

Enter the name of the attribute on your particle object that you want the U Value of the curve at the point that particle is currently being affected by to be sent to.  This is useful for driving ramps to do things like change the color of the particles as they move along a curve, or even changing their mass.

Normal Field

In the Attribute Editor for the NormalField, there is a new tab called "Output Options".  

Returns Normal and Normalized Normal

You can enter the name of the attribute on your particle object that you want the resulting Normal of the point along the curve that the particle is currently being affected by to be sent to.  The Normal in this case is simply the difference between the particle's position and the closest point on the curve.

The Normalized Normal is the same data metioned above but normalized, or basically, with a length of 1, simply indicating the direction with a magnitude of 1.  This data is better suited for use in Shading Field.

Returns UValue

Enter the name of the attribute on your particle object that you want the U Value of the curve at the point that particle is currently being affected by to be sent to.  This is useful for driving ramps to do things like change the color of the particles as they move along a curve, or even changing their mass.