- Removed the `always_vertex` parameter from `build_surface_camera` to streamline depth sampling for cutouts and ensure consistent behavior across depth plane and panorama. - Updated depth sampling logic to ensure that all free boundary points, including the original frame of the depth plane, use neighboring face depth instead of their own texture sampling. - Adjusted the depth mask deletion process to operate on faces rather than points, eliminating the need for additional cleanup of dangling edges. - Ensured that the cutout rules are consistently applied across all relevant nodes, removing exceptions and simplifying the logic. - Updated tests to verify the new behavior, ensuring that cutout points follow the depth of adjacent faces and that the original frame maintains its depth sampling. - Refactored geometry handling in multiple depth-related nodes to improve clarity and maintainability.
1.4 KiB
1.4 KiB
1. 切口与补面构建
- 1.1 用「越界顶点折叠到对称面」替换
_delete_positive_faces,删除整体贴平面的面 - 1.2 删除折叠后仍邻接两个面的内部贴平边及其邻接面
- 1.3 把补面边界判据改为「只有一个相邻面且不落在对称面上」
- 1.4 新增 Seam Smooth 按两圈渐变平滑切口环,Fill Smooth 收窄为侧壁内部
- 1.5 保持 FACE、ROTATION、AXIS 属性写入点与最终朝向不变
- 1.6 零厚度与非零厚度输入走同一条折叠路径,不按闭合性分支
2. 节点测试
- 2.1 断言输出不存在越过对称面的顶点、整体贴平面的面或四面共边
- 2.2 断言 Fill Sides 开启时网格封闭、边与顶点流形、镜像成立,并覆盖零厚度与非零厚度输入
- 2.3 断言 Fill Sides 关闭时切口自焊,落在对称面上的边没有开边
- 2.4 断言 Seam Smooth 大于 0 时切口对称轴坐标不漂移,且按两圈渐变影响切口邻域
- 2.5 断言节点组不含布尔节点,接口只新增 Seam Smooth
3. 验证
- 3.1 运行
uv run node-group build --skip-tests并确认资产重载校验通过 - 3.2 更新节点测试后运行
pytest tests/tools/nodes/test_cutout_symmetry.py,全部通过 - 3.3 运行受影响的 Cutout 对象创建测试
- 3.4 记录样例上折叠前越界量分布,作为折面跨度的验证证据