diff --git a/addons/material_maker/nodes/sdngon.mmg b/addons/material_maker/nodes/sdngon.mmg new file mode 100644 index 00000000..af22d982 --- /dev/null +++ b/addons/material_maker/nodes/sdngon.mmg @@ -0,0 +1,102 @@ +{ + "name": "sdngon", + "node_position": { + "x": 0, + "y": 0 + }, + "parameters": { + "cx": 0, + "cy": 0, + "n": 5, + "r": 0.4, + "rot": 0 + }, + "seed": 0, + "seed_locked": false, + "shader_model": { + "code": "", + "global": "float sdNgon(vec2 p, float r, float n) {\n\tfloat PI = 3.1415926535;\n\tp = circle_repeat_transform_2d(p, n);\n\tvec2 d = abs(p)-vec2(r*tan(3.14159265359/n), r);\n\treturn p.y < r ? p.y-r : length(max(d,vec2(0)))+min(max(d.x,d.y),0.0);\n}", + "includes": [ + "sdrotate", + "sdcirclerepeat" + ], + "inputs": [ + + ], + "instance": "", + "longdesc": "An n-gon described as a signed distance function", + "name": "sdNgon", + "outputs": [ + { + "longdesc": "The n-gon as a signed distance function", + "sdf2d": "sdNgon(sdf2d_rotate($uv-vec2($cx, $cy), $rot*0.01745329251-1.57079632679)-vec2(0.5), $r, $n)", + "shortdesc": "Output", + "type": "sdf2d" + } + ], + "parameters": [ + { + "control": "None", + "default": 3, + "label": "N", + "longdesc": "The number of sides of the n-gon", + "max": 12, + "min": 3, + "name": "n", + "shortdesc": "N", + "step": 1, + "type": "float" + }, + { + "control": "Radius1.r", + "default": 0.5, + "label": "Radius", + "longdesc": "The radius of the n-gon", + "max": 1, + "min": 0, + "name": "r", + "shortdesc": "Radius", + "step": 0.01, + "type": "float" + }, + { + "control": "Radius1.a", + "default": 0, + "label": "Rotation", + "longdesc": "The rotation of the n-gon", + "max": 180, + "min": -180, + "name": "rot", + "shortdesc": "Rotation", + "step": 0.01, + "type": "float" + }, + { + "control": "P1.x", + "default": 0, + "label": "Center X", + "longdesc": "The position of the center on the X axis", + "max": 0.5, + "min": -0.5, + "name": "cx", + "shortdesc": "Center.x", + "step": 0.01, + "type": "float" + }, + { + "control": "P1.y", + "default": 0, + "label": "Center Y", + "longdesc": "The position of the center on the Y axis", + "max": 0.5, + "min": -0.5, + "name": "cy", + "shortdesc": "Center.y", + "step": 0.01, + "type": "float" + } + ], + "shortdesc": "sdNgon" + }, + "type": "shader" +} \ No newline at end of file diff --git a/material_maker/library/base.json b/material_maker/library/base.json index 0d87e469..98d9f5af 100644 --- a/material_maker/library/base.json +++ b/material_maker/library/base.json @@ -6136,6 +6136,21 @@ "seed_locked": false, "tree_item": "Miscellaneous/Variations/TEX3D", "type": "variations_tex3d" + }, + { + "icon_data": "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", + "name": "sdngon_2", + "parameters": { + "cx": 0, + "cy": 0, + "n": 5, + "r": 0.4, + "rot": 0 + }, + "seed": 0, + "seed_locked": false, + "tree_item": "Simple/SDF/Shapes/sdNgon", + "type": "sdngon" } ], "name": "Base library"