tySelect Modifier

The tySelect modifier allows you to create procedural selections of mesh sub-objects (vertices, triangles, polygons or elements), using various customizable criteria.

This modifier is meant to replace 3ds Max’s default “Volume Select” modifier, which is out-dated and lacking a lot of important features.


Parameters Rollout

  • Sub-object level: this controls what type of sub-object the tySelect modifier will select.

  • Selection list: this is the list of selectors that will be evaluated from top to bottom.

The tySelect modifier has its own selection list (similar to 3ds Max’s modifier stack) which can be filled with selectors, each of which can have its own selection method and settings. The selection list is evaluated from top to bottom, and its purpose is to keep the tySelect modifier compact within 3ds Max’s modifier stack. So if you need to create a selection with various criteria (adding and subtracting sub-objects based on different selection methods), you’ll only need 1 tySelect modifier in the modifier stack to do it, which keeps the modifier stack tidy in cases where complex selections are generated.

  • Assign to vertex colors: the resulting vertex selection values will be converted into color values and assigned to the mesh’s vertex color map channel.

  • Channel: the channel to assign vertex colors to.

The default vertex color channel is 0, but technically any channel can take vertex color values.

  • Display sub-objects in view: controls whether the selected sub-object type will be displayed in the viewport (vertices, faces, etc).

Additive Selections Rollout

The additive selection parameters allow you to accumulate selections over time. The frames in the defined range will be evaluated and added together in succession, with their selections potentially decaying/fading as time progresses, depending on the temporal effect settings.

  • Additive selections ENABLED/DISABLED: this checkbutton controls whether or not additive selections will be read from the baked data.

Frame Range

  • Start/End: the start and end frame of the additive selection interval.

  • Steps/frame: the number of time steps to sample/evaluate between frames during additive selection calculations.

The more steps per frame, the more accurate the overall selection will be (temporally). Increasing the steps parameter is most useful for increasing accuracy when selections are generated from fast-moving objects.

Temporal Effect

  • Decay: selection values will be decayed at this rate, over time.

  • Age curve: selection values will be interpolated along a curve by their age relative to a total lifespan value.

  • Decay multiplier: the multiplier applied to selection values over time.

  • Lifespan: the maximum lifespan of selection values.


  • Bake additive selections: computes the additive selections over the chosen frame range and stores them in memory.

  • Auto update: additive selections will automatically be computed when changes to the input geometry or tySelect settings are detected.

Profiler Rollout

The profiler rollout shows info related to the total calculation time for each step of the tySelect selection process.

Selector Settings Rollout

  • Selection Method: controls the way in which mesh sub-objects will be selected for the selected selector in the selection list.

  • Coverage (window/crossing): when window coverage is selected, all parts of a sub-object must be selected in order for the sub-object to be selected (for example, all vertices must be selected in order for a face to be selected, and all faces must be selected in order for an element to be selected). When crossing is selected, any parts of a sub-object can be selected in order for the sub-object to be selected.

  • Grow/Shrink: controls how must to grow or shrink a selection with adjacent sub-objects (grow with positive values, shrink with negative values).

Operation

  • Set: sets the sub-object selection to the result of the selector.

  • Add: adds the result of the selector to the current selection.

  • Subtract: subtracts the result of the selector to the current selection.

  • Multiply: multiplies the result of the selector to the current selection.

  • Invert: inverts the result of the selector.

Post-process

  • Exponent: raises resulting soft-selection values to the specified power.

Changing the exponent setting from the default value of 1.0 is an easy way to crunch or inflate the influence amount of individual soft selection values.

  • Clamp: enables value clamping.

Certain operations can produce vertex selection values outside the range of [0-1]. Sometimes this can be intentional, but other times it can be an unintentional consequence of the selector’s operation type. The clamp settings allow you to force resulting vertex selection values to be stay within a certain range.

  • Min: the minimum allowable vertex selection value after the selector’s operation has completed.

  • Max: the maximum allowable vertex selection value after the selector’s operation has completed.

Activation

  • Activation: an animatable parameter controlling the activation state of the selector (1 = on, 0 = off)

Set keyframes on the activation parameter to animate a selector’s activation state over time.

Soft Selection Rollout

Soft selections are only available in vertex sub-object mode, and emanate outwards from fully-selected vertices. Enabling soft selections will override any soft vertex selection values assigned directly by selectors.

  • Use Soft Selection: enables soft-selection value calculations.

  • Linear distance: soft selection values will be computed as the distance from a vertex to the nearest fully-selected vertex, in worldspace.

  • Edge distance: soft selection values will be computed as the distance from a vertex to the nearest fully-selected vertex, along connected surface edges.

When soft-selecting in “edge distance” mode, any vertices that have no direct connection along surface edges to fully-selected vertices will always receive a soft-selection value of 0.

  • Distance: the distance value used to compute soft-selection ratios.

  • Curve: the curve used to interpolate soft-selection ratios along the distance, resulting in the final soft-selection value.


Selection Methods

Deformation

The deformation selector computes selections by comparing the input mesh to a reference mesh at a certain point in time. The greater the distance between mesh vertices, the stronger the selection. For example, it can be used to compute selections for stretched or creased areas of an animated mesh.

Reference
  • Ref frame: the frame at which the reference mesh will be analyzed.

  • Self: the reference mesh will be an internal snapshot of the current mesh evaluated at the reference frame.

  • Mesh: the reference mesh will be the mesh of an external object evaluated at the reference frame.

Deformations can only be computed on meshes with identical topology. If the meshes do not have identical vertex counts, the deformation selection cannot be performed.

Deformation type
  • Vertex Distance: the selection will be computed by comparing distances between vertices of the reference/input meshes.

  • Edge Bend: the selection will be computed by comparing angles between edges of the reference/input meshes.

  • Edge Length: the selection will be computed by comparing differences between the lengths of edges in the reference/input meshes.

  • Threshold: the type-dependent selection threshold. For example, it is used as an angle threshold in “edge bend” mode, and a length threshold in “edge length” mode.

Deformation coordinates
  • Absolute/relative: controls whether the measured differences will be absolute values in the selected spatial coordinates, or values relative to adjacent vertex neighbors.

  • Local/space: controls whether differences will be measured in local (mesh) space coordinates, or world space.

Selection strength

Selection strength values are available in “edge length” mode.

  • Stretch: a multiplier which controls the amount that stretched edges will contribute to the selection.

  • Compress: a multiplier which controls the amount that compressed edges will contribute to the selection.


Edge Count

The edge count selector selects sub-objects based on how many adjacent edges they are connected to.

  • Threshold: a soft-selection will be generated based on the number of adjacent edges compared to a threshold value.

  • Min/Max: elements with an adjacent-edge count within the min/max range will be selected.


Element Triangle Count

The element triangle count selector selects sub-objects based on how many triangles are in the sub-object’s mesh element. A mesh element is a contiguous set of triangles.

  • Min: counts equal to the min value and above will be fully selected.

  • Max: counts equal to the max value and below will be fully selected.

  • Range: counts equal to the min value and above, or equal to the max value and below will be fully selected.

  • Soft vertex selection: elements with counts that didn’t qualify for a full selection will be soft-selected based on the ratio between their count and the count criteria.


Element Size

The element size selector selects sub-objects based on the size of their mesh element. A mesh element is a contiguous set of triangles.

  • Surface Area/Volume: the element size type.

  • Min: sizes equal to the min value and above will be fully selected.

  • Max: sizes equal to the max value and below will be fully selected.

  • Range: sizes equal to the min value and above, or equal to the max value and below will be fully selected.

  • Soft vertex selection: elements with sizes that didn’t qualify for a full selection will be soft-selected based on the ratio between their size and the size criteria.


Face Area/Volume**

The face area selector selects sub-objects based on the area of mesh faces.

  • Min: areas equal to the min value and above will be fully selected.

  • Max: areas equal to the max value and below will be fully selected.

  • Range: areas equal to the min value and above, or equal to the max value and below will be fully selected.

  • Soft vertex selection: faces with areas that didn’t qualify for a full selection will be soft-selected based on the ratio between their area and the area criteria.


Gizmo

The gizmo selector selects sub-objects using a gizmo sub-object. Sub-objects encompassed by the gizmo sub-object will be fully selected.

  • Box/Sphere/Plane: the shape of the gizmo sub-object.
Noise

The noise settings allow you to offset the way in which vertices are selected by the gizmo sub-object.

  • Strength: the strength of the noise.

  • Frequency: the frequency of the noise. Increasing this value will increase selection evolution over time.

  • Scale: the scale of the noise.

  • Roughness: the roughness of the noise.

  • Iterations: the number of iterations to use to calculate the noise.


Material ID

The material ID selector selects sub-objects using face material ID values.

  • IDs: the list of material IDs to match.

Mesh

The mesh selector selects sub-objects using the meshes of external scene objects.

Enable “use soft selection” in the soft selection rollout in order to interpolate mesh proximity values as vertex soft-selection values.

  • Select if inside: vertices inside the input meshes will be fully selected.

  • Accuracy: the accuracy of the inside test. Increase this value for meshes that are self-intersecting or have holes in them.

Noise

The noise settings allow you to offset the way in which vertex positions are measured during the distance/volume tests.

  • Strength: the strength of the noise.

  • Frequency: the frequency of the noise. Increasing this value will evolve the noise pattern over time.

  • Scale: the scale of the noise.

  • Roughness: the roughness of the noise.

  • Iterations: the number of iterations to use to calculate the noise.


Normals

The normals selector selects sub-objects based on the direction of mesh face normals.

  • Gizmo direction: the direction vector of the gizmo sub-object determines which face normals will be selected.

  • Absolute X/Y/Z: the vector defined by the X/Y/Z spinners will determine which face normals will be selected.

  • Towards/Away/Both: controls the manner in which face normals must align to the test vector in order to be selected.

  • Threshold: faces with normals which align to the test vector within this threshold will be selected. The greater the threshold value, the less exact an alignment must be in order for a face to be considered a selection candidate.


Occluded Elements

The occluded elements selector selects sub-objects based on whether or not all vertices of a mesh element are occluded by other parts of the mesh.

This selector makes it easy to select mesh elements that are inside of other mesh elements, or mesh elements whose normals are flipped inside-out. An example usage would be selecting all interior faces/elements of a blobmesh created by a tyMesher.

The occlusion test is performed by casting rays out from every vertex of the mesh. If a vertex doesn’t hit a face, it is deemed un-occluded by the mesh. Increasing the accuracy parameter increases the number of rays cast from each vertex, which increases the probability that a vertex which is not completely occluded by parts of the mesh will have rays which escape without hitting a face.

  • Occlusion %: the minimum percent of vertices within a mesh element that must be occluded by parts of the overall mesh, in order for the element to be selected.

  • Accuracy: the number of rays to cast from each vertex, to test for occlusion.


Open Edges

The open edges selector selects sub-objects based on whether or not they are touching an open edge. An open edge is an edge with only one adjacent face. This selector has no settings.


Particles

The particles selector selects sub-objects using the particles of external particle systems.

  • Absolute radius: sub-objects within an absolute radius to particles will be selected.

  • Radius: the absolute radius value to use.

  • Particle radius: sub-objects within each particle’s radius will be selected.

  • Multiplier: a multiplier to apply to each particle’s radius.

Simulation Groups

  • Simulation groups: controls which particle simulation groups will be imported.

Export Groups

  • Export groups: controls which particle export groups will be imported.

Polygon Vertices

The polygon vertices selector selects a certain number of each polygon’s vertices.

  • Count: the number of vertices in each polygon to select.

  • Variation %: the per-particle percentage of variation to apply.
  • Seed: the seed value which controls the variation.


Random %

The random % selector selects a random percentage of sub-objects.

  • %: the random percentage of sub-objects to select.

  • Seed: the seed value which controls the randomness.


Raycast

The raycast selector selects sub-objects based on whether or not faces are hit with rays emanating from a gizmo sub-object.


Smoothing Groups

The smoothing groups selector selects sub-objects using face smoothing group values.

  • IDs: the list of smoothing group to match.

Stack Selection

The stack selection selector selects sub-objects using existing selections present in the modifier stack.

  • Vertices: existing vertex selections will be used to select sub-objects.

  • Triangles: existing triangle selections will be used to select sub-objects.


Texmap

The texmap selector selects sub-objects using the monochromatic intensity values of a texmap.

  • Texmap: the texmap to sample per-vertex values from.

  • Min: texmap values equal to the min value and above will be fully selected.

  • Max: texmap values equal to the max value and below will be fully selected.

  • Range: texmap values equal to the min value and above, or equal to the max value and below will be fully selected.

  • Absolute: texmap values will be converted directly into selection values.

  • Variation %: the per-particle percentage of variation to apply.
  • Seed: the seed value which controls the variation.

  • Soft vertex selection: vertices with texmap values that didn’t qualify for a full selection will be soft-selected based on the ratio between their texmap value and the texmap value criteria.