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:
@@ -18,7 +18,6 @@ from anyimage.common.material import (
|
||||
)
|
||||
from anyimage.common.node import load_node_group, node_asset_path
|
||||
from anyimage.operators.cutout_tool.shape import (
|
||||
CUTOUT_NODE_GROUP_NAME,
|
||||
CUTOUT_NODE_GROUP_NAMES,
|
||||
)
|
||||
|
||||
@@ -41,9 +40,8 @@ def main():
|
||||
image_layer = load_node_group(IMAGE_MATERIAL_NODE_GROUP_NAME)
|
||||
depth_layer = load_node_group(DEPTH_MATERIAL_NODE_GROUP_NAME)
|
||||
shadeless = load_node_group("O Shadeless")
|
||||
cutout = load_node_group(CUTOUT_NODE_GROUP_NAME)
|
||||
cutout_groups = {
|
||||
name: bpy.data.node_groups[name] for name in CUTOUT_NODE_GROUP_NAMES.values()
|
||||
name: load_node_group(name) for name in set(CUTOUT_NODE_GROUP_NAMES.values())
|
||||
}
|
||||
expected_names = {
|
||||
"O Mesh Plane",
|
||||
@@ -51,7 +49,6 @@ def main():
|
||||
IMAGE_MATERIAL_NODE_GROUP_NAME,
|
||||
DEPTH_MATERIAL_NODE_GROUP_NAME,
|
||||
"O Shadeless",
|
||||
CUTOUT_NODE_GROUP_NAME,
|
||||
*CUTOUT_NODE_GROUP_NAMES.values(),
|
||||
}
|
||||
with bpy.data.libraries.load(str(node_asset_path()), link=False) as (source, _):
|
||||
@@ -115,19 +112,10 @@ def main():
|
||||
assert shadeless.bl_idname == "ShaderNodeTree"
|
||||
assert input_names(shadeless) == ["Color"]
|
||||
|
||||
assert cutout.name == CUTOUT_NODE_GROUP_NAME
|
||||
assert cutout.bl_idname == "GeometryNodeTree"
|
||||
assert cutout.is_modifier
|
||||
assert input_names(cutout)[:4] == [
|
||||
"Geometry",
|
||||
"Shape",
|
||||
"Inward Axis",
|
||||
"Thickness",
|
||||
]
|
||||
assert set(cutout_groups) == set(CUTOUT_NODE_GROUP_NAMES.values())
|
||||
for group in cutout_groups.values():
|
||||
assert group.bl_idname == "GeometryNodeTree"
|
||||
assert not group.is_modifier
|
||||
assert group.is_modifier
|
||||
assert input_names(group)[0] == "Geometry"
|
||||
|
||||
public_groups = {
|
||||
@@ -136,7 +124,7 @@ def main():
|
||||
image_layer,
|
||||
depth_layer,
|
||||
shadeless,
|
||||
cutout,
|
||||
*cutout_groups.values(),
|
||||
}
|
||||
loaded = {*public_groups, *cutout_groups.values()}
|
||||
for group in loaded:
|
||||
|
||||
Reference in New Issue
Block a user