4.4 KiB
cutout-geometry-node-efficiency Specification
Purpose
TBD - created by archiving change optimize-cutout-geometry-nodes. Update Purpose after archive.
Requirements
Requirement: Depth Cutout reuses the projected outline field
O Image Depth Cutout SHALL calculate the POINT/BOOLEAN outline field once on the post-split, pre-projection topology and reuse it for boundary-sensitive consumers on the same topology after projection. It SHALL NOT create separate Edge Neighbors and Vertex Neighbors fields for each consumer in the same topology stage.
Scenario: Same topology boundary consumers share the field
- WHEN Depth Cutout builds volume fields, original boundary sampling, and boundary smoothing after depth projection
- THEN these consumers read the same projected outline field, and the output geometry matches the prior implementation for zero and positive thickness
Scenario: Topology changes still receive a fresh boundary field
- WHEN Split Edges or boundary triangle cleanup changes topology before projection
- THEN the shared outline field is evaluated after that topology change, not reused across the destructive operation
Requirement: Center field derives from shared low-frequency fields
O Image Depth Cutout SHALL compute the smoothed depth and profile fields with the existing 256-iteration interior-weighted blur, and SHALL derive the center field as depth_slow - profile_slow instead of running an additional equivalent blur on depth - profile.
Scenario: Center field is equivalent to the direct blur
- WHEN Depth Cutout evaluates a Balloon input with nonzero
o_balloonand positive Thickness - THEN the derived center values are equal to the prior direct center blur values within floating-point tolerance
Scenario: Uniform surface keeps the same center behavior
- WHEN Depth Cutout evaluates a zero-profile uniform surface
- THEN the derived center field produces the same front and rear positions as the prior implementation
Requirement: Depth Cutout uses triangle-only strip cleanup
O Image Depth Cutout SHALL build only the triangle strip cleanup path because its input is triangulated. It SHALL NOT construct the quad strip cleanup branch used by other depth surfaces.
Scenario: Triangular strips are cleaned without quad nodes
- WHEN Depth Cutout receives a triangulated cutout mesh with thin boundary strips
- THEN strip faces are removed and the remaining geometry matches the prior triangle cleanup result
Scenario: Other depth surfaces keep their existing cleanup path
- WHEN Depth Plane or Depth Panorama evaluates a quad mesh
- THEN their existing quad strip cleanup behavior is unchanged
Requirement: Zero thickness short-circuits shell construction
Both O Image Cutout and O Image Depth Cutout SHALL return the original single-surface geometry when the selected thickness input is below the existing zero threshold, without evaluating shell extrusion or thickness field sampling.
Scenario: Cutout Balloon and Shell remain single surface at zero
- WHEN Mode is Balloon or Shell and the selected Thickness or Shell Thickness is zero
- THEN the output is the original Cutout surface with no shell faces, and no thickness-related node warnings occur
Scenario: Depth Cutout keeps the projected front at zero thickness
- WHEN Depth Cutout has zero selected thickness
- THEN the output is the projected front surface, and thickness-only fields and shell geometry are not evaluated
Requirement: Node graph optimization preserves Cutout geometry
The boundary reuse, center derivation, triangle-only cleanup, and zero-thickness short-circuit SHALL NOT change the finite output geometry, face order, UVMap, or public attributes for supported Cutout and Depth Cutout combinations.
Scenario: Representative mode and thickness matrix is equivalent
- WHEN Cutout and Depth Cutout are evaluated with Balloon/Shell modes, zero and positive thickness, Depth Split zero and positive, and representative input shapes
- THEN vertex positions and face topology are equivalent to the prior implementation within the existing test tolerance
Scenario: High-density mesh remains closed with thickness
- WHEN Depth Cutout uses a mesh with more than 4096 source vertices and positive thickness
- THEN the thickened shell remains finite and closed with no non-manifold boundary