From 7e872d176d986a937cd95a66f16aceea53838c6a Mon Sep 17 00:00:00 2001 From: LMW Date: Thu, 20 Nov 2025 15:42:40 +0800 Subject: [PATCH] Added Alpha Association filter node --- .../nodes/alpha_association.mmg | 59 ++++++++++++++++++ .../images/node_filter_alpha_association.png | Bin 0 -> 17849 bytes .../doc/node_filter_alpha_association.rst | 24 +++++++ material_maker/doc/nodes_filter.rst | 1 + material_maker/library/base.json | 9 +++ 5 files changed, 93 insertions(+) create mode 100644 addons/material_maker/nodes/alpha_association.mmg create mode 100644 material_maker/doc/images/node_filter_alpha_association.png create mode 100644 material_maker/doc/node_filter_alpha_association.rst diff --git a/addons/material_maker/nodes/alpha_association.mmg b/addons/material_maker/nodes/alpha_association.mmg new file mode 100644 index 000000000..47f979dc9 --- /dev/null +++ b/addons/material_maker/nodes/alpha_association.mmg @@ -0,0 +1,59 @@ +{ + "generic_size": 1, + "name": "alpha_association", + "node_position": { + "x": 0, + "y": 0 + }, + "parameters": { + "mode": 1.0 + }, + "seed_int": 0, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "vec4(0.0, 0.0, 0.0, 1.0)", + "label": "", + "longdesc": "The image to be converted", + "name": "in#", + "shortdesc": "Input#", + "type": "rgba" + } + ], + "instance": "", + "longdesc": "Converts an input image from straight to premultiplied alpha and vice versa", + "name": "Alpha Association", + "outputs": [ + { + "longdesc": "The converted image", + "rgba": "vec4($in#($uv).rgb $mode $in#($uv).a, $in#($uv).a)", + "shortdesc": "Output#", + "type": "rgba" + } + ], + "parameters": [ + { + "default": 0.0, + "label": "", + "name": "mode", + "shortdesc": "Mode", + "longdesc": "Controls whether the node converts from straight to premultiplied or from premultiplied to straight", + "type": "enum", + "values": [ + { + "name": "Straight to Premultiplied", + "value": "*" + }, + { + "name": "Premultiplied to Straight", + "value": "/" + } + ] + } + ], + "shortdesc": "Alpha Association Conversion" + }, + "type": "shader" +} diff --git a/material_maker/doc/images/node_filter_alpha_association.png b/material_maker/doc/images/node_filter_alpha_association.png new file mode 100644 index 0000000000000000000000000000000000000000..99502d952c8bf7af4be6208b33899e404e0c634f GIT binary patch literal 17849 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 literal 0 HcmV?d00001 diff --git a/material_maker/doc/node_filter_alpha_association.rst b/material_maker/doc/node_filter_alpha_association.rst new file mode 100644 index 000000000..33fff1c28 --- /dev/null +++ b/material_maker/doc/node_filter_alpha_association.rst @@ -0,0 +1,24 @@ +Alpha Association node +~~~~~~~~~~~~~~~~~~~~~~ + +The **Alpha Association** node is variadic and converts the input images' alpha association +from straight to premultiplied and vice versa. The alpha channel remains untouched. + +.. image:: images/node_filter_alpha_association.png + :align: center + +Inputs +++++++ + +The **Alpha Association** node requires an RGBA input texture. + +Outputs ++++++++ + +The **Alpha Association** node provides a single RGBA texture. + +Parameters +++++++++++ + +The **Alpha Association** node has a single **Mode** parameter to select between +converting from straight to premultiplied and from premultiplied to straight. diff --git a/material_maker/doc/nodes_filter.rst b/material_maker/doc/nodes_filter.rst index ec9756d6d..e7e098689 100644 --- a/material_maker/doc/nodes_filter.rst +++ b/material_maker/doc/nodes_filter.rst @@ -68,3 +68,4 @@ The filter nodes accept one or several inputs and generate one or several images node_filter_classic_kuwahara node_filter_generalized_kuwahara node_filter_symmetric_nearest_neighbor + node_filter_alpha_association diff --git a/material_maker/library/base.json b/material_maker/library/base.json index d0429e8f6..26df3e79f 100644 --- a/material_maker/library/base.json +++ b/material_maker/library/base.json @@ -7942,6 +7942,15 @@ }, "tree_item": "3D/SDF/Shapes/Octahedron", "type": "sdf3d_octahedron" + }, + { + "display_name": "Alpha Association", + "name": "alpha_association", + "parameters": { + "mode": 0.0 + }, + "tree_item": "Filter/Alpha Association", + "type": "alpha_association" } ], "name": "Base library"