Bookshelf Contents Previous Next Glossary Index Search

Particle system keywords

The following components are shared by both Light and Shader data types, with the exception of psys_bend_u and psys_bend_v, which are used only in Shaders.

psys_bend_u

Syntax:

psys_bend_u = <scalar>

Range:

-infinity to infinity

Default:

0.0

Purpose:

To bend the emission of particles along the U direction.

Comment:

Particles are usually emitted along the normal to the surface. U bend specifies how much the emission can bend in the U direction. A value of -1 means no bend, a value of 1 means the particles are emitted tangent to the surface in the U direction.

Example:

psys_bend_u = 0.0

psys_bend_v

Syntax:

psys_bend_v = <scalar>

Range:

-infinity to infinity

Default:

0.0

Purpose:

To bend the emission of particles along the V direction.

Comment:

Particles are usually emitted along the normal to the surface. V bend specifies how much the emission can bend in the V direction. A value of -1 means no bend, a value of 1 means the particles are emitted tangent to the surface in the V direction.

Example:

psys_bend_v = 0.0

psys_blob_lighting

Syntax:

psys_blob_lighting = CONSTANT_LIGHTING | ILLUMINATED | SELF_SHADOWING

Range:

CONSTANT_LIGHTING

ILLUMINATED

SELF_SHADOWING

Default:

CONSTANT_LIGHTING

Purpose:

A blob can have 3 kinds of lighting: CONSTANT, ILLUMINATED, or SELF SHADOWING.

CONSTANT

that there is no contribution from any lights; only the blob color is used.

ILLUMINATED

the lighting is calculated once per blob, and the entire blob is illuminated to that extent. If the blobs are discrete, sudden changes in illumination may be noticeable.

SELF SHADOWING

the lighting ends up being on a per-pixel basis, and is correspondingly slower than the other methods.

Example:

psys_blob_lighting = CONSTANT_LIGHTING

psys_blob_map

Syntax:

psys_blob_map = Texture(rgb)

Range:

Texture(color)

Default:

(0,0,0)

Purpose:

If the Render Type is BLOBBY_SURFACE, the color can be texture mapped. A surface texture will be mapped projecting from the eye point, so that it will appear to follow the blob. A solid texture will be applied according to the solid texture placement, so that the blobs will appear to move through the texture.

Example:

psys_blob_map = (0,0,0)

psys_blob_noise

Syntax:

psys_blob_noise = <scalar>

Range:

0 to infinity

Default:

0.0

Purpose:

A value greater than 0 makes the blobs look less regular. This helps hide the fact that the underlying system may have a small number of large blobs.

Example:

psys_blob_noise = 0.0

psys_blob_noise_frequency

Syntax:

psys_blob_noise_frequency = <scalar>

Range:

-infinity to infinity

Default:

0.1

Purpose:

The noise frequency should be chosen according to the size of the particles.

Example:

psys_blob_noise_frequency = 0.1

psys_blob_threshold

Syntax:

psys_blob_threshold = <scalar>

Range:

0 to infinity

Default:

0.2

Purpose:

This value is the density at which we threshold the surface for Surf Shading or BLOBBY_SURFACE rendering.

Example:

psys_blob_threshold = 0.2

psys_blur_quality

Syntax:

psys_blur_quality = <scalar>

Range:

0 to infinity

Default:

0.5

Purpose:

Blobs are generated along the path of the particle to get motion blur. If the blur quality is high, the particles are small, and they travel a long way in one frame, then a lot of blobs will be created for each frame. In which case, rendering will be slow and a lot of memory will be used up.

Example:

psys_blur_quality = 0.5

psys_branch_angle

Syntax:

psys_branch_angle = <scalar>

Range:

-infinity to infinity

Default:

45

Purpose:

After splitting, child particles will move at this angle from the particles original path (for collisions, this is the path AFTER the collision).

Comments:

Caution: large branch angles may result in the particles penetrating the object that they were supposed to be colliding with.

Example:

psys_branch_angle = 45

psys_buoyancy

Syntax:

psys_buoyancy = <scalar>

Range:

-infinity to infinity

Default:

0.0

Purpose:

This value gives the particle additional velocity in the direction of gravity (a positive is high, and a negative value is low).

Comment:

This parameter is only applicable to GAS particles.

Example:

psys_buoyancy = 0.0

psys_collisions

Syntax:

psys_collisions = <boolean>

Range:

Boolean( ON/OFF )

Default:

OFF

Purpose:

If this value is OFF, particles will not collide with any objects. If set to ON, particles will collide with any collision walls that have been turned ON (see Floor, ceiling, left, right, front, back, in the ENVIRONMENT Section for more information), and any simulation objects that have particle collisions set to ON (see Anim Tools Run dynamics).

Example:

psys_collisions = OFF

psys_color

Syntax:

psys_color = <triple>

Range:

Textureable rgb

Default:

(255,255,255)

Purpose:

The color of a particle can be set to a fixed value, or texture mapped over its lifetime. If it is mapped, then the V values of the map are mapped onto the particles' lifetime (a V-ramp is a good choice for a texture here).

Example:

psys_color = (255,255,255)

psys_curl

Syntax:

psys_curl = <scalar>

Range:

0 to infinity

Default:

0.0

Purpose:

This is the amount particles twist about their direction of motion. This is especially useful with hair.

Comments:

As the twist approaches 1, the hair or trajectory will become more tightly coiled, until at a value of 1 it will go around in a loop. To create more curls in hair, the psys_hair_segments value must be increased.

Example:

psys_curl = 0.0

psys_density

Syntax:

psys_density = <scalar>

Range:

-infinity to infinity

Default:

1.0

Purpose:

This is the visual density of the particles. Less dense particles will appear more transparent, more dense ones will be more opaque. If density is 1, the transparency of the object is used, if density is 0, the particles are completely transparent). Self shadowing will be more visible in denser particles.

Example:

psys_density = 1.0

psys_elasticity

Syntax:

psys_elasticity = <scalar>

Range:

-infinity to infinity

Default:

0.5

Purpose:

The elasticity of an object determines the amount of damping of speed on collision with another object. A value of 0 means all speed is lost, a value of 1 means the object bounces back with the same speed.

Example:

psys_elasticity = 0.5

psys_emission

Syntax:

psys_emission = <boolean>

Range:

Boolean( ON/OFF )

Default:

OFF

Purpose:

If Emit Particles is set to ON, particle parameters will be used.

Example:

psys_emission = OFF

psys_end_frame

Syntax:

psys_end_frame = <scalar>

Range

-infinity to infinity

Default:

10000

Purpose:

To indicate the last frame of animation for particle emission.

Example:

psys_end_frame = 10000

psys_filename

Syntax:

psys_filename = <filename>

Purpose:

This is the full path prefix for the particle file name. This field is set on the shader when a simulation is run with Save Particles ON (see Anim Tools Run dynamics). The particles are saved in particle description files, one per shader or light particle emitter, per frame.

Comments:

For example, if the particle emitting shader is called Shader#1, and you type "test" when prompted for a Save Particles file location, then the particle files will be stored in./user_data/<project>/sdl/test.psys/Shader#1.n, where n is the frame number for that particle file. Alternately, you can type your own path names for the directory where particle files are stored.

Example:

psys_filename = Shader#1

psys_friction

Syntax:

psys_friction = <scalar>

Range

0 to infinity

Default:

0.5

Purpose:

The coefficient of friction defines how much an object gets slowed down when in contact with another object.

Example:

psys_friction = 0.5

psys_glow_intensity

Syntax:

psys_glow_intensity = <scalar>

Range:

0 to infinity

Default:

0

Purpose:

Particles can emit glow. See the section glow_intensity and following for information on glow parameters.

Example:

psys_glow_intensity = 0

psys_hair_length_max

Syntax:

psys_hair_length_max = <scalar>

Range:

0 to infinity

Default:

2.0

Purpose:

Used to determine the distance a particle can travel in a frame. Hair length is randomized between the psys_hair_length_max and psys_hair_length_min values. These values, combined with the psys_hair_segments value, determine the psys_lifespan_min psys_lifespan_max for the particles generated in the Generation window.

Example:

psys_hair_length_max = 2.0

psys_hair_length_min

Syntax:

psys_hair_length_min = <scalar>

Range:

0 to infinity

Default:

1.0

Purpose:

Used to determine the distance a particle can travel in a frame. Hair length is randomized between the psys_hair_length_max and psys_hair_length_min values. These values, combined with the psys_hair_segments value, determine the psys_lifespan_min and psys_lifespan_max for the particles generated in the Generation window.

Example:

psys_hair_length_min = 1.0

psys_hair_stiffness

Syntax:

psys_hair_stiffness = <scalar>

Range:

0 to infinity

Default:

0.1

Purpose:

As the stiffness of a hair approaches 1 it responds less and less to forces. Note, however, that time lag effects are not affected by this parameter. To totally remove the time lag effect, make the steps/frame for the simulation greater than the value for psys_hair_stiffness (and increase the psys_particles_per_sec).

Example:

psys_hair_stiffness = 0.1

psys_hair_segments

Syntax:

psys_hair_segments = <scalar>

Range:

1 to infinity

Default:

10.0

Purpose:

This value is used to determine the number of line segments along the longest strands of hair. If the emitter is in motion, the oldest particles will lag behind where the lag time (in frames) equals the value set in Hair Segments and the Start and End Frame values set in the Particle Emission window. This lag can create a nice effect (like hair in water), but if it is too large, either reduce the Hair Segments value, or increase the simulation's Start and End Frame values.

Comments:

Increasing the Start and End Frame values will require that you increase the number of Particles/Second in the Generation window in order to generate the same number of hairs.

Example:

psys_hair_segments = 10.0

psys_hit_method

Syntax:

psys_hit_method = BOUNCE | DIE | SPLIT

Range:

As above

Default:

BOUNCE

Purpose:

If particles have collision turned on, they can do one of three things when they collide with an object.

BOUNCE

means the particles will bounce off the surface of the object, subject to the elasticity of the particles and the surface.

DIE

means the particles will disappear the frame after they collide.

SPLIT

means the particles will split into several new particles, each of which inherit the parent's age and lifetime. Particles must be moving fast enough (> Split Vel. Min) in order to split, otherwise they will just bounce.

Example:

psys_hit_method = BOUNCE

psys_incandescence

Syntax:

psys_incandescence = texture(triple)

Range:

Textureable rgb

Default:

(0,0,0)

Purpose:

The Incandescence of a particle can be set to a fixed value, or texture mapped over its lifetime. If it is mapped, then the V values of the map are mapped onto the particles' lifetime (a V-ramp is a good choice for a texture here).

Example:

psys_incandescence = (0,0,0)

psys_lifespan_min

Syntax:

psys_lifespan_min = <scalar>

Range:

0 to infinity

Default:

10

Purpose:

This value defines the minimum lifespan of a particle in frames.

Example:

psys_lifespan_min = 10

psys_lifespan_max

Syntax:

psys_lifespan_max = <scalar>

Range:

0 to infinity

Default:

50

Purpose:

This value defines the maximum lifespan of a particle in frames. If min and max are different, then particle lifetimes are uniformly distributed in the range between them.

Example:

psys_lifespan_max = 50

psys_mass

Syntax:

psys_mass = <scalar>

Range:

0 to infinity

Default:

0.1

Purpose:

This value is the mass of an individual particle (in kilograms). It determines how forces affect the particles. The lighter the particle, the more a force will accelerate it.

Example:

psys_mass = 0.1

psys_motion_type

Syntax:

psys_motion_type = GAS | SOLID | HAIR

Range:

GAS

SOLID

HAIR

Default:

GAS

Purpose:

Select HAIR, SOLID or GAS particles. Gaseous particles follow the motion of the air; they are only affected by Turbulence and Wind fields. Solid particles have mass, and are affected by regular forces.

Example:

psys_motion_type = GAS

psys_num_children

Syntax:

psys_num_children = <scalar>

Range:

0 to infinity

Default:

2

Purpose:

This is the number of children that a splitting particle will generate.

Example:

psys_num_children = 2

psys_parent_shading

Syntax:

psys_parent_shading = <boolean>

Range:

Boolean (ON/OFF)

Default:

OFF

Purpose:

If this is ON, the particle gets the color of the point on the surface that it emanated from. For a blob surface, the blobs inherit the parent's color texture map.

Example:

psys_parent_shading = ON

psys_particles_per_sec

Syntax:

psys_particles_per_sec = <scalar>

Range:

0 to infinity, Textureable

Default:

300

Purpose:

This value defines how many particles are emitted from the object per second. This is done in seconds so that the net effect is independent of frame rate.

Comments:

If particle emission is texture mapped, then the actual rate may be lower.

Example:

psys_particles_per_sec = 300

psys_randomization

Syntax:

psys_randomization = <scalar>

Range:

0 to infinity

Default:

0

Purpose:

Randomizes the branch angle by rotating it around the direction of particle travel.

Example:

psys_randomization = 0

psys_render_type

Syntax:

psys_render_type = THIN_GAS | CLOUD | BLOBBY_SURFACE

Range:

THIN_GAS

CLOUD

BLOBBY_SURFACE

Default:

THIN_GAS

Purpose:

A particle can be rendered as THIN GAS, CLOUD or BLOBBY SURFACE.

THIN_GAS

best suited for fairly transparent particle systems. This method is fast, as it uses the average density of the particles along a ray to calculate the particle systems contribution to a pixel.

CLOUD

for denser particle systems, is more accurate (but slower), and in fact must be used if psys_blob_lighting is set to SELF_SHADOWING. This method calculates the contribution of the blobs in sorted order front to back, so that the structure of the individual blobs is more visible.

BLOBBY_SURFACE

renders the implicit surface created by the blobs.

Example:

psys_render_type = THIN_GAS

psys_size

Syntax:

psys_size = <scalar>

Range:

0 to infinity, Textureable

Default:

0.5

Purpose:

The (world space) size of a particle may be set to a fixed value, or texture mapped over its lifetime. If it is mapped, then the V values of the map are mapped onto the particles' lifetime (a V-ramp is a good choice for a texture here). As the size of individual blobs gets larger and overlap increases, rendering time will increase.

Comments:

This size is also used for buoyancy calculations for solid particles, so that a particle that ends up much less dense than the medium may end up rising very rapidly.

Example:

psys_size = 0.5

psys_speed

Syntax:

psys_speed = <scalar>

Range:

-infinity to infinity, Textureable

Default:

5.0

Purpose:

This value defines the average speed of particles being emitted.

Example:

psys_speed = 5.0

psys_speed_decay

Syntax:

psys_speed_decay = <scalar>

Range:

-infinity to infinity

Default:

0.8

Purpose:

This value is a multiplier which determines how fast a particle loses its initial velocity. A value of 0 means the initial velocity is lost immediately, a value of 1 means its initial velocity is retained indefinitely. This value is only applicable to GAS particles.

Example:

psys_speed_decay = 0.8

psys_speed_range

Syntax:

psys_speed_range = <scalar>

Range:

-infinity to infinity

Default:

0.1

Purpose:

This value defines how much the emission speed of the particles can vary. The speed at which a particle is emitted varies in the range (speed - speed range, speed + speed range). If Speed Range is 0, all particles are emitted at the average speed.

Example:

psys_speed_range = 0.1

psys_split_time

Syntax:

psys_split_time = <scalar>

Range:

0 - 1

Default:

0

Purpose:

Particles may split spontaneously (once per particle) as well as on collision. The Split Time is the fraction of their lifetime at which they will split. A value of 0 (particle birth) or 1 (particle death) will not cause any splitting.

Example:

psys_split_time = 0.01

psys_start_frame

Syntax:

psys_start_frame = <scalar>

Range:

-infinity to infinity

Default:

1

Purpose:

Particles are emitted starting at this frame. The start frame can be set earlier than the animation start frame in order to "run up" the particle system. Running up the particle system allows the first frame to show a particle effect in mid motion rather than just starting.

Example:

psys_start_frame = 1

psys_surface_shading

Syntax:

psys_surface_shading = <scalar>

Range:

0 to 1.0

Default:

0.0

Purpose:

This parameter controls the level of shading on the surface of the particle system. It behaves somewhat differently depending on the Motion Type and Render Type selected. If the Render Type is BLOBBY_SURFACE or the Motion Type is HAIR, it controls specular illumination. As the value approaches 1.0 the highlight becomes more intense and focused.

Comments:

For the best results when rendering hair, the Render Type should be CLOUD.

If the Render Type is THIN_GAS or CLOUD and the motion type is anything but HAIR, the Surf Shading controls the amount of diffuse illumination at the surface of the particle mass. The surface of the cloud for this shading is controlled using the psys_blob_threshold parameter. As the value approaches 1.0, the shading of a cloud becomes completely surface shaded, with no volume illumination of the particles.

If this is non-zero, it uses the psys_blob_threshold to create a "virtual surface" which will provide normals to be used in the shading calculation. Increasing the surface shading will give the blobs sharper edges, (for example, clouds have a large surface shading component). A value of 1 means diffuse surface illumination, a value of 0 means blob illumination.

Because normals are provided, the rendering is slower when the Surf Shading value is non-zero.

Example:

psys_surface_shading = 0.5

psys_time_random

Syntax:

psys_time_random = <boolean>

Range:

Boolean( ON/OFF )

Default:

ON

Purpose:

If time random is OFF, particles will be emitted from the same spot on the surface every frame. If set to ON, particles will be emitted from different spots every frame.

Example:

psys_time_random = ON

psys_translucence

Syntax:

psys_translucence = <scalar>

Range:

0 to 1

Default:

0.6

Purpose:

Translucence is the extent to which diffuse light can penetrate the object. The translucence of a particle can be set to a fixed value, or texture mapped over its lifetime. If it is mapped, then the V values of the map are mapped onto the particles' lifetime (a V-ramp is a good choice for a texture here).

Example:

psys_translucence = 0.6

psys_transparency

Syntax:

psys_transparency = <triple>

Range:

Textureable rgb

Default:

(0,0,0)

Purpose:

The transparency of a particle can be set to a fixed value, or texture mapped over its lifetime. If it is mapped, then the V values of the map are mapped onto the particles' lifetime (a V-ramp is a good choice for a texture here).

Comment:

Remember that the net transparency of the object will also depend on its size. Smaller and/or less dense particles will appear more transparent anyway.

Example:

psys_transparency = (0,0,0)

psys_use_particle_file

Syntax:

psys_use_particle_file = <boolean>

Range:

Boolean( ON/OFF )

Default:

OFF

Purpose:

If set to ON, particles will not be generated during the simulation, but will be read from files instead. These files would have been generated by previous simulations or come from external sources.

Comments:

See the File Formats section of the Reference Guide for information on Particle File Formats.

Example:

psys_use_particle_file = OFF



Bookshelf Contents Previous Next Glossary Index Search

[email protected]
Copyright © 1998, Alias|Wavefront, a division of Silicon Graphics Limited. All rights reserved.