User Tools

Site Tools


reference_guide:thinkingparticles_nodes:operator_nodes:generator:matterwavesoperator

MatterWaves Operator 

image123.gif

The MatterWaves Operator lets you create amazing particle animations based on multiple materials and maps that let you control every aspect of each particle. MatterWaves is a highly advanced particle system operator for thinkingParticles that offers features you usually find only in very high end animation packages.

To guarantee a flawless integration into 3ds Max, many new programming techniques had to be invented to accommodate what MatterWaves brings to the table. One of the amazing new technologies exclusively developed for MatterWaves is called Multi-Layer Particle Control (MLPC). This technology makes it possible to generate particle emitters based on multiple material maps at the same time. It is this advanced technology that sets this particular particle Generator apart from anything else available.

MatterWaves is a time based particle system and as such, it usually does not use frames as its timing base. Nearly every parameter in MatterWaves is based on time (seconds) so be sure to remember this when you create your animations using this operator.

       

Operator Inputs 

ON - (Bool) This input data stream determines whether the operator is considered 'on' or 'off'. You can connect other operators to this input channel such as a Bool Helper to activate/deactivate the whole operator.

Time - (Time) This input data stream is used to define the local time for the operator when the user wants to override the default system time.

Particle - (Particle) This input data stream reads in the currently selected particle group to the MatterWaves Operator.

Life Span - (Life Span) This input data stream supplies the particle life span for all particles created within the MatterWaves Operator.

Speed - (Speed) This input data stream sets the speed for the particles generated within the MatterWaves Operator.

Direction - (Direction) This input data stream sets the directional vector for the emission of the particles created within the MatterWaves Operator.

Spin - (Spin) This input data stream is used to provide the angular direction value for the born particles to use for their motion.

Size - (Size) This input data stream sets the size in world units of the particles created within the MatterWaves Operator.

Mass - (Mass) This input data stream sets the mass of the particles created within the MatterWaves Operator.

Alignment - (Alignment) This input data stream is used to set the initial alignment of the particles when they are born.

Node - (Node) This input data stream is used to feed in an object to be used as the emission source for the MatterWaves Operator. If you input a node from this connection, it will override the selection button within the Pick Object Based Emitter.

Attack - (Scalar) This input data stream is used to override the Time(s) Attack spinner in the MatterWaves rollout.

Sustain - (Scalar) This input data stream is used to override the Time(s) Sustain spinner in the MatterWaves rollout.

Attack & Sustain Gradient - (Alpha Gradient) This input data stream is for future usage (i.e. - it is not currently active) and will be used to override the gradient ramp that controls the Attack and Sustain gradient within the MatterWaves rollout.

Birth Type - (Integer) This input data stream takes an integer value that represents the emission type the particles will use. Valid input values are 0 through 2, where:

  • 0 = Count
  • 1 = Particles / s
  • 2 = Pistol Shot

  Count - (Integer) This input data stream is used to override the Count spinner within the MatterWaves rollout.

Rate - (Scalar) This input data stream is used to override the Particles/s spinner within the MatterWaves rollout.

Shot - (Integer) This input data stream is used to override the Pistol Shot spinner within the MatterWaves rollout.

Per Emitter - (Bool) This input data stream is used to override the Per Emitter check box state within the MatterWaves rollout.

Per Emitter Activation - (Bool) This input data stream is used to override the Per Emitter Activation check box state within the MatterWaves rollout.

Life Variation - (Scalar) This input data stream is used to override the Variation % spinner value for the Life Span (s) within the MatterWaves rollout.

Life Variation Mask - (Alpha Gradient) This input data stream is for future usage (i.e. - it is not currently active) and will be used to override the gradient ramp that controls the Life Span (s) gradient within the MatterWaves rollout.

Life Mask - (Texture Map) This input data stream is used to override the material map used within the Life Span (s) Mask.

Life Mask ON - (Bool) This input data stream is used to override the On/Off toggle for the Life Span (s) Mask control. A True condition turns the mask on, while a False condition turns it off.

Speed Variation - (Scalar) This input data stream is used to override the Variation % spinner value for the Speed settings within the MatterWaves rollout.

Speed Mask Gradient - (Alpha Gradient) This input data stream is for future usage (i.e. - it is not currently active) and will be used to override the gradient ramp that controls the Speed gradient within the MatterWaves rollout.

Speed Mask - (Texture Map) This input data stream is used to override the material map used within the Speed Mask.

Speed Mask ON - (Bool) This input data stream is used to override the On/Off toggle for the Speed Mask control. A True condition turns the mask on, while a False condition turns it off.

Speed SizeDependence ON - (Bool) This input data stream is used to override the Size Dep. check box state within the MatterWaves rollout.

Speed SizeDependence - (Scalar) This input data stream is used to override the Size Dep. spinner value within the MatterWaves rollout.

Size Variation - (Scalar) This input data stream is used to override the Variation % spinner value for the Size settings within the MatterWaves rollout.

Size Mask Gradient - (Alpha Gradient) This input data stream is for future usage (i.e. - it is not currently active) and will be used to override the gradient ramp that controls the Size gradient within the MatterWaves rollout.

Size Mask - (Texture Map) This input data stream is used to override the material map used within the Size Mask.

Size Mask ON - (Bool) This input data stream is used to override the On/Off toggle for the Size Mask control. A True condition turns the mask on, while a False condition turns it off.

Distance - (Distance) This input data stream is used to override the Emit Distance spinner within the MatterWaves rollout.

Distance Variation - (Scalar) This input data stream is used to override the Variation % spinner value for the Emit Distance settings within the MatterWaves rollout.

Distance Mask Gradient - (Alpha Gradient) This input data stream is for future usage (i.e. - it is not currently active) and will be used to override the gradient ramp that controls the Emit Distance gradient within the MatterWaves rollout.

Distance Mask - (Texture Map) This input data stream is used to override the material map used within the Emit Distance Mask.

Distance Mask ON - (Bool) This input data stream is used to override the On/Off toggle for the Emit Distance Mask control. A True condition turns the mask on, while a False condition turns it off.

Distance Direction - (Integer) This input data stream takes an integer value that represents the direction offset type the particles will use. Valid input values are 0 and 1, where:

  • 0 = In Face Normal Direction
  • 1 = In Emit Direction

  Motion Inheritance - (Scalar) This input data stream is used to override the Motion Inheritance % spinner within the MatterWaves rollout.

Motion Inheritance Variation - (Scalar) This input data stream is used to override the Variation % spinner value for the Motion Inheritance % settings within the MatterWaves rollout.

Rotation Inheritance - (Scalar) This input data stream is used to override the Rotation Inheritance % spinner within the MatterWaves rollout.

Rotation Inheritance Variation - (Scalar) This input data stream is used to override the Variation % spinner value for the Rotation Inheritance % settings within the MatterWaves rollout.

In Viewport - (Scalar) This input data stream is used to override the In Viewport [%] spinner within the MatterWaves rollout.

Random Seed - (Random Seed) This input data stream is used to override the Random Seed spinner within the MatterWaves rollout.

Use Material ID - (Bool) This input data stream is used to override the Mat. ID check box state within the Emitter rollout.

Material ID - (Integer) This input data stream is used to override the Mat. ID spinner value within the Emitter rollout.

Use Smoothing Group - (Bool) This input data stream is used to override the Sm. Group check box state within the Emitter rollout.

Smoothing Group - (Integer) This input data stream is used to override the Sm. Group spinner value within the Emitter rollout.

Use Selected Faces - (Bool) This input data stream is used to override the Selected Face check box state within the Emitter rollout.

Face Reduce - (Integer) This input data stream is used to override the Face Reduce spinner value within the Emitter rollout.

Use UV Channel - (Bool) This input data stream is used to override the Coordinates check box state within the Emitter rollout.

UV Channel - (Integer) This input data stream is used to override the Coordinates spinner value within the Emitter rollout.

Clip UV - (Bool) This input data stream is used to override the UVW Clipping check box state within the Emitter rollout.

U Emitter - (Integer) This input data stream is used to override the U Emitter spinner value within the Emitter rollout.

V Emitter - (Integer) This input data stream is used to override the V Emitter spinner value within the Emitter rollout.

Random Distribution - (Bool) This input data stream is used to override the Random check box state within the Emitter rollout.

Show Emitter - (Bool) This input data stream is used to override the Show check box state within the Emitter rollout.

Use Active Emitter Only - (Bool) This input data stream is used to override the Use Active Emitter Only check box state within the Emitter rollout.

Emit Direction - (Integer) This input data stream takes an integer value that represents the emit direction method the particles will use. Valid input values are 0 through 8, where:

  • 0 = Face Normal
  • 1 = Helper Z Direction
  • 2 = Cylinder Helper
  • 3 = Sphere Helper
  • 4 = To Helper Position
  • 5 = Helper Move Dir.
  • 6 = Helper Reflection
  • 7 = Light Reflection
  • 8 = Mask

  Direction Mask - (Texture Map) This input data stream is used to override the material map used within the Direction Mask.

Direction Mask ON - (Bool) This input data stream is used to override the On/Off toggle for the Direction Mask control. A True condition turns the mask on, while a False condition turns it off.

Direction Mask Intensity - (Scalar) This input data stream is used to override the Mask Intensity spinner setting in the Emitter rollout.

Max Emit Angle - (Angle) This input data stream is used to override the Max. Emit Angle spinner setting within the Emitter rollout.

Direction Variation - (Angle) This input data stream is used to override the Direction Var Deg spinner setting within the Emitter rollout.

Use Material - (Bool) This input data stream is used to override the Use check box state within the Emitter rollout.

Use Lights - (Bool) This input data stream is used to override the Use Lights check box state within the Emitter rollout.

Emitter Mask - (Texture Map) This input data stream is used to override the material map used within the Emitter Mask.

Emitter Mask ON - (Bool) This input data stream is used to override the On/Off toggle for the Emitter Mask control. A True condition turns the mask on, while a False condition turns it off.

Threshold - (Scalar) This input data stream is used to override the Threshold spinner setting within the Emitter rollout.

Use Color - (Bool) This input data stream is used to override the Color check box state within the Emitter rollout.

Color - (Color) This input data stream is used to override the Color swatch value within the Emitter rollout.

Color Variation - (Scalar) This input data stream is used to override the RGB Variation spinner setting within the Emitter rollout.

Particle Axis - (Integer) This input data stream takes an integer value that represents the Primary Axis the particles will use. Valid input values are 0 through 2, where:

  • 0 = X-Axis
  • 1 = Y-Axis
  • 2 = Z-Axis

  Invert - (Bool) This input data stream is used to override the Color check box state within the Birth Alignment rollout.

Axis Rotation - (Angle) This input data stream is used to override the Rotation deg. spinner setting within the Birth Alignment rollout.

Type - (Integer) This input data stream takes an integer value that represents the emit direction method the particles will use. Valid input values are 0 through 7, where:

  • 0 = None
  • 1 = World X
  • 2 = World Y
  • 3 = World Z
  • 4 = Face Normal
  • 5 = Emit Direction
  • 6 = Random
  • 7 = User Defined

  Direction - (Direction) This input data stream is used to provide a directional vector for the particles.

Variation - (Angle) This input data stream is used to provide variation for the directional vector for the particles.

Color Channel - (Integer) This input data stream is used to override the Color spinner setting within the Write to Channel rollout.

Map Channel - (Integer) This input data stream is used to override the UVW spinner setting within the Write to Channel rollout.

UVW Channel - (Integer) This input data stream is used to override the UVW Channel spinner setting within the Write to Channel rollout.

Object Position Channel - (Integer) This input data stream is used to override the Object Position spinner setting within the Write to Channel rollout.

World Position Channel - (Integer) This input data stream is used to override the World Position spinner setting within the Write to Channel rollout.

Operator Outputs 

Born Particle - (Particle) This output data stream sends particle data for newly created particles to other operators. Every particle birth will activate all rules connected to this particle data stream. As a result , this can be used to directly assign a value to the particle.

Particle Frame Counter - (Integer) This output data stream provides a “counter-like” function that holds the current number of created particles at the given frame. This counter is reset per frame and starts over again at 0. As a result, you can use this output data when you want to trigger other rules based on the creation of a certain number of particles.

Do not confuse this value with the lifetime particle ID every particle has.

Particle Animation Counter - (Integer) This output data stream provides a “counter-like” function that holds the current number of created particles at the given point in the animation. This counter is NOT reset per frame and accumulates the total number of particles created over the course of the animation. As a result, you can use this output data when you want to trigger other rules based on the creation of a certain number of particles.

Color - (Color) outputs the color value a the emitter position

UVW - (Vector) outputs the current UVW coordinates of the active emitter

Object Position - (Position) outputs the active emitter position in local object space

World Position - (Position) outputs the active emitter position in absolute world space

Rollout Menus 

image124.gif

Pick Object Based Emitter - The MatterWaves Operator must be assigned to an object before particles can be created. Select the Pick Object Based Emitter button and then click on the object in the scene that you want to turn into a MatterWaves particle emitter. You may also use the select by name feature within 3ds Max if you are not able to easily click on the desired object in the view ports.

You may also pick multiple objects in one go and add them to the emitter list.

    Rem. - When pressed the selected object will be removed from the list of particle emitters

Group - Before you select an object and create any particles in the active viewport, think about where you want to store them. From the Group drop down list you can select any particle group that should be used to store the particles that are emitted from the selected object.

FIRE - You must press the Fire button to enable particle generation. This button is fully animatable so you can turn the particle emission on and off throughout the course of your animation. This is easily done using the standard 3ds Max animation features. A Boolean ON/OFF controller turns the Fire button on and off; no intermediate values are allowed.

Time (s) - The Fire Timing spinners let you control how the Fire button behaves. While you can animate the Fire button, it turns the particles on and off and has no way to slow the number of particles down or speed their emission up. These spinners help overcome that by increasing or decreasing the number of generated particles per time interval.

The first spinner represents the Attack time (in seconds). The second spinner represents the Sustain time (in seconds). These two spinners work in concert with the gradient beneath them to create a smooth transition between the states and represents the time needed to create or destroy particles.

Attack / Sustain - The gray scale gradient below the Time(s) spinners lets you control the Attack and Sustain curves. As you will see, there is only one gradient and it was set up that way to provide a smooth transition between the two particle emission states. The gradient is evenly divided - the left half controls the Attack timing curve, while the right half controls the Sustain timing curve.

attacksustaingrad.jpg

The Attack side is defined as the timing curve of the particle emission after the Fire button is activated. Likewise, the Sustain side is defined as the timing curve of the particle emission after the Fire button is turned off. An easy way to think of these two parameters is like a keyboard synthesizer - striking a key and releasing it is analogous to activating and de-activating the Fire button, and the Attack and Sustain controls are like the synth’s ability to cause a note to fade in after striking the key (Attack) or fade out after the key is released (Sustain).

In the case of the Attack timing, you are able to set the time it takes to create all particles to meet a certain target value (overall particle count, or particles/sec). Unlike standard 3ds Max particle systems which use a constant particle rate or a fixed number of particles, the MatterWaves Operator is able to create an accelerated particle rate based on a specific time interval. Look at the diagram below:

image

In this graph, here are the things to consider:

  1. When the Fire button is activated, the Attack timer starts. In this example, the Fire button is activated at Frame 2.
  2. The Time(s) spinner that is set above the gradient controls how long (in seconds) the acceleration curve should take. In this example, it was set to 5 seconds.
  3. The gray scale gradient controls the Attack curve. In this example, it's linear from black to white. A plain black color in the gray scale gradient indicates a zero particle rate while a pure white color will create as many particles as you have set in the Count, Particles/s or Pistol Shot menu section.

In the case of the Sustain timing, you are able to set the time it takes to destroy all particles after the Fire button is released. Unlike standard 3ds Max particle systems which use a constant particle destruction rate, the MatterWaves Operator is able to create an ramped particle rate to gradually slow down and eliminate the particles based on a specific time interval.

For example; when you set the Sustain Timing to 2 seconds, MatterWaves needs 2 seconds to gradually (as set in the gray scale gradient) decrease the number of particles born until it reaches a complete stop after 2 seconds. It's similar to a damping value for the Fire button when it's released. All effects or features described in Attack Timing are also valid for Sustain Timing, it's just the other way around.

Setting the Particle amount in MatterWaves 

The MatterWaves Operator offers many in-depth controls through the different particle generation methods. However, while some of the creation methods are similar to other particle systems you might already know, others are totally unique to MatterWaves and will take some getting used to. To use MatterWaves' full power you need to understand how it creates particles and emitters. There are three basic methods to control the number of particles created in an animation.

Count - As the parameter name implies, the Count option sets the maximum number of particles allowed at any one time in your animation. Count is based on the whole animation regardless of any other timing value, and at no time during the animation will there be more particles alive than the value set within this spinner. To keep the number of particles constant once the capacity has been reached, a particle is born only when another one dies.

Don't get confused when you use Attack and Sustain with this creation method. In this case, the number of particles will grow continually depending on the Attack curve, however, the total number of particles will never exceed the number set in Count. Also worth noting is that if the Per Emitter check box isn't active, any newly born particle will be created randomly at any free particle emitter.

Particles / (s) - The Particles/s feature is a unique feature only MatterWaves offers. It sets the maximum number of particles allowed per second. This value is also based on a complete animation. This means as long as your animation lasts, the number of particles generated won't exceed the value set in Particles/s. Depending on the number of particles and emitters available, you may get emitters that never create a single particle while the animation lasts. This is not a mistake; the newly born particles are created by the emitters on a first come, first served basis. If you want to make sure that every emitter is creating a particle you may need to increase Particles/s.

Flow - check this option to get a constant flow of particles suitable for fluid animations. In contrast to Particles/s this option will make sure that particles are emitted in a constant flow per emitter. The Particles/s function divides the particle emitting rate among all emitters over time and achieves to evenly fill a volume even though there are possibly larger gaps. Check out the samples below. Flow does the opposite, every emitter has the same emit rate per second (as set in the dialog above). All particles are born at the same time with the set rate.

Particles /[s] = 10 Flow = 10

To evenly fill a volume (like a raster) the particle emission speed needs to be synchronized with the particle rate per second. If those two values do not match up the particle stream will be showing gaps.

Pistol Shot - Another unique feature found in the MatterWaves Operator is Pistol Shot. Usually standard 3ds Max particle systems are not able to simulate a free interval creation of particles. While you can make a broad comparison between the Pistol Shot feature with 3ds Max's Birth Rate feature, you can't really get the same results from the standard systems as with Pistol Shot. When you animate the Fire button, MatterWaves will create on each “button press” the full number of particles set in this spinner immediately as a burst (except when you use an Attack curve).

Per Emitter check box - This checkbooks's name says it all. When you use MatterWaves' Per Emitter option, the number of particles is controlled by the number of emitters. As such, each emission point will be treated identically when it comes to creating new particles, and the number of particles set in the Particles section (Count, Particles/s, Pistol Shot) will always be higher than the respective values when you use the Per Emitter option. It always will be a multiple of the amount of emitters.

WARNING: Be careful when you use the Per Emitter option! The particle count set in the spinners is valid for every emitter and it is not divided by all emitters. So, if you have 100 emitters and a particle Count of 100 and you use the Per Emitter option, this can create 100×100=10.000 particles! 3ds Max may very well slow to a crawl if you don't respect this potential for huge quantities of particles.

Per Emitter Activation check box - When this check box is active, the number of particles emitted is controlled by the number of emitters that are active at that moment in time. So if you've set up a particle animation to emit based on an animated map color, turning on the Per Emitter Activation check box will send the same number of particles to each emission point as that point gets a true condition for it's activation. This can also cause system slowdowns if you are not careful, so use this option wisely.

Life Span (s) - The particle life setting within the MatterWaves Operator uses Multi-Layer Particle Control technology to control the particle life of each single particle. If no mask (material map) is used, all of the particles get the same life time when they are born. This works like with any other particle system, but MatterWaves goes one step further. The Life Span(s) spinner sets the particle life to a specific amount of time (measured in seconds).

Variation % - This spinner adds some random variation to the Life Span (s) amount for each particle created by this operator. The value represents a percentage value that is added/subtracted to the original Life Span value. As an example, if the Life Span (s) spinner is set to 2 seconds and the Variation % spinner is set to 50, the resulting particle system creates particles of maximum ages between 1 and 3 seconds.

Mask - The particle Life Span Mask controls the particle life at the time of birth for each particle. A pure white value in the image map or material creates particles that can get as old as you set in the Life Span (s) spinner, while a pure black value in the image map or procedural material will create particles with zero life time. You may animate the image map or material to get a different life value for each particle born.

The gray scale gradient is not used when there is no image map or material assigned to the Mask.

     

Particle Life Layer Example:

  image

  1. Life Span (s) Mask: A standard 3ds Max gradient material map (black = Zero Life Time)
  2. Emitter Map: A standard 3ds Max bitmap (black = no emitters)
  3. Object with material
  4. Final rendered result 

Speed - The particle speed parameter can also be used to control the particle speed via MLPC technology. Without the control of an image map or material, the Speed parameter sets the particle speed to a specific minimum for every particle that is born through MatterWaves.

Variation % - The Variation % spinner adds some random variation to the Speed amount. This value is a percentage of Speed that is added/subtracted to each particle.

Size Dep. check box - MatterWaves offers many unique features to help the professional animator achieve the best results with minimum effort. Great looking CG explosions with zillions of object chunks flying around are really hard to do, especially if you want to make it look real. One common problem all particle systems seem to have is the mathematically perfect spherical expansion from the center of explosion. Even in outer space with no gravity at all there wouldn't be a perfect spherical expansion of the object chunks.

The MatterWaves Operator helps you to fake some real world science for matter and motion, especially when you do particle explosions. Like in the real world you need to make exploding objects accelerate based on their mass and driving force (a bomb or whatever). While the MatterWaves Operator is able to handle impulses or mass per particle (object fragments), it may be a task that is way too expensive to compute. As such, MatterWaves lets you simulate these effects by making the world of physics really trivial and simple. Bigger objects usually have more mass and so they need a higher force to start moving or accelerate. This may not be always true in the real world (for example with giant blocks of Styrofoam) but it's true for the MatterWaves Operator.

The Size Dep. parameter controls the size a particle/fragment must have in order to achieve the velocity value that is set in the particle Speed parameter. All particles/fragments bigger than Size Dep. move slower (based on the size difference) and smaller particles will move faster. This feature is great to simulate exploding objects with different fragment sizes.

Mask - The particle Speed Mask controls the particle velocity at the time of birth for each particle. A pure white value in the image map or material creates particles that can move as quickly as you set in the Speed spinner, while a pure black value in the image map or procedural material will create particles with no speed. You may animate the image map or material to get a different speed value for each particle born.

NOTE: The gray scale gradient is not used when there is no image map or material assigned to the Mask.

Motion Inheri % - When MatterWaves emits particles from static objects, everything looks great. But what happens when you start to animate/move the particle emitter around? Think about a good old locomotive under full steam. The laws of physics tell us that the steam leaving the train's smokestack will briefly have the same speed as the locomotive and so the steam will travel along the motion vector of the locomotive. The Motion Inheritance % spinner is designed to let you smoothly turn on the laws of physics for your emitted particles. A value of 100% will give the particles emitted from the moving object the exact same relative speed as the emitting object has.

Variation % - The Variation % spinner adds some random variation to the Motion Inheritance amount. This value is a percentage of Motion Inheritance that is added/subtracted to each particle.

Rot. Inheri. % - In the same way that Motion Inheritance % spinner affects positional dynamics, the Rotation Inheritance % spinner affects the emitted particles' rotational values when the emitting object is rotating. A value of 100% will give the particles emitted from the rotating object the exact same rotational speed as the emitting object has.

Variation % - The Variation % spinner adds some random variation to the Rotational Inheritance amount. This value represents a percentage of Rotational Inheritance that is added to or subtracted from each particle.

Size - This animatable parameter specifies the size for all particles in the system. The MatterWaves Operator assigns this Size value to all particles born by this operator. Size is usually a world unit value.

Variation % - The Variation % spinner adds some random variation to the Size of each born particle. This value represents a percentage of the original Size that is added to or subtracted from each particle.

Var. Mask - The particle Size Mask controls the particle size at the time of birth for each particle. A pure white value in the image map or material creates particles that can be as large in size as you set in the Size spinner, while a pure black value in the image map or procedural material will create particles with no size. You may animate the image map or material to get a different size value for each particle born.

The gray scale gradient is not used when there is no image map or material assigned to the Mask.

      Particle Size Layer Example:

image

  1. Size Mask: A standard 3ds Max gradient material map (black = Zero Size)
  2. Emitter Map: A standard 3ds Max bitmap (black = no emitters)
  3. Object with material
  4. Final rendered result with different particle sizes controlled by 1.

  Emit Distance - The MatterWaves Operator usually places all particle emitters direct on the object's surface without any offset (Distance = 0.0). When the Emit Distance spinner value is greater than zero, all emitters will be placed with that offset from the object's surface. Numbers below zero will move the particle emitters “below” the object's surface. The Distance value is set in world units.

Variation % - The Variation % spinner adds some random variation to the Distance offset of each born particle. This value represents a percentage of the original Distance that is added to or subtracted from each particle.

Var. Mask - The particle Emit Distance Mask controls the particle placement relative to the object's surface at the time of birth for each particle. A pure white value in the image map or material creates particles that are placed at the offset distance as you set in the Emit Distance spinner, while a pure black value in the image map or procedural material will create particles with no offset. You may animate the image map or material to get a different offset value for each particle born.

The gray scale gradient is not used when there is no image map or material assigned to the Mask.

image94.gifNormal - uses the interpolated surface normal direction to offset the emitters.
Emit Direction - When Emit Direction is selected, the offset can be applied by any of the methods described in Emit Direction Mode.
Face Normal Direction - MatterWaves is able to offset the particle emitters along the object's surface normals or along the emit direction. A surface normal is always perpendicular to its triangular plane and when this option is selected, the distance offset is computed relative to the face normal.

Random Seed - Change this number to prevent all particles from behaving in the same way when you use multiple MatterWaves Operators.

In Viewport [%] - It can be frustrating to wait for the particle system to update the view to represent the current status. This parameter controls the number of particles that should be visible in the viewport for playback of your particle animations. A value of 100% means, that all particles will be drawn and calculated for the display in the viewport. Reduce this number to decrease the visible amount of particles in the viewport.

This value has NO effect on what is rendered.

     

Emitter Rollout 

image125.gif

Emit Source - This display is used to tell you the name of the object that is used to emit particles.

Mat. ID - Emitter placement on an object’s surface can be achieved in many different ways. One easy and straightforward method used by the MatterWaves Operator is emitter placement based on a specific Material IDs. All faces with the same Material ID as set in Mat. ID spinner will be used to create particle emitters. You MUST check the option to use Material ID.

Sm. Group - Another cool way to control particle emitter placement along an object’s surface is through the use of smoothing groups. The MatterWaves Operator uses the mesh smoothing group information to place emitters on the object’s surface. To use this option you must activate the check box first.

Selected Face - Activate this check box to place particle emitters on selected faces only.

FaceReduce - The Face Reduce spinner tells thinkingParticles to use every Nth face when creating particle emitters on the object's surface - so a FaceReduce value of 10 means that every 10th face is used to create particle emitters on the selected object.

Coordinates - Activate this check box when you want to use UVW mapping coordinates to place the particle emitters on the object. When this value is set to 0, the mesh is used to define where the emitters are placed, so every single triangle will get an emitter. Any other number will set the UV Channel (0-99) that should be used to place the emitters. The placement of the particle emitters is controlled by UVW Map modifiers. The MatterWaves Operator places particle emitters evenly along the UV Mapping space.

UVW Clipping - In some cases you will not want to use the full UVW mapping area to create particle emitters. By default, the MatterWaves Operator will always create particle emitters spread all over the object's surface. This is also the case when the UVW Mapping area is smaller than the object's surface (decal). Check this option to avoid such an effect.

Example: Imagine, a huge landscape made out of a dense quad patch object. Within that area, you decide that only a small spot should generate particles. Usually this situation would mean that you would need to increase the number of UV Emitters towards the range of 10.000 so that you can be sure to get some emitters near the desired spot on the landscape surface. Clip UVW helps in solving this unwanted situation. Clip UVW creates particle emitters in the designated UVW Mapping area only and not all over the landscape object.

U/V Emitter - These two spinners let you define evenly spaced particle emitters based on the UV coordinates used in each direction (U and V). Be sure to note that when you use U Emitter=10 and V Emitter=10, MatterWaves will create 100 particle emitters (10×10).

Random - The MatterWaves Operator will always try to evenly place particle emitters along the object's surface. If you don't want this unvaried look of particle emitters you may also change this particle emitter behavior by activating the Random placement feature. When you check this option, the positions of the particle emitters are varied by a certain amount.

Random U - defines the amount of random positioning in U direction

Random V - defines the amount of random positioning in V direction

Show - To visualize MatterWaves' particle emitters on the object's surface you may check the Show button in the emitter rollout menu. Red dots on the object's surface will appear that represent the particle emitter points created by the MatterWaves Operator.

Use Active Emitter only - When you do not use the Active Emitter Only feature, the MatterWaves Operator will distribute particles evenly amongst all emitters available (active or not). This means, even when you have 100 particles and have 30 emitters that are active (by light, material or whatever) there is a good chance that each active emitter will emit only a few particles and not 100 as set by the user. To avoid this effect check the Use Active Emitter only button. This will make sure that the number of particles are distributed amongst the active emitters only.

Emit Direction 

Mode - By default the emit direction for all particles created by the MatterWaves Operator is the surface normal of each triangle. Besides this surface normal there are many other options that can be used for the direction vector of the particles when they are created by an emitter. Just as you can control the particle size, speed or even age by an image map or procedural material, you can also control the direction the particles move using materials.

You are presented with the following drop down menu to choose from:

image97.gif

Normal - use this option to make MatterWaves use the interpolated surface normal to emit particles.

Face Normal - MatterWaves uses the Face Normal setting by default. Each particle emitter will use the surface normal to emit particles.

Helper Z-Direction - Helper or reference objects are really useful when you want to control a whole mass of particles at once. The MatterWaves Operator uses the reference object's transformation matrix to control the particles' emit direction. Only the Z-Axis of the picked object is used to calculate the emit direction of all particles.

Cylinder Helper - Select Cylinder Helper to make the MatterWaves Operator use the reference object's transformation matrix to calculate a cylindrical spread out effect. The reference object's position is used to control the center of the spread out effect. The MatterWaves Operator will always use the Z-axis of the reference object to create the cylindrical effect.

Sphere Helper - Sphere Helper offers another way to control the emit direction of each single particle. When this option is selected, the MatterWaves Operator uses a radial emit direction for each single particle created. The center of this spherical particle effect is supplied by the reference object.

To Helper Position - All particles created by the emitters move in a direct line to the reference object's center point. It's a very helpful feature when you want to control a mass of particles.

The direction of travel for each single particle is initially set at the time of birth. If the reference object moves, newly born particles will also move into the new direction.

Helper Move Dir. - The MatterWaves Operator also offers another reference object tracking feature to control a mass of particles. The reference object's direction of travel and speed is analyzed and applied to the particles. All particles use an inverted movement vector, so that the particles travel in the opposite direction from the reference object.

Helper Reflection - Helper Reflection uses the reference object's position information to calculate a reflection vector for each single particle created by MatterWaves. It works like a mirror: incoming angle = negative outgoing angle.

Light Reflection - MatterWaves calculates the “light bounce” vector for each particle when you select Light Reflection as the emitting angle mode. If you use more than one light in a scene the averaged angle between the lights is used.

Mask - Set the emit direction mode to Mask to control the emit angle of each single particle an image or procedural material map is used to control the emit angle of each single particle. To use this feature you must also apply a map in the Dir. Mask parameter.

Ref. Object - The MatterWaves Operator may use reference objects to control particle systems and particle movements. All calculations based on reference objects are done once, at the time of particle birth. When a particle is born it gets its initial speed and direction of travel based on one of the several reference schemes as described above.

Left-Click the Pick Object button, this will enter the pick mode of the MatterWaves Operator. Any legal 3ds Max object may be picked right from within the main user interface.

Dir. Mask - The Direction Mask works in exactly the same way as a bump map causes reflected highlights to change across an otherwise smooth surface. The gray scale change between two pixels is used to calculate the emit angle of each particle. This feature allows you to easily control the direction of travel for all particles created by the emitters on the object's surface. Right next to Dir.Mask you can find the gray scale threshold value for the mask bitmap. A value of zero will create no angular change ( it's like when you set the bump amount to zero!) higher values will create higher angular changes between pixel values.

Mask Intensity - This spinner works like a bump map vector multiplier to increase the bump map directional effect and becomes active when mask is selected.

Max Emit Angle - This spinner allows you to gain additional control over the particle emitters on the object's surface. To use this feature you must first have a reference object selected and you must make sure that the Emit Direction Mode is NOT set to Face Normal. Once set, particle emitters are created only when the angle between reference object and surface normal is equal or below the Max Emit Angle value. This option is best used on round or uneven surfaces. It is perfect for creating Saturn-like planetary rings of particles.

Direction Var. Deg - The MatterWaves Operator is able to add random directions to any emitted particle. This random direction amount is added after everything has been processed by the MatterWaves Operator.

Emit On Off Manipulation Group of Controls 

Use - Check the Use Material/Map radio button to control particle emitters by material. When this option is selected, the MatterWaves Operator will analyze the material and color of the object to compare the result with the threshold particle emitter value (default=0). All rendered pixels on the object's surface that fall below this threshold value will turn off the relevant particle emitters nearby.

Use Lights - To use light sources to control/create particle emitters activate the Use Lights check box. In this case, the MatterWaves Operator activates/generates particle emitters based on the amount of surface illumination. You may also use a specific threshold to control the maximum amount of illumination to be used to activate/generate a particle emitter.

Be aware that you can use both options (Material/Map, Lights) at the same time. If you use both options at the same time “Use Material/Map” will have highest priority. The map controls at which place particles are created and the light source (lighting) turns emitters on or off.

  Material/Map - The use of materials/maps to control particle emitters on an object's surface is one of MatterWaves’ key features. When you check the Use Material/Map button, the MatterWaves Operator will use the object's own material by default. Nevertheless, one can also choose any other material/map to control the particle emitters. To set a different material/map left-click onto the gray square next to the material name or drop any image map or procedural material map onto it.

REM. - To remove a light from the list box, highlight it and then click this button.

PICK - The MatterWaves Operator is also able to use lights to control particle emitters! Usually there is more than one light in a 3D scene and this is the reason why the MatterWaves Operator offers a Pick Lights option. Left-click the Pick button and start selecting the desired lights in the 3D scene. To remove a light from this list at any time, select it from the list and left-click the REM. button.

Lights may affect the creation of particle emitters and also lights may be used to activate the particle emitters to create particles when they become lit.

Threshold - The Threshold parameter acts like a cut off value that tells the MatterWaves Operator when to stop creating particles on the objects surface. The Threshold number represents a pixel intensity value created by the rendering system. Generally, brighter pixels (white) have a higher intensity than darker (black) pixels.

Note, threshold is deactivated by default. It is only accessible when Use Material/Map or Use Lights is checked! When Threshold is grayed out you must select one of the options above first!

Color - When you activate this option (when the Use check box is active), you can select a color from the swatch next to the check box to test for the threshold on the surface of the emitter.

RGB Variation % - The MatterWaves Operator offers RGB Color tracking, to offer even more control where particle emitters should appear on the object’s surface. By default, the MatterWaves Operator places particle emitters based on the material or map intensity values. Another way of placing particle emitters is by RGB color tracking. Left-click the Color radio button to activate the color swatch and the RGB Variation % parameter. Drag or set any color value that should be tracked on the objects surface. The RGB Variation % value represents the maximum color difference allowed to create a particle emitter. This feature makes it possible to create particles regardless of the intensity (threshold) values.

Note, Color and RGB Variation is grayed out (deactivated) by default. To access this feature you must select Use Material/Map or Use Lights first.

For View Only 

Manual Update - We don't know how much “timing pain” you can withstand, so we have built-in this little emergency hook for you. Whenever you feel it's getting really time consuming doing screen updates, turn Manual Update on and it's up to you when a screen update happens. This option is valid for the viewport only. Each button press on Update updates the screen view of the MatterWaves particle system. The number next to Update represents the last frame when Update was pressed.

Note, this feature may interfere with the Master DynamicSet setting “Edit on the Fly”.

     

Birth Alignment Rollout 

P Axis - This set of radio buttons is enabled whenever you choose any setting from the alignment drop down menu but NONE. P-Axis sets the particle's local axis that is used to align the particle when it is born. Alignment of the particle's local axis is set in the drop down menu underneath.

Invert - Invert is enabled whenever you select anything different from NONE in the birth alignment drop down list. Check INVERT when you want to Use the negative particle axis as the alignment basis.

Rotation - Besides the various options that enable you to control the initial alignment of a particle when it’s born, you may also set a specific angle by changing this parameter.

Alignment Drop down 

This drop down list offers various options how the MatterWaves Operator aligns the particle when it’s born. All options are relative to the local particle axis as it is set in the P-Axis section.

None - This option uses always the surface normal and the local Z axis of the particle.

World X - The local particle axis will be aligned along the World X axis.

World Y - The local particle axis will be aligned along the World Y axis.

World Z - The local particle axis will be aligned along the World Z axis.

Face Normal - The particles will be aligned along the surface normal.

Emit Direction - The particles will be aligned along the emit direction

Random - Select this option to get a total Random particle alignment

User Defined - This option lets you choose each individual axis     Variation - To add some angular variation to the particle birth alignment increase this value. Higher numbers create more visible variation. This value represents an angle that is added or subtracted to the birth alignment value.

User Axis - Whenever User Defined is selected in the birth alignment drop down list, the User Axis spinners are activated. You may align any three axis, together or individually, with the local particle axis.

Write to Channel Rollout 

Color - This spinner defines the Data Channel number that should be written. -1 means no Data Channel is written. The Color comes from the surface color the emitter is placed on (used to decide to activate an emitter).

UVW - The first spinner is the UVW channel within 3ds Max, and the second spinner defines the Data Channel number. The UVW Coordinate comes from the surface position where the emitter is placed on.

Important
The W coordinate of the UV mapping is automatically animated over time. Every new particle created gets a new continuous timestamp in the W component.

Object Position - This spinner defines the Data Channel number that should be written. -1 means no data channel is written. The position represents the emitter position in object space.

World Position - This spinner defines the Data Channel number that should be written. -1 means no data channel is written. The position represents the emitter position in world space.

©2024, cebas Visual Technology Inc.

reference_guide/thinkingparticles_nodes/operator_nodes/generator/matterwavesoperator.txt · Last modified: 2024/01/24 18:34 by 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki