Files
AnyImage/docs/internals/operators/perspective-tool.md
nan 08309f719d feat: Implement cutout tool and depth generation features
- Added a new cutout tool for selecting regions in images, allowing users to choose mesh shapes based on selected areas.
- Introduced depth generation capabilities for rasterized images, including normal data extraction.
- Created jobs for generating depth planes and region data, enhancing the AI data generation workflow.
- Developed a selection refinement process for cutout regions, improving accuracy in generated outputs.
- Established a new region module for handling rasterized image regions and their associated AI generation tasks.
- Enhanced node graph builders for asset generation, facilitating smoother integration of new features.
2026-08-30 23:09:13 +08:00

1.8 KiB
Raw Blame History

Perspective Tool

operators/perspective_tool/ 对应独立的 Image Perspective WorkspaceTool。它采集四个图片角点,把透视四边形重采样为指定宽高比的矩形,不使用 Job Server。

对应文件

operators/perspective_tool/
├── __init__.py            # 类型清单与对外导出
└── edit_perspective.py    # 四点交互、预览、Homography 与写回

图片坐标投射、Alpha 裁切和 Empty 写回复用 operators/common/ 的基础能力;四点数据始终称为 Quad,不与 Image Region 或 Image Mask Operator 共享业务状态。

矫正流程

flowchart TD
    Click["任意顺序的四个角点"] --> Quad["规范为凸四边形"]
    Quad --> Preview["生成一次 512 × 512 预览"]
    Preview --> Ratio["鼠标调整目标宽高比"]
    Ratio --> Size["计算受限输出尺寸"]
    Size --> Warp["全分辨率 Homography"]
    Warp --> Crop["按可见 Alpha 紧裁切"]
    Crop --> Write["Pack 并写回当前 Empty"]

四点输入顺序不决定输出方向;规范化阶段依据源图 X/Y 方向得到不交错的凸四边形。第四点之后只创建一次低分辨率纹理,交互阶段改变 UI 宽高比,确认时才执行全分辨率重采样。

Homography 使用预乘 Alpha 插值,避免透明边缘混入黑色。输出最长边限制为 8192 px,总像素限制为 16,777,216,并按 256 行分块计算,控制中间数组大小。

Perspective 是 deform 工具,不提供 Refine 或反选。它通过公共 image_pixels() 读取供预览与最终 Warp 共用的源像素,并与 Image Mask 共用像素结果创建和 Image Empty 替换入口。结果比例可能不同于原四边形的轴对齐范围,因此 Empty 写回保持中心和覆盖尺度近似一致,而不是假设当前 3D View 相机等于图片拍摄相机。