Add cutout shell and volume node assets for depth volume processing

- Implemented `cutout_shell.py` to build front normals and shell positions for balloon geometry.
- Created `cutout_volume.py` to establish smooth center fields and manage balloon surface attributes.
- Introduced `pisa_sr_export.py` for exporting PiSA-SR components with dependencies and asset finalization.
This commit is contained in:
2026-09-08 17:18:03 +08:00
parent 7dec3b7ca4
commit 196b964efc
71 changed files with 3440 additions and 1988 deletions

View File

@@ -70,70 +70,6 @@ LAYOUTS = {
(("Bounding Box.002",), (-550, 140)),
),
),
"O Image Cutout": (
{
"Math": (-170, 580),
"Mesh Island": (-620, 140),
"Face Area": (-620, 340),
"Accumulate Field": (-400, 340),
"Math.001": (50, 310),
"Delete Geometry": (430, 270),
"Group": (1030, 520),
"Group.001": (1030, 300),
"Group.002": (1030, 80),
"Group.003": (1030, -220),
"Menu Switch": (1390, 240),
"Repeat Input": (2170, 0),
"Repeat Output": (5090, 0),
"Vertex Neighbors": (2170, -780),
"Compare": (2390, -780),
"Edge Neighbors": (1940, -1020),
"Compare.001": (2170, -1020),
"Evaluate on Domain": (2390, -1020),
"Boolean Math": (2610, -780),
"Evaluate on Domain.001": (2840, -580),
"Separate Geometry": (3110, -310),
"Position": (3300, 540),
"Blur Attribute": (3520, 540),
"Position.001": (3110, -780),
"Blur Attribute.001": (3340, -780),
"Sample Nearest": (3340, -310),
"Sample Index": (3590, -310),
"Vertex Neighbors.001": (2390, 950),
"Compare.002": (2610, 950),
"Edge Neighbors.001": (2170, 1220),
"Compare.003": (2390, 1220),
"Evaluate on Domain.002": (2610, 1220),
"Boolean Math.001": (2840, 950),
"Switch": (3890, 340),
"Mix": (4130, 340),
"Normal": (3060, 1500),
"Blur Attribute.002": (3280, 1500),
"Vector Math": (3510, 1500),
"Switch.001": (3730, 1500),
"Math.002": (3950, 1360),
"Switch.002": (4370, 410),
"Position.002": (4370, 680),
"Mix.001": (4660, 410),
"Set Position": (4830, 0),
"Transform Geometry": (5450, -340),
"Menu Switch.001": (5740, 0),
"Set Shade Smooth": (5970, 0),
"Group Output": (6190, 0),
},
(
(("Math",), (-400, 580)),
(("Delete Geometry",), (430, 530)),
(("Group",), (810, 520)),
(("Group.001",), (810, 300)),
(("Group.002",), (810, 80)),
(("Group.003",), (810, -220)),
(("Menu Switch",), (1390, 380)),
(("Repeat Input",), (1940, 0)),
(("Math.002",), (3730, 1220)),
(("Menu Switch.001",), (5520, 340)),
),
),
"O Image Depth Plane": (
{
"Group": (0, 0),
@@ -173,163 +109,6 @@ LAYOUTS = {
(("Math.007",), (1000, -980)),
),
),
"O Image Balloon": (
{
"Named Attribute": (-950, 440),
"Attribute Statistic": (-730, 1020),
"Math": (-500, 1020),
"Math.001": (-280, 1020),
"Map Range": (-50, 1020),
"Math.002": (-500, 440),
"Math.003": (-500, 240),
"Math.004": (-280, 240),
"Extrude Mesh": (0, 0),
"Switch": (220, 440),
"Position": (20, 240),
"Separate XYZ": (220, 240),
"Combine XYZ": (420, 340),
"Set Position": (690, 0),
"Separate Geometry": (910, 0),
"Flip Faces": (1140, 0),
"Combine XYZ.001": (910, 530),
"Set Position.001": (1140, 300),
"Combine XYZ.002": (690, -550),
"Set Position.002": (910, -300),
"Flip Faces.001": (1140, -300),
"Join Geometry": (1430, 0),
"Merge by Distance": (1650, 0),
"Math.005": (2100, 310),
"Switch.001": (2100, 0),
"Set Shade Smooth": (2320, 0),
"Group Output": (2550, 0),
},
(
(("Extrude Mesh",), (-220, 0)),
(("Attribute Statistic",), (-950, 1020)),
(("Math.002", "Math.003"), (-730, 240)),
(("Set Position.001",), (910, 300)),
(("Set Position.002",), (690, -300)),
(("Math.005",), (1870, 340)),
(("Switch.001",), (1870, -240)),
),
),
"O Image Surface": (
{
"Math": (-90, 680),
"Math.001": (140, 680),
"Edge Vertices": (-1630, -340),
"Vector Math": (-1410, -340),
"Edge Neighbors": (-1630, -560),
"Math.002": (-1410, -560),
"Attribute Statistic": (-1190, -340),
"Math.003": (-960, -340),
"Math.004": (-740, -340),
"Float to Integer": (-520, -340),
"Integer Math": (-290, -340),
"Integer Math.001": (-70, -340),
"Math.005": (190, -580),
"Math.006": (410, -580),
"Combine XYZ": (1630, 480),
"Set Position": (1860, 260),
"Repeat Input": (410, 0),
"Extrude Mesh": (640, 0),
"Separate Geometry": (860, 0),
"Join Geometry": (1080, -180),
"Repeat Output": (1310, 0),
"Combine XYZ.001": (1410, 270),
"Set Position.001": (1630, 0),
"Flip Faces": (1860, 0),
"Combine XYZ.002": (1410, -470),
"Set Position.002": (1630, -260),
"Flip Faces.001": (1860, -260),
"Join Geometry.001": (2150, 0),
"Merge by Distance": (2370, 0),
"Math.007": (2820, 290),
"Switch": (2820, 0),
"Set Shade Smooth": (3040, 0),
"Group Output": (3270, 0),
},
(
(("Math",), (-310, 680)),
(("Attribute Statistic",), (-1410, -170)),
(("Math.004",), (-960, -610)),
(("Math.005",), (-30, -580)),
(("Repeat Input",), (190, 0)),
(("Set Position",), (1630, 260)),
(("Set Position.002",), (1410, -260)),
(("Math.007",), (2600, 310)),
(("Switch",), (2600, -240)),
),
),
"O Image Depth Balloon": (
{
"Named Attribute": (-1120, 650),
"Attribute Statistic": (-890, 650),
"Math": (-670, 650),
"Math.001": (-450, 650),
"Map Range": (-220, 650),
"Named Attribute.001": (-1790, -440),
"Image Texture": (-1570, -440),
"Separate XYZ": (-1340, -440),
"Math.002": (-1120, -440),
"Vector Math": (-2240, -950),
"Separate XYZ.001": (-2010, -950),
"Position": (-2240, -1260),
"Separate XYZ.002": (-2010, -1260),
"Math.003": (-1790, -950),
"Math.004": (-1790, -1160),
"Math.005": (-1570, -950),
"Math.006": (-1340, -950),
"Math.007": (-1120, -950),
"Math.008": (-890, -440),
"Math.009": (-670, -440),
"Math.010": (-450, -440),
"Math.011": (-670, 310),
"Math.012": (-670, 70),
"Math.013": (-450, 70),
"Mix": (20, 440),
"Math.014": (240, 710),
"Switch": (460, 710),
"Extrude Mesh": (0, 0),
"Switch.001": (460, 310),
"Position.001": (280, 530),
"Separate XYZ.003": (460, 530),
"Combine XYZ": (660, 430),
"Set Position": (930, 0),
"Separate Geometry": (1150, 0),
"Flip Faces": (1600, 0),
"Combine XYZ.001": (1380, 570),
"Set Position.001": (1600, 330),
"Combine XYZ.002": (1150, -570),
"Set Position.002": (1380, -320),
"Flip Faces.001": (1600, -320),
"Join Geometry": (1870, 0),
"Merge by Distance": (2320, 0),
"Position.002": (1600, 1120),
"Separate XYZ.004": (1820, 1120),
"Combine XYZ.003": (2050, 950),
"Set Position.003": (2320, 680),
"Math.015": (2560, -270),
"Switch.002": (2560, 0),
"Set Shade Smooth": (2790, 0),
"Group Output": (3010, 0),
},
(
(("Extrude Mesh",), (-220, 0)),
(("Attribute Statistic",), (-1120, 850)),
(("Image Texture",), (-1790, -270)),
(("Math.002",), (-1340, -750)),
(("Vector Math",), (-2460, -950)),
(("Math.007",), (-1340, -1160)),
(("Math.010",), (-670, -650)),
(("Math.011", "Math.012"), (-890, 310)),
(("Switch",), (240, 920)),
(("Set Position.001",), (1380, 330)),
(("Set Position.002",), (1150, -320)),
(("Set Position.003",), (2100, 610)),
(("Math.015",), (2340, -270)),
),
),
}