The Speed By Surface operator lets you control particle speed and direction with any object or objects in the scene. This is in contrast to the default Speed operator, which uses the Particle Flow icon to control particle speed and direction. Speed By Surface also provides options for controlling speed by materials in the scene, and continuous speed control.
Typically, you use Speed By Surface to assign speed and direction characteristics based on the objects used as emitters with the Position Object operator. That is, you assign the same objects as emitters with Position Object and as Surface Geometry objects with Speed By Surface.
Tip: For greater control over particle motion on the surface, apply a
Speed operator before the Speed By Surface operator in the same event. Use the Speed operator to specify particle direction on the surface, and the Speed By Surface operator to adjust the vertical component of the speed vector to follow the contour of the surface.
Procedures
Example: To use Speed By Surface:
The Speed By Surface operator offers a wealth of possibilities for usage. This procedure will lead you through several examples, but you're encouraged to explore the operator further on your own to learn more about it.
- Start or reset 3ds Max, and add a Particle Flow system. Position the source icon at the world origin (X/Y/Z=0), and set the icon's Length and Width values both to 30.
- Add a Cylinder primitive to the scene. Position it above the source icon: X/Y=0 and Z=30. Set Radius=20 and Height=40.
-
Play the animation, and then stop playback.
The particles move downward, using the default starting setup.
- Open Particle View and add a Speed By Surface operator to the end of Event 01. Click the operator in the event to display its parameters panel in Particle View.
- In the Surface Geometry group, click Add, and then select the cylinder.
-
Play the animation again, and then stop.
The particles still move downward.
- Go to frame 15, so you can see the particles, and then slowly move the cylinder downward along the Z axis, while watching the particles in the Perspective and Front viewports. Stop when the emitter is above the cylinder.
As the bottom of the cylinder passes below the emitter, more and more particles start moving on the XY plane rather than perpendicular to it. That's because they eventually become closer to one of the vertical sides of the cylinder, rather than the bottom, at which point they move perpendicular to the vertical sides. When the top becomes the closest side, the particles again move vertically, but upward instead of downward.
-
Move the cylinder back up until the emitter is at its vertical center. Then, on the Modify panel, click the lower part of the Sides spinner to decrease the number of sides, one at a time.
Each time you click, the particle streams traveling outward change, to move perpendicular to the vertical sides as they change position. You might also try rotating the cylinder, and note that the particle streams also rotate, like the spokes of a wheel.
- In the Speed By Surface parameters, change Direction to Out Of Surface, and then move the cylinder up and down.
The overall behavior doesn't change much. Out Of Surface becomes more useful when you use the Control Speed Continuously option, as you'll observe shortly.
- In the Speed By Surface parameters, change Direction to Parallel To Surface, and then move the cylinder up and down.
Now the particle behavior is effectively opposite of that with the other two options. When the particles are closer to the top or bottom, they move along the XY plane, and when they're closer to the vertical sides, they move downward. If you want them to move upward instead, set Speed to a negative value.
Next, you'll discover how the Control Speed Continuously option alters particle behavior.
- In the Speed By Surface parameters, choose Control Speed Continuously, and then drag the time slider.
The particles spread out from the emitter, and then start orbiting the cylinder in a roughly cylindrical overall formation. Particle Flow continually checks to see which side of the cylinder a particle is closest to, and, if necessary, changes its direction to make it travel parallel to that side. You can affect the size of the particles' orbits by changing their speed.
Lastly, you'll see how to contain particle motion within the cylinder.
- Make the cylinder considerably larger: Radius=60 and Height=90. Activate the Perspective viewport, if necessary, and then press F3 to set it to Wireframe view.
- In Particle View, click the Speed 01 operator and set Direction to Random 3D.
- Click the Speed By Surface operator. Set Speed to 300 if necessary. In the Direction group, choose Out Of Surface, and then drag the time slider.
After exiting the emitter, the particles always move away from the nearest surface, with the result that they end up milling about in the center of the cylinder.
- Gradually increase the Speed value, up to 1,000 or so.
The particles start to spread out vertically, and eventually start moving so fast that they escape the cylinder. You can make them stay inside the cylinder by letting them accelerate more quickly, so they can turn before moving past the nearest surface.
- Increase the Accel Limit setting until the particles no longer exit the cylinder.
- Try giving the particles more room to move about in by increasing the size of the emitter. Also try changing other settings throughout the particle system to see their effects. The possibilities don't end here, and the more you experiment, the more you'll learn about how this powerful operator works.
Interface
The user interface appears in the parameters panel, on the right side of the Particle View dialog.
- [speed control drop-down list]
- The first setting lets you choose whether the operator controls speed once or continuously.
-
Set Speed Once The operator sets the speed for each particle once: when the particle enters the event.
-
Control Speed Continuously The operator sets particle speed throughout the event. When you choose this option, the Continuous Speed Control group becomes available.
- Speed
- The particle speed in system units per second. Default=300.
With the Control Speed Continuously option, you can turn off Speed. This causes Particle Flow to use the current particle speed.
Using a negative Speed value causes particles to move in the opposite direction of that effected by a positive speed.
- Variation
- The amount by which particle speed can vary, in system units per second. Default=0.0.
To obtain each particle's speed, the system multiplies the Variation value by a random number between -1.0 and 1.0, and then adds the result to the Speed value. For example, if Speed=300 and Variation=100, then each particle's speed would be between 200 and 400.
Surface Geometry group
Use these controls to assign objects to affect particle speed and direction.
- [geometry list]
- The list in this group shows the objects, or reference geometry, that the operator uses to control speed and direction.
If you don't assign any objects, the current particle speed and direction are not affected.
You can assign multiple Surface Geometry objects, but if they're not all emitters as well, the results can be difficult to interpret. In general, assign the same objects as Surface Geometry that your system uses as emitters.
Tip: For optimal performance, when moving particles with respect to high-polygon objects, create a low-poly proxy version to use as surface geometry, link it as a child of the high-poly object if necessary, and then hide the low-poly proxy.
Use the Add and Remove buttons to edit this list.
- Add
- Adds an object to the list. Click Add, and then click an object in the viewport.
- By List
- Adds multiple objects to the list. Click By List to open the Select Surface Objects dialog. This works just like Select From Scene: Highlight the objects to use to control speed and direction, and then click the Select button.
- Remove
- Removes an object from the list. Highlight the object in the list, and then click Remove.
- Animated Shape
- Turn on to allow particles to follow the surface of an object whose form is animated by morphing or with modifiers.
- Subframe Sampling
- When on, the operator acquires animation of the Surface Geometry shape on a tick basis (every 1/4,800th of a second) rather than a frame basis. This provides greater precision in allowing the particle positions to follow animation of the Surface Geometry object's form.
- Speed by Material
- Varies particles' existing speed and direction based on properties of the material applied to each Surface Geometry object. For example, if an object is assigned a black-and-white checkered diffuse map and you choose the Grayscale Multiplier option, particles near the white-checked areas move faster than those from the black-checked areas.
Note: For material-influenced speed to appear properly in the viewports, two conditions are required: at least one viewport must be set to a shaded display mode, and the material or map must have Show Map In Viewport turned on in the Material Editor.
The options are as follows:
-
Grayscale Multiplier Lets material luminance control speed, with darker areas producing slower particles and lighter areas producing faster ones. Particle Flow multiplies the luminance of the material near each particle, converted to a percentage, by the particle's current speed. A luminance of 0 converts to 0%, of 128 converts to 50%, and of 255 converts to 100%.
For example, if the speed of a particle traveling at 50 units per second is influenced by a pixel whose luminance is 90, the resulting speed is 90/255*50, or about 17.6 units per second.
-
Signed Grayscale Works like Grayscale Multiplier, but the multiplier can be negative as well, causing reversal of motion. Signed Grayscale uses a material luminance value of 128 as the midpoint, and assigns it a multiplier of 0%. Luminance values from 0 to 127 result in multipliers of -100% to about -1%, respectively, and values of 129 to 255 result in multipliers of about 1% to 100%, respectively.
-
RGB as World XYZ Mult. Works like Grayscale Multiplier, but uses the intensity of the material's red, green, and blue channels to affect particle speed on the world X, Y, and Z axes, respectively. So, for example, if the material pixel is pure red, that is, its RGB value is (255,0,0), then the particle will retain its current speed on the world X axis, but its speed on the Y and Z axes will be reduced to 0. Similarly, a medium-yellow pixel (128,128,0) will cause speed on the world X and Y axes to be reduced by half, and will cut speed on the Z axis to 0.
-
RGB as Local XYZ Mult. Works like RGB as World XYZ Mult., but uses the object's local coordinates rather than world coordinates.
Use Sub-Material When on, uses a sub-material from the Multi/Sub-Object material assigned to the Surface Geometry object to define speed.
This option allows usage of “invisible” materials for controlling particle speed. If the emitter uses a Multi/Sub-Object material but its geometry doesn't use the ID that corresponds one of the sub-materials, the sub-material doesn't appear. However, the operator can use it to calculate the density of particle placement. Particle Flow assumes the material to be applied to the entire object surface.
-
Mtl ID Specifies the material ID of the sub-material to be used for particle speed control.
Direction group
- [Direction drop-down list]
- The Direction drop-down list lets you specify which way the particles go after they're born. In most cases, the actual direction also depends on the icon orientation. The primary exception is when Position Location is set to Pivot.
Particle movement is always in a straight line unless influenced by other factors.
-
Surface Normals (The default.) Each particle moves along a line perpendicular to the nearest face. The direction the surface faces doesn't matter.
-
Out Of Surface Particles move away from the closest face.
Tip: You can use this option to confine particles to the interior of an object. Position the emitter inside the object, designate the object as the Surface Geometry, choose Control Speed Continuously, and choose Out Of Surface. Each time a particle comes close to a surface, it turns to travel directly away from the surface. Control the particles' travel range with the Speed setting, but keep in mind that particles moving very fast might “escape” their container. If this happens, increase the Accel Limit setting; this lets the particles turn more quickly.
-
Parallel To Surface Each particle travels parallel to the nearest face.
To make particles orbit an object, use this with Control Speed Continuously, and set appropriate Continuous Speed Control values (see the following section).
- Divergence
- When on, spreads out the particle stream. Use the numeric setting to define the extent of the divergence. Range=0 to 180. Default=0. The value can be animated.
This option is unavailable if Control Speed Continuously is chosen.
Tip: For a fountain-like spray, set Position
Location to Pivot, set Direction to Along Icon Arrow, set Divergence to the desired angle, and rotate the icon so its arrow points upward.
Continuous Speed Control group
When you choose the Control Speed Continuously option, these controls become available. Basically, these controls let the particles move about within the region of the Surface Geometry object rather than in a straight line away from the emitter.
- Accel Limit
- Sets the maximum acceleration. The higher this value, the more quickly particles can turn and change speed.
Tip: Use a lower Accel Limit value for smooth motion, and a higher value when greater accuracy is needed, such as when the particles should hit a small target. You can animate this setting (use Sync By
Event Duration) to specify different appropriate values, depending on the required results.
- Unlimited Range
- When on, the surface controls speed and direction of particles at any distance. When off, particles must be within a specified range. Default=on.
- Range
- The maximum distance, in system units, between the particles and controlling surface. The Surface Geometry will not control particles beyond this distance.
- Falloff Zone
- The distance, in system units, beyond the Range value within which the Surface Geometry exerts partial control over particles. The degree of control diminishes from 100% at the Range distance to 0% at the Range+Falloff Zone distance.
Animation Offset Keying group
Choose the time frame for applying animated parameters. For an explanation, see Animation Offset Keying group.
-
Absolute Time Any keys set for parameters are applied at the actual frames for which they're set.
-
Particle Age Any keys set for parameters are applied at the corresponding frames of each particle's existence.
-
Event Duration Any keys set for parameters are applied to each particle starting when it first enters the event.
Uniqueness group
The Uniqueness setting enables randomization of speed variation, and randomization of direction with the Random 3D and Random Horizontal options.
- Seed
- Specifies a randomization value.
- New
- Calculates a new seed using a randomization formula.