- Added a new proposal for boundary smoothing in the weight cutout process, differentiating between Split edges and Outline smoothing requirements. - Introduced a new capability `cutout-boundary-smoothing` to control smoothing strength and default values. - Updated specifications to define the behavior of boundary-specific smoothing strength and default settings. - Created tasks to verify the implementation of boundary behavior and asset updates. - Developed comprehensive tests for depth symmetry and normal scaling to ensure expected behavior and performance. - Introduced new attributes for normal mapping to facilitate persistent face attributes sharing between depth symmetry and image materials. - Built a new node group for O Image Depth Symmetry, integrating the new smoothing capabilities and ensuring compatibility with existing workflows.
50 lines
1.8 KiB
Python
50 lines
1.8 KiB
Python
"""Build, arrange, and save the bundled node library."""
|
|
from pathlib import Path
|
|
|
|
import bpy
|
|
|
|
from .arrangement.arrange import arrange_nodes
|
|
from .groups.image_plane import build_image_plane_group
|
|
from .groups.image_depth_plane import build_image_depth_plane_group
|
|
from .groups.image_relief_plane import build_image_relief_plane_group
|
|
from .groups.image_cutout import build_image_cutout_group
|
|
from .groups.image_depth_cutout import build_image_depth_cutout_group
|
|
from .groups.image_depth_symmetry import build_image_depth_symmetry_group
|
|
from .groups.image_layer import build_image_layer_group
|
|
from .groups.image_depth_layer import build_image_depth_layer_group
|
|
from .groups.shadeless import build_shadeless_group
|
|
from .groups.image_depth_panorama import build_image_depth_panorama_group
|
|
|
|
|
|
OUTPUT_PATH = Path(__file__).resolve().parents[2] / "src/anyimage/assets/O_AnyImage.blend"
|
|
|
|
|
|
def build_node_groups():
|
|
"""Build each asset once in dependency order."""
|
|
image_plane = build_image_plane_group()
|
|
return [
|
|
build_image_depth_panorama_group(),
|
|
image_plane,
|
|
build_image_depth_plane_group(image_plane),
|
|
build_image_relief_plane_group(image_plane),
|
|
build_image_cutout_group(),
|
|
build_image_depth_cutout_group(),
|
|
build_image_depth_symmetry_group(),
|
|
build_image_layer_group(),
|
|
build_image_depth_layer_group(),
|
|
build_shadeless_group(),
|
|
]
|
|
|
|
|
|
def main():
|
|
bpy.ops.wm.read_factory_settings(use_empty=True)
|
|
bpy.context.preferences.filepaths.save_version = 0
|
|
for node_group in build_node_groups():
|
|
arrange_nodes(node_group)
|
|
OUTPUT_PATH.parent.mkdir(parents=True, exist_ok=True)
|
|
bpy.ops.wm.save_as_mainfile(filepath=str(OUTPUT_PATH), check_existing=False)
|
|
|
|
|
|
if __name__ == "__main__":
|
|
main()
|