User Tools

Site Tools


reference_guide:thinkingparticles_nodes:operator_nodes:fragmenter:fragmentoperator

Fragment Operator

  image152.gif

The Fragment Operator is used whenever you want to break up an object into fragments, essentially causing destruction or disintegration effects. A selected object is converted into a particle emitter with each vertex on the object acting as a source for fragment emission. Every particle emitter acts as a sensor, each with its own Threshold value, and when the sensor contains a higher value than the set Threshold value, it is turned into a fragment.

When objects explode into fragments, particles are used to control the dynamic behavior of the chunks flying around. Each object fragment (a set of polygons) is represented by one particle. Everything this particle does, is also applied to the fragment. Spin, movement and collision detection are all handled by the underlying particle information and not the actual set of polygons that represent the object fragment unless otherwise told to by the Shape Collision Operator.

To see the fragments in the view ports, choose Show Mesh in the Master DynamicSet.

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 that is to be given a standard shape. The data stream MUST be connected and will be highlighted yellow, if it is not.

Life Span - (Life Span) This input data stream is used to override the Life Span spinner value in the Fragment rollout.

Speed - (Speed) This input data stream is used to override the Speed spinner value in the Fragment rollout.

Direction - (Direction) This input data stream is used to send a directional vector to the fragments to give them a direction to travel.

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

Mass - (Mass) This input data stream is used to give a physical mass to the particle fragments. This can be useful when you are breaking an object since you can tell the larger fragments to be heavier than the smaller ones.

Alignment - (Alignment) This input data stream is used to align the fragments with a selected Node's alignment (fed in through a Node Helper or Particle Data Helper).

Threshold - (Scalar) This input data stream is used to override the Threshold spinner value in the Fragment rollout.

Variation - (Scalar) This input data stream is used to override the Variation [%] spinner value that is used to add some randomness to the fragmentation order within the Fragment rollout.

Fragmentation Mask - (Texture Map) This input data stream is for future usage (i.e. - it is not currently active) and will be used to override the texture map mask that controls the fragmentation order within the Fragment rollout.

Fragmentation Mask ON - (Bool) This input data stream is used to override the on/off state of the Fragmentation Mask toggle within the Fragment rollout. A True condition will turn the mask on, while a False condition will turn the mask off.

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 fragmentation order within the Fragment rollout.

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

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

  • 0 = Single Faces
  • 1 = Smooth and Distance
  • 2 = Count

  None Fragments - (Bool) This input data stream is used to override the No Fragments check box state within the Fragment rollout.

Smoothing Angle - (Angle) This input data stream is used to override the Smoothing Angle spinner value in the Fragment rollout.

Smoothing Radius - (Scalar) This input data stream is used to override the Radius [%] spinner value in the Fragment rollout.

Count - (Integer) This input data stream is used to override the Count spinner value in the Fragment rollout.

From To - (Integer) This input data stream takes an integer value that represents the fragmentation order the particles will use. Valid input values are 0 through 5, where:

  • 0 = Bottom → Top
  • 1 = Top → Bottom
  • 2 = Back → Front
  • 3 = Front → Back
  • 4 = Left → Right
  • 5 = Right → Left

Life Variation - (Scalar) This input data stream is used to override the Variation [%] spinner value that is used to add some randomness to the Life Span within the Fragment rollout.

Speed Variation - (Scalar) This input data stream is used to override the Variation [%] spinner value that is used to add some randomness to the fragment speed within the Fragment rollout.

Motion Inheritance - (Scalar) This input data stream is used to override the M. Inheritan [%] spinner value within the Fragment rollout.

Track Motion Inheritance - (Bool) This input data stream is used to override the Track Motion Inheritance check box state within the Fragment rollout.

Thickness - (Scalar) This input data stream is used to override the Thickness [%] spinner for the fragments within the Fragment rollout.

Thickness Size Dependence - (Bool) This input data stream is used to override the Thickness Size Dependence check box state within the Fragment rollout.

Thickness Exclude Closed Fragments - (Bool) This input data stream is used to override the Exclude Closed Fragments check box state within the Fragment rollout.

Outside ID - (Integer) This input data stream is used to override the Outside ID spinner for the fragments within the Fragment rollout.

Edges ID - (Integer) This input data stream is used to override the Edge ID spinner for the fragments within the Fragment rollout.

Backside ID - (Integer) This input data stream is used to override the Backside ID spinner for the fragments within the Fragment rollout.

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

Remaining Type - (Integer) This input data stream takes an integer value that represents how the Fragment Operator will manage the Remaining Mesh. Valid input values are 0 through 2, where:

  • 0 = None
  • 1 = Hollow
  • 2 = Solid

  RThickness - (Scalar) This input data stream is used to override the Thickness [%] spinner for the remaining mesh within the Fragment rollout.

ROutside ID - (Integer) This input data stream is used to override the Outside ID spinner for the remaining mesh within the Fragment rollout.

REdges ID - (Integer) This input data stream is used to override the Edge ID spinner for the remaining mesh within the Fragment rollout.

RBackside ID - (Integer) This input data stream is used to override the Inside ID spinner for the remaining mesh within the Fragment rollout.

All Fragged Particles Die - (Bool) This input data stream is used to override the All Faces Fragged then Die check box state within the Fragment rollout.

TS On - (Bool) This input data stream is used to override the Tessellation on/off toggle switch within the Tessellate rollout. A True condition will turn the mask on, while a False condition will turn the mask off.

TS Face Type - (Integer) This input data stream takes an integer value that represents to what kind of geometry the tessellation algorithm will be applied in order to subdivide the emitter. Valid input values are 0 and 1, where:

  • 0 = Triangles
  • 1 = Quads

  TS Type - (Integer) This input data stream takes an integer value that represents the tessellation algorithm to be used to subdivide the emitter. Valid input values are 0 and 1, where:

  • 0 = Edge
  • 1 = Face-Center

  TS Tension - (Scalar) This input data stream is used to override the Tension spinner within the Tessellate rollout.

TS Iteration - (Integer) This input data stream takes an integer value that represents the tessellation iterations to be used to subdivide the emitter. Valid input values are 0 and 3, where:

  • 0 = 1 iteration
  • 1 = 2 iterations
  • 2 = 3 iterations
  • 3 = 4 iterations

  TS Update Options - (Integer) This input data stream takes an integer value that represents how the tessellation will be handled. Valid input values are 0 and 1, where:

  • 0 = Always
  • 1 = When Rendering

Break Visible Edges Only - (Bool) when this input is active, the fragment node will break the mesh at visible edges, only.

Random Seed - (Integer) inputs a random seed number that should be used as a start value for all random functions within this Node.

Crack Spread - (Scalar) defines the maximum radius of the area to distribute cracks of a pre-broken mesh over its surface. Within this radius the cracks will be expanding in a linear manner, unless the Spread Gradient will be modified from its default value.

Spread Gradient - (Alpha Gradient) controls the amount of “pre-tension” or “pre-loaded” explosive power of an object. Moving the black color from its default first position (left hand side) towards the right hand position will add explosive power to the remaining mesh parts. Doing so will make the “cracks” expand beyond the radius by adding the radius value to each new added fragmented piece.

Spread Time - (Frame) specifies the time it takes to fully brake the object until the specified radius is reached.

Segments - sets the amount of segments to create (subdivisions of the mesh)

RSegments - sets the amount of segments to create for the remaining mesh (subdivisions of the mesh)

Operator Outputs 

Born Particle - (Particle) This output data stream sends particle data for newly created particle fragments 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.

Fragment Level - (Scalar) This output data stream represents the percentage of the object hasn't been converted into fragments. So the value it projects before the selected node fragments is 1.0 (meaning the object is intact), and then as portions break off, the value decreases toward 0.0.

Rollout Menu

image151.gif

Group - Before you create any fragments, 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 particle fragments.

Threshold - Change this spinner's value, or better, animate this value to break off fragments based on their gray scale value when it becomes greater than the Threshold spinner's value. As shown below, the sphere being used as a fragment generator has a checker map applied to it. As the Threshold spinner is animated, the fragments within the white area break off first, and are followed by the black areas when the Threshold spinner value reaches 0.0.

Variation [%] - This spinner adds some randomness to the fragmentation order. Usually the object breaks apart based on the threshold values stored at the vertices of the emitter. This spinner changes this stored values randomly and this can create a more realistic, chaotic look.

By default all of the emitter vertices receive a fragmentation Threshold value of 1.0 and this is altered by the map or gradient applied.

This is one way to control the fragmentation - there is another that uses lighting to help determine fragmentation. You can also control the emitter’s threshold value by illuminating the object's surface with a standard 3ds Max light. When the object’s surface illumination (the particle emitter) gets to a certain Threshold value, the emitter becomes an object fragment. This makes it easy to create object fragments in only those areas that are brightly lit - like by a laser blast. That is what the next section of tools handles.

Activation Mask - The Fragment Operator is able to use any map or material to control the object fragmentation in detail. Like other particle effects in thinkingParticles, the Fragment Operator analyzes the gray scale values of the map assigned to this mask. A pure white color will assign a value of 1.0 to nearby particle emitter vertices and a black color will assign a value 0.0 to nearby particle emitter vertices. All values in between will be assigned a gray scale value relative to their brightness. Although RGB images will work for this effect, it is recommended that you use only gray scale images to control the object fragments.

The gradient above the Mask Map selector controls the fragmentation order when no mask is used. If an image map or procedural material is applied, the gradient is used as a placeholder for the values in the map or material. As an example, imagine a checker bitmap. Where the checker pattern is white, those areas of the object will fragment as soon as you animate the Threshold spinner value down, while the black areas of the checker pattern will remain until the Threshold value is set to 0.0. Any gray scale values in between will break off when their relative values exceed that of the Threshold spinner.

You MUST animate the Threshold spinner's value from 1.0 down to 0.0 to make an object break apart. This will break parts of the object away where the particle emitter vertices contain higher values than the actual Threshold value. If you do not animate the Threshold value, a static fragmented situation will be created.

Activate Light - activate this check box when you want the Fragment Operator to control the fragmentation algorithms with standard 3ds Max lights. The Threshold value sets the amount of illumination that is needed to create object fragments. A Threshold value of 1.0 creates object fragments only when there is a really bright spot on the objects surface

PICK - To add a light to the list box and use it to determine emitter fragmentation, click on this button, then click on the light sources within your 3ds Max view ports. You can also use the H-key to bring up the Select By Name dialog to choose lights in your scene.

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

Helper Distance - check this option tu use helper particles or objects to activate fragments

Threshold - sets a minimum distance the object needs to be to start a fragmentation. When particles are used; this value will be multiplied with the particle size to allow for a even deeper control of the effect.

Group - instead of picking individual objects; particles can be sued to activate fragments as well.

PICK - to add an object to the list box and use it to determine emitter fragmentation, click on this button, then click on the objects within your 3ds Max viewport.

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

Crack Spreading - sets the maximum radius of the area to distribute cracks of a pre-broken mesh over its surface. Within this radius the cracks will be expanding in a linear manner, unless the Spread Gradient will be modified from its default value.

Spread Gradient - controls the amount of “pre-tension” or “pre-loaded” explosive power of an object. Moving the black color from its default first position (left hand side) towards the right hand position will add explosive power to the remaining mesh parts. Doing so will make the “cracks” expand beyond the radius by adding the radius value to each new added fragmented piece.

Spread Time - specifies the time it takes to fully brake the object until the specified radius is reached.

Source Rollout Menu

No Fragments - Activate this check box to enter non-fragment mode. Fragments aren't actually created, however this option can be a lifesaver when you want to see the order in which your object activates its fragments. This can also be a tremendous time saver for compositing tasks.

Break Visible Edges Only - when checked, visible edges will be broken into fragments, only.

Single Faces - Choose this option to use all triangles as independent object fragments. This option is useful when you want to simulate dust or very small debris. The other two options - Smooth and Distance and Count allows you to control the amount and size of the object fragments.

Smooth and Distance - When Smooth and Distance is chosen, two additional parameters are also enabled (Smoothing Angle and Radius [%]). All fragments with the same surface smoothing angle (set in the Smoothing spinner) will Use the size (radius) as set in the Radius [%] parameter.

Smoothing Angle - This spinner controls the size of the fragments when Smooth and Distance is checked. All fragments with the same surface smoothing angle will then use the size (radius) as set in the Radius [%] parameter to create fragments.

Radius [%] - This spinner sets the radius to be used for controlling fragments when Smooth and Distance is checked. Radius [%] is measured as a percentage of the object’s bounding box size, so a larger percentage will result in bigger fragment chunks.

Count - When this option is selected, the Count spinner beneath the From To drop down list is activated. As a result, you can set a specific number of fragments to be created.

Count - This spinner's value controls the minimum number of fragments that should be created. However, you should be aware that this parameter also performs additional object tessellation in cases where the mesh isn't detailed enough to create the number of chunks. In these cases, the mesh will be adaptively subdivided to accommodate the Count value.

Random Seed - sets a random seed for the Fragment node, so that each Fragment node behaves differently when using variations.

Sorting 

From To - This drop down list lets you choose how the fragmentation process should start and evolve. The reference for up/down and left/right references the local object axis.

Lifespan/Speed Rollout Menu 

Life Span - This spinner sets the particle life for each fragment. All fragments get the same life time when they are born.

Variation [%] - This spinner adds some random variation to the Life Span of each fragment created by this operator. The Variation [%] value is a percentage value that is added/subtracted to the original Life Span value. So if the Life Span is set to 2 seconds and the Variation [%] spinner is set to 50%, the resulting particle fragments have a maximum age of between 1 and 3 seconds.

Speed - The particle speed setting of the Fragment operator sets the particle velocity for each fragment. All fragments inherit the same speed value when they are born.

Variation [%] - This spinner adds some random variation to the Speed value for each fragment created by this operator. The Variation [%] value is a percentage value that is added/subtracted to the original Speed value. So if the Speed is set to 10 and the Variation [%] spinner is set to 50%, then the resulting particle fragments will have a maximum speed of between 5 and 15.

M Inheritan [%] - When the particle emitter is in motion before disassembling, this spinner tells the fragments how much of the original object motion they should inherit as they begin to break off. As this spinner represents a percentage, a value of 100% tells the particles that they should inherit 100% of the motion of the object's trajectory as it breaks off, while smaller values cause the fragments to only inherit a portion of the original motion. This can be useful when doing effects like meteors where you want the chunks to continue to trail behind as they break off.

Track Motion Inheritance - When this check box is active, it lets you force the particles to receive the motion inheritance information all the time. Imagine a spinning object; to make the particles follow the spinning motion you would turn this option on.

Fragment Shape Rollout Menu

 

Thickness [%] - This spinner sets the thickness of the fragmented geometry. At a value of 0.0, the fragments are single-sided with no thickness. When greater than zero, the fragments are extruded inward at fragmentation-time by the amount specified to produce a solid appearance. When using thickness in your fragments, the inner and outer surfaces of the fragments use identical smoothing; and this smoothing is picked up from the object-based emitter. Worth noting is that the edges of the fragments are not smoothed.

Be aware that using this spinner can double or quadruple the number of faces.

Thickness Size Dependen - Activate this check box when you want some thickness variation in the fragments. Larger chunks will get the full Thickness [%] while smaller fragments will get less thickness.

Segments - sets the amount of segments to create (subdivisions of the mesh)

Exclude Closed Fragments - Activate this check box when you want to avoid applying thickness to fragments that already have thickness.

Outside ID - This spinner lets you assign a Material ID that should be used on the outside faces of the fragments. In order to do this, be sure to assign a Multi/Sub-Object material to the selected emitter.

Edge ID - This spinner lets you assign a Material ID that should be used on the newly created edge faces of the fragments. In order to do this, be sure to assign a Multi/Sub-Object material to the selected emitter.

Backside ID - This spinner lets you assign a Material ID that should be used on the newly created inner faces of the fragments. In order to do this, be sure to assign a Multi/Sub-Object material to the selected emitter.

Alignment Correction - No one knows how the particle fragments may be rotated relative to one another through any other operator in thinkingParticles. To ensure that the fragments are aligned along their original surface at birth, activate this check box.

Remaining Shape Rollout Menu

The Fragment Operator is unique when it gets into creating particle fragments. In contrast to other standard 3ds Max particle systems, Fragment can also handle the remaining mesh of the fragmented object. The remaining mesh refers to the geometry that still appears as the fragments break off. The options are None, Hollow and Solid.

None: When this option is selected, the Fragment Operator will not have a remaining mesh. As such, the entire object will disappear, and only as the emitter's vertices exceed the Threshold spinner value, they appear as chunks. This might look odd, but in combination with the No Fragments option you may use this for perfect compositing.

Hollow: When this option is selected, you will be left with a hollow remaining mesh. At the beginning of the fragmentation, the object appears solid, and then pieces begin to break off. The result is that this effect looks like the object is exploding into little pieces over time .

Solid: When this option is selected, the remaining mesh will continue to be a complete solid object. This option is useful when you want to get an effect that looks like as the fragments are peeled off or blown off. With clever use of different Material IDs you can also create an effect of breaking a hull or battle damage to a surface where debris flies off and yet you still have another raw surface beneath.

Thickness [%] - This spinner sets the thickness of the remaining mesh. Values greater than 0.0 produce a remaining mesh surface that is incrementally smaller than the original emitter surface (to enhance the peeling effect when Solid is chosen for the Remaining Mesh).

Segments - sets the amount of segments to create (subdivisions of the mesh)

Outside ID - This spinner lets you assign a Material ID that should be used on the outside faces of the remaining mesh. In order to do this, be sure to assign a Multi/Sub-Object material to the selected emitter.

Edge ID - This spinner lets you assign a Material ID that should be used on the newly created edge faces of the remaining mesh. Understand that the only way to see this material is when you choose Hollow as the remaining mesh algorithm. In order to do this, be sure to assign a Multi/Sub-Object material to the selected emitter.

Inside ID - This spinner lets you assign a Material ID that should be used on the newly created inner faces of the remaining mesh. Understand that the only way to see this material is when you choose Hollow as the remaining mesh algorithm. In order to do this, be sure to assign a Multi/Sub-Object material to the selected emitter.

All Faces Fragged then Die - Check this option to prevent “re-fragmentation”. Usually, whenever a True condition is sent to the ON input data stream, the fragmentation is started again. In some situations this might not be the look you want to get and so you would activate this check box to prevent this particular effect from starting again.

Tessellate Rollout Menu

ON - If this button is checked, the object is tessellated by a function that works like the Tessellate modifier in 3ds Max. The tessellation is applied to the whole object. Be aware that each iteration doubles the number of triangles.

Operate On - These two options specify whether to perform the tessellation on the triangular faces or on polygonal facets (quads created by visible edges).

Triangles: When this option is chosen, the tessellation operates on the selection as a set of triangular faces.

Polygons: When this option is chosen, the tesselation algorithm divides polygonal facets. For example, using the polygonal method on the side of a box results in cross-shaped edges using the Edge method, and X-shaped edges using the Face-Center method.

Edge - This tessellation method divides the face or polygon from its center point outward to the midpoint of each edge. When applied to a triangular face, it also divides unselected faces that share edges with the selected faces.

Face-Center - This tessellation method divides the face from its center point to the vertex corners.

Tension - This spinner determines if the new faces are flat, concave, or convex after Edge tessellation. A positive value rounds faces by pushing vertices outward. A negative value creates concave faces by pulling vertices inward. A setting of 0 keeps the faces flat. While designed for the Face-Center algorithm, it also works with the Edge/Polygon method.

Iterations - These options specifies how many times the tessellation algorithm is applied. For example, setting Iterations to 2 is similar to clicking the Tessellation button twice in an Editable Mesh.

Update Options -Tessellation is an expensive feature that might take some time to finish, especially if you use thousands of fragments within a complex mesh. This group of controls allows you to determine how the mesh is updated.

Always - Select this option to get immediate updates at all times.

When Rendering - This updates (tessellates) the mesh at render time only.

©2024, cebas Visual Technology Inc.

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

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki