PRISM Engine

The PRISM engine is tyFlow’s new boolean engine, implemented in tyFlow v1.1. More information about PRISM can be found here.


Engine

  • Multi-threading: when enabled, allows fracture operations to be computed across multiple CPU cores (tyFlow PRO only).

  • CUDA acceleration: when enabled, allows fracture operations to be accelerated with a GPU (tyFlow PRO only).

Operation

  • Custom: allows you to define a custom boolean operation by specifying winding number vector (WNV) rules for operands A and B.

  • Intersect: computes the intersection between object A and B as the resulting mesh.

  • Merge: subdivides all intersecting faces of object A and B and generates fully connected meshes as the result.

  • Self-merge: subdivides all intersecting faces of object A and generates fully connected meshes as the result.

  • Self-union: subdivides all intersecting faces of object A, removing interior faces in the process, and generates fully connected meshes as the result.

  • Slice (surface): uses object B as a thin-shell cutting surface for object A, without preserving the volume of object A.

  • Slice (volume): uses object B as a thin-shell cutting surface for object A, while also preserving the volume of object A.

The slice modes are most applicable to mesh fracturing. They can be used to split meshes into multiple parts using thin cutting surfaces of any shape.

  • Subtract (surface): subtracts object B from A, without preserving the volume of object A.

  • Subtract (volume): subtracts object B from A, while also preserving the volume of object A.

  • Union: subdivides all intersecting faces of object A and B, removing interior faces in the process, and generates fully connected meshes as the result.

Input Objects (B)

  • Object list: the list of objects that will act as object(s) B in the boolean operation.

  • Hide after adding: controls whether objects added to the list will be hidden after adding them.

Pre-process

  • World space coordinates: when enabled, the individual transform of object A will be discarded during the boolean operation and the coordinates of its mesh will be converted into world-space coordinates. When the operation is finished, the coordinates will be converted back to their original transform-local space.

Extremely tiny objects that are scaled up in size can generate artifacts during boolean operations, due to their small scale in local-space conflicting with various hard-coded tolerances within the PRISM engine. Enabling “world space coordinates” can alleviate these issues.

  • Split source elements: when enabled, the elements of the source mesh will be split apart and processed in parrallel.

Face classification

  • Raycast: when selected, a raycast-based face classification method will run during the operation, to classify faces as either inside or outside of operands. For closed meshes, this is very accurate. For open meshes, this method can produce artifacts.

  • Fast winding number: when selected, a fast winding number face classification method will run during the operation, to classify faces as either inside or outside of operands. This offers more accuracy than the raycast method when meshes contain holes and open edges (at the cost of some performance). This method does not track nested elements, and is not suitable for situations where meshes are meant to have interior, nested cavities.


  • Process open surfaces: when enabled, open surfaces (which normally cause problems for various boolean operations) will be treated as thin shells, alleviating those problems in the process.

  • Perturb vertices: when enabled, the vertices of operand meshes will be perturbed by a random amount prior to the boolean operation.

  • Preserve normals: when enabled, the explicit normals of input meshes will be preserved in the resulting output mesh.

  • Resolve self-intersections: controls whether self-intersections of input operands will be processed during the intersection-resolution phase of the operation.

Resulting elements

  • Smooth: controls whether smoothing groups will be applied, by angle threshold, to the resulting mesh.

  • Cull by surface area: controls whether elements of the resulting mesh will be culled depending on their size.

  • Min area: elements with a surface area below this threshold will be culled.

  • Min area ratio %: elements with a surface area whose ratio to the largest element’s surface area is below this threshold will be culled.

The “min area ratio %” setting allows you to relativistically control which elements will be culled, based on their surface area. Instead of being culled if they are below an absolute area threshold, they’ll be culled if they’re below a threshold relative to the largest element in the resulting mesh. For example, setting the “min area ratio %” threshold to 1%, means that all elements which have less than 1% of the surface area of the largest element will be culled.

Edge visibility

  • Coplanar tris -> polys: controls whether groups of adjacent, coplanar triangles in the resulting mesh will be converted into polygons (have their shared edges hidden).

  • Print timings: when enabled, timings for various functions in the PRISM core algorithm will be printed to the MAXScript listener when the boolean operation is completed.