From 24864846ec5675edcb7fa6cb967f1bb5b8bed91d Mon Sep 17 00:00:00 2001 From: RodZill4 Date: Sun, 16 Feb 2020 09:17:49 +0100 Subject: [PATCH] Updated splatters with mask support and added tile2x2 --- addons/material_maker/nodes/splatter.mmg | 11 +++++++++-- .../material_maker/nodes/splatter_color.mmg | 11 +++++++++-- .../doc/images/node_transform_splatter.png | Bin 5214 -> 5272 bytes .../images/node_transform_splatter_color.png | Bin 5568 -> 5717 bytes .../doc/images/node_transform_tile2x2.png | Bin 0 -> 1765 bytes 5 files changed, 18 insertions(+), 4 deletions(-) create mode 100644 material_maker/doc/images/node_transform_tile2x2.png diff --git a/addons/material_maker/nodes/splatter.mmg b/addons/material_maker/nodes/splatter.mmg index c697b39..921f71c 100644 --- a/addons/material_maker/nodes/splatter.mmg +++ b/addons/material_maker/nodes/splatter.mmg @@ -5,7 +5,7 @@ "y": 0 }, "parameters": { - "count": 25, + "count": 30, "rotate": 0, "scale": 0, "select_inputs": 0 @@ -20,9 +20,16 @@ "label": "", "name": "in", "type": "f" + }, + { + "default": "1.0", + "function": true, + "label": "", + "name": "mask", + "type": "f" } ], - "instance": "float splatter_$(name)(vec2 uv, int count, vec2 seed) {\n\tfloat c = 0.0;\n\tfor (int i = 0; i < count; ++i) {\n\t\tseed = rand2(seed);\n\t\tvec2 pv = fract(uv - seed);\n\t\tseed = rand2(seed);\n\t\tpv -= vec2(0.5);\n\t\tfloat angle = (seed.x * 2.0 - 1.0) * $rotate;\n\t\tfloat ca = cos(angle);\n\t\tfloat sa = sin(angle);\n\t\tpv = vec2(ca*pv.x+sa*pv.y, -sa*pv.x+ca*pv.y);\n\t\tpv *= (seed.y-0.5)*2.0*$scale+1.0;\n\t\tpv += vec2(0.5);\n\t\t$select_inputs\n\t\tc = max(c, $in(pv));\n\t}\n\treturn c;\n}", + "instance": "float splatter_$(name)(vec2 uv, int count, vec2 seed) {\n\tfloat c = 0.0;\n\tfor (int i = 0; i < count; ++i) {\n\t\tseed = rand2(seed);\n\t\tfloat mask = $mask(seed+vec2(0.5));\n\t\tif (mask > 0.01) {\n\t\t\tvec2 pv = fract(uv - seed)-vec2(0.5);\n\t\t\tseed = rand2(seed);\n\t\t\tfloat angle = (seed.x * 2.0 - 1.0) * $rotate;\n\t\t\tfloat ca = cos(angle);\n\t\t\tfloat sa = sin(angle);\n\t\t\tpv = vec2(ca*pv.x+sa*pv.y, -sa*pv.x+ca*pv.y);\n\t\t\tpv *= (seed.y-0.5)*2.0*$scale+1.0;\n\t\t\tpv += vec2(0.5);\n\t\t\t$select_inputs\n\t\t\tc = max(c, $in(pv)*mask);\n\t\t}\n\t}\n\treturn c;\n}", "name": "Splatter", "outputs": [ { diff --git a/addons/material_maker/nodes/splatter_color.mmg b/addons/material_maker/nodes/splatter_color.mmg index 3c44c61..4158172 100644 --- a/addons/material_maker/nodes/splatter_color.mmg +++ b/addons/material_maker/nodes/splatter_color.mmg @@ -5,7 +5,7 @@ "y": 0 }, "parameters": { - "count": 25, + "count": 30, "rotate": 0, "scale": 0, "select_inputs": 0 @@ -20,9 +20,16 @@ "label": "", "name": "in", "type": "rgba" + }, + { + "default": "1.0", + "function": true, + "label": "", + "name": "mask", + "type": "f" } ], - "instance": "vec4 splatter_$(name)(vec2 uv, int count, vec2 seed) {\n\tvec4 c = vec4(0.0);\n\tfor (int i = 0; i < count; ++i) {\n\t\tseed = rand2(seed);\n\t\tvec2 pv = fract(uv - seed);\n\t\tseed = rand2(seed);\n\t\tpv -= vec2(0.5);\n\t\tfloat angle = (seed.x * 2.0 - 1.0) * $rotate;\n\t\tfloat ca = cos(angle);\n\t\tfloat sa = sin(angle);\n\t\tpv = vec2(ca*pv.x+sa*pv.y, -sa*pv.x+ca*pv.y);\n\t\tpv *= (seed.y-0.5)*2.0*$scale+1.0;\n\t\tpv += vec2(0.5);\n\t\t$select_inputs\n\t\tvec4 n = $in(pv);\n\t\tfloat a = (1.0-c.a)*(1.0*n.a);\n\t\tc = mix(c, n, n.a);\n\t}\n\treturn c;\n}", + "instance": "vec4 splatter_$(name)(vec2 uv, int count, vec2 seed) {\n\tvec4 c = vec4(0.0);\n\tfor (int i = 0; i < count; ++i) {\n\t\tseed = rand2(seed);\n\t\tfloat mask = $mask(seed+vec2(0.5));\n\t\tif (mask > 0.01) {\n\t\t\tvec2 pv = fract(uv - seed)-vec2(0.5);\n\t\t\tseed = rand2(seed);\n\t\t\tfloat angle = (seed.x * 2.0 - 1.0) * $rotate;\n\t\t\tfloat ca = cos(angle);\n\t\t\tfloat sa = sin(angle);\n\t\t\tpv = vec2(ca*pv.x+sa*pv.y, -sa*pv.x+ca*pv.y);\n\t\t\tpv *= (seed.y-0.5)*2.0*$scale+1.0;\n\t\t\tpv += vec2(0.5);\n\t\t\t$select_inputs\n\t\t\tvec4 n = $in(pv);\n\t\t\tfloat na = n.a*mask;\n\t\t\tfloat a = (1.0-c.a)*(1.0*na);\n\t\t\tc = mix(c, n, na);\n\t\t}\n\t}\n\treturn c;\n}\n", "name": "Color Splatter", "outputs": [ { diff --git a/material_maker/doc/images/node_transform_splatter.png b/material_maker/doc/images/node_transform_splatter.png index 26da7f934163baf4b2ad2c6fbc704fa98401ff8d..6ffe8335aac6d3e8173073cc2fd85772f411678c 100644 GIT binary patch literal 5272 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 Wr|(}hEWryyKuuXwsa(M_?0*0e4IE1V diff --git a/material_maker/doc/images/node_transform_splatter_color.png b/material_maker/doc/images/node_transform_splatter_color.png index 19e130591911f9de2160b19858dc53566bad01d1..6ec2e3eb26fd4267062fe244b2de94b6848ed73a 100644 GIT binary patch literal 5717 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 L9p!pOo5=qGxXlTk literal 5568 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 YvCk!%PA$WLjeiSt^oW-W4IP~QH<@>B?*IS* literal 0 HcmV?d00001