From b8e9efd307a233c3118136056b9be1c1cab9f1be Mon Sep 17 00:00:00 2001 From: RodZill4 Date: Sat, 22 Feb 2020 07:56:58 +0100 Subject: [PATCH 1/2] Addde tiler nodes --- addons/material_maker/nodes/tiler.mmg | 127 ++++++++++++++++++++ addons/material_maker/nodes/tiler_color.mmg | 127 ++++++++++++++++++++ 2 files changed, 254 insertions(+) create mode 100644 addons/material_maker/nodes/tiler.mmg create mode 100644 addons/material_maker/nodes/tiler_color.mmg diff --git a/addons/material_maker/nodes/tiler.mmg b/addons/material_maker/nodes/tiler.mmg new file mode 100644 index 0000000..7469b84 --- /dev/null +++ b/addons/material_maker/nodes/tiler.mmg @@ -0,0 +1,127 @@ +{ + "name": "tiler", + "node_position": { + "x": 0, + "y": 0 + }, + "parameters": { + "offset": 0, + "overlap": 2, + "rotate": 0, + "scale": 0, + "select_inputs": 0, + "tx": 4, + "ty": 4 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "0.0", + "function": true, + "label": "", + "name": "in", + "type": "f" + }, + { + "default": "1.0", + "function": true, + "label": "", + "name": "mask", + "type": "f" + } + ], + "instance": "float tiler_$(name)(vec2 uv, vec2 tile, int overlap, vec2 _seed) {\n\tfloat c = 0.0;\n\tfor (int dx = -overlap; dx <= overlap; ++dx) {\n\t\tfor (int dy = -overlap; dy <= overlap; ++dy) {\n\t\t\tvec2 pos = fract((floor(uv*tile)+vec2(float(dx), float(dy))+vec2(0.5))/tile-vec2(0.5));\n\t\t\tvec2 seed = rand2(pos+_seed);\n\t\t\tpos = fract(pos+$offset*seed/tile);\n\t\t\tfloat mask = $mask(pos+vec2(0.5));\n\t\t\tif (mask > 0.01) {\n\t\t\t\tvec2 pv = fract(uv - pos)-vec2(0.5);\n\t\t\t\tseed = rand2(seed);\n\t\t\t\tfloat angle = (seed.x * 2.0 - 1.0) * $rotate;\n\t\t\t\tfloat ca = cos(angle);\n\t\t\t\tfloat sa = sin(angle);\n\t\t\t\tpv = vec2(ca*pv.x+sa*pv.y, -sa*pv.x+ca*pv.y);\n\t\t\t\tpv *= (seed.y-0.5)*2.0*$scale+1.0;\n\t\t\t\tpv += vec2(0.5);\n\t\t\t\t$select_inputs\n\t\t\t\tc = max(c, $in(pv)*mask);\n\t\t\t}\n\t\t}\n\t}\n\treturn c;\n}", + "name": "Tiler", + "outputs": [ + { + "f": "tiler_$(name)($uv, vec2($tx, $ty), int($overlap), vec2($seed))", + "type": "f" + } + ], + "parameters": [ + { + "control": "None", + "default": 4, + "label": "Tile X", + "max": 64, + "min": 1, + "name": "tx", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 4, + "label": "Tile Y", + "max": 64, + "min": 1, + "name": "ty", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 1, + "label": "Overlap", + "max": 5, + "min": 0, + "name": "overlap", + "step": 1, + "type": "float" + }, + { + "default": 0, + "label": "Inputs", + "name": "select_inputs", + "type": "enum", + "values": [ + { + "name": "1", + "value": " " + }, + { + "name": "4", + "value": "pv = clamp(0.5*(pv+floor(rand2(seed)*2.0)), vec2(0.0), vec2(1.0));" + }, + { + "name": "16", + "value": "pv = clamp(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));" + } + ] + }, + { + "control": "None", + "default": 0.5, + "label": "Offset", + "max": 1, + "min": 0, + "name": "offset", + "step": 0.01, + "type": "float" + }, + { + "control": "None", + "default": 0, + "label": "Rotate", + "max": 180, + "min": 0, + "name": "rotate", + "step": 0.1, + "type": "float" + }, + { + "control": "None", + "default": 0, + "label": "Scale", + "max": 1, + "min": 0, + "name": "scale", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" +} \ No newline at end of file diff --git a/addons/material_maker/nodes/tiler_color.mmg b/addons/material_maker/nodes/tiler_color.mmg new file mode 100644 index 0000000..ecc07d9 --- /dev/null +++ b/addons/material_maker/nodes/tiler_color.mmg @@ -0,0 +1,127 @@ +{ + "name": "tiler_color", + "node_position": { + "x": 0, + "y": 0 + }, + "parameters": { + "offset": 0, + "overlap": 2, + "rotate": 0, + "scale": 0, + "select_inputs": 0, + "tx": 4, + "ty": 4 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "vec4(0.0)", + "function": true, + "label": "", + "name": "in", + "type": "rgba" + }, + { + "default": "1.0", + "function": true, + "label": "", + "name": "mask", + "type": "f" + } + ], + "instance": "vec4 tiler_$(name)(vec2 uv, vec2 tile, int overlap, vec2 _seed) {\n\tvec4 c = vec4(0.0);\n\tfor (int dx = -overlap; dx <= overlap; ++dx) {\n\t\tfor (int dy = -overlap; dy <= overlap; ++dy) {\n\t\t\tvec2 pos = fract((floor(uv*tile)+vec2(float(dx), float(dy))+vec2(0.5))/tile-vec2(0.5));\n\t\t\tvec2 seed = rand2(pos+_seed);\n\t\t\tpos = fract(pos+$offset*seed/tile);\n\t\t\tfloat mask = $mask(pos+vec2(0.5));\n\t\t\tif (mask > 0.01) {\n\t\t\t\tvec2 pv = fract(uv - pos)-vec2(0.5);\n\t\t\t\tseed = rand2(seed);\n\t\t\t\tfloat angle = (seed.x * 2.0 - 1.0) * $rotate;\n\t\t\t\tfloat ca = cos(angle);\n\t\t\t\tfloat sa = sin(angle);\n\t\t\t\tpv = vec2(ca*pv.x+sa*pv.y, -sa*pv.x+ca*pv.y);\n\t\t\t\tpv *= (seed.y-0.5)*2.0*$scale+1.0;\n\t\t\t\tpv += vec2(0.5);\n\t\t\t\t$select_inputs\n\t\t\t\tvec4 n = $in(pv);\n\t\t\t\tfloat na = n.a*mask;\n\t\t\t\tfloat a = (1.0-c.a)*(1.0*na);\n\t\t\t\tc = mix(c, n, na);\n\t\t\t}\n\t\t}\n\t}\n\treturn c;\n}", + "name": "Color Tiler", + "outputs": [ + { + "rgba": "tiler_$(name)($uv, vec2($tx, $ty), int($overlap), vec2($seed))", + "type": "rgba" + } + ], + "parameters": [ + { + "control": "None", + "default": 4, + "label": "Tile X", + "max": 64, + "min": 1, + "name": "tx", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 4, + "label": "Tile Y", + "max": 64, + "min": 1, + "name": "ty", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 1, + "label": "Overlap", + "max": 5, + "min": 0, + "name": "overlap", + "step": 1, + "type": "float" + }, + { + "default": 0, + "label": "Inputs", + "name": "select_inputs", + "type": "enum", + "values": [ + { + "name": "1", + "value": " " + }, + { + "name": "4", + "value": "pv = clamp(0.5*(pv+floor(rand2(seed)*2.0)), vec2(0.0), vec2(1.0));" + }, + { + "name": "16", + "value": "pv = clamp(0.25*(pv+floor(rand2(seed)*4.0)), vec2(0.0), vec2(1.0));" + } + ] + }, + { + "control": "None", + "default": 0.5, + "label": "Offset", + "max": 1, + "min": 0, + "name": "offset", + "step": 0.01, + "type": "float" + }, + { + "control": "None", + "default": 0, + "label": "Rotate", + "max": 180, + "min": 0, + "name": "rotate", + "step": 0.1, + "type": "float" + }, + { + "control": "None", + "default": 0, + "label": "Scale", + "max": 1, + "min": 0, + "name": "scale", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" +} \ No newline at end of file From 4fd42bc36d4208a9c66b23969f66922350a3143f Mon Sep 17 00:00:00 2001 From: RodZill4 Date: Sat, 22 Feb 2020 18:05:16 +0100 Subject: [PATCH 2/2] Added tiler node and removed obsolete splatter --- addons/material_maker/nodes/splatter_base.mmg | 80 ---- .../doc/images/node_transform_tiler.png | Bin 0 -> 6904 bytes .../doc/images/node_transform_tiler_color.png | Bin 0 -> 7329 bytes .../images/node_transform_tiler_samples.png | Bin 0 -> 79804 bytes .../doc/node_transform_splatter.rst | 4 +- material_maker/doc/node_transform_tiler.rst | 42 +++ material_maker/doc/nodes_transform.rst | 1 + material_maker/examples/doc_tools.ptex | 35 +- material_maker/examples/splatter.ptex | 354 ++++++------------ material_maker/library/base.json | 32 ++ .../library/base/transform_tiler.png | Bin 0 -> 3315 bytes .../library/base/transform_tiler_color.png | Bin 0 -> 3546 bytes 12 files changed, 221 insertions(+), 327 deletions(-) delete mode 100644 addons/material_maker/nodes/splatter_base.mmg create mode 100644 material_maker/doc/images/node_transform_tiler.png create mode 100644 material_maker/doc/images/node_transform_tiler_color.png create mode 100644 material_maker/doc/images/node_transform_tiler_samples.png create mode 100644 material_maker/doc/node_transform_tiler.rst create mode 100644 material_maker/library/base/transform_tiler.png create mode 100644 material_maker/library/base/transform_tiler_color.png diff --git a/addons/material_maker/nodes/splatter_base.mmg b/addons/material_maker/nodes/splatter_base.mmg deleted file mode 100644 index 3f1e6ce..0000000 --- a/addons/material_maker/nodes/splatter_base.mmg +++ /dev/null @@ -1,80 +0,0 @@ -{ - "name": "splatter_base", - "node_position": { - "x": 0, - "y": 0 - }, - "parameters": { - "name": 0.5, - "offx": 0, - "offy": 0, - "repeat": 8, - "scale": 1.64, - "size": 1 - }, - "shader_model": { - "code": "vec4 $(name_uv)_xyzw = splatter($uv, $repeat, $scale, vec2($offx, $offy));", - "global": "vec4 splatter(vec2 uv, float repeat, float scale, vec2 offset) {\n\tvec2 center = (floor(uv*repeat-offset)+0.5+offset)/repeat;\n\tvec2 tmp = (uv-center)*repeat*2.0;\n\tvec2 src_uv;\n\tsrc_uv.x = tmp.x*cos(center.x)+tmp.y*sin(center.x);\n\tsrc_uv.y = tmp.x*sin(center.x)-tmp.y*cos(center.x);\n\tsrc_uv /= scale;\n\tsrc_uv += 0.5;\n\treturn vec4(src_uv, center);\n}", - "inputs": [ - { - "default": "0.0", - "label": "", - "name": "in", - "type": "f" - }, - { - "default": "1.0", - "label": "", - "name": "mask", - "type": "f" - } - ], - "instance": "", - "name": "Splatter", - "outputs": [ - { - "f": "$in($(name_uv)_xyzw.xy)*$mask($(name_uv)_xyzw.zw)", - "type": "f" - } - ], - "parameters": [ - { - "default": 4, - "label": "Repeat", - "max": 128, - "min": 2, - "name": "repeat", - "step": 1, - "type": "float" - }, - { - "default": 1, - "label": "Scale", - "max": 2, - "min": 0, - "name": "scale", - "step": 0.01, - "type": "float" - }, - { - "default": 0.5, - "label": "Offset X", - "max": 1, - "min": 0, - "name": "offx", - "step": 0.1, - "type": "float" - }, - { - "default": 0.5, - "label": "Offset Y", - "max": 1, - "min": 0, - "name": "offy", - "step": 0.1, - "type": "float" - } - ] - }, - "type": "shader" -} \ No newline at end of file diff --git a/material_maker/doc/images/node_transform_tiler.png b/material_maker/doc/images/node_transform_tiler.png new file mode 100644 index 0000000000000000000000000000000000000000..3d0d7bdd81d244d58091b3ead360be2fcbd51534 GIT binary patch literal 6904 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 literal 0 HcmV?d00001 diff --git a/material_maker/doc/images/node_transform_tiler_samples.png b/material_maker/doc/images/node_transform_tiler_samples.png new file mode 100644 index 0000000000000000000000000000000000000000..009995c06a471f1e1405db897f071bc085daadf5 GIT binary patch literal 79804 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 BppyUq literal 0 HcmV?d00001 diff --git a/material_maker/doc/node_transform_splatter.rst b/material_maker/doc/node_transform_splatter.rst index 5fd449e..d57e0e0 100644 --- a/material_maker/doc/node_transform_splatter.rst +++ b/material_maker/doc/node_transform_splatter.rst @@ -2,7 +2,7 @@ Splatter node ~~~~~~~~~~~~~ The **Splatter** node splats several instances of its input with optional scale and rotation variations. -instances are mixed with each other using a *lighten* filter. +Overlapping instances are mixed with each other using a *lighten* filter. The **Splatter** also has a color version whose input is in RGBA format. @@ -26,7 +26,7 @@ The **Splatter** node outputs the splat image. Parameters ++++++++++ -The **Splatter** node has two parameters: +The **Splatter** node accepts the following parameters: * *Count*, the number of instances of the source image in the result, including those canceled by the mask. * *Inputs* is the number of alternate shapes in the input (1, 4 or 16). Images containing several diff --git a/material_maker/doc/node_transform_tiler.rst b/material_maker/doc/node_transform_tiler.rst new file mode 100644 index 0000000..4af8cc0 --- /dev/null +++ b/material_maker/doc/node_transform_tiler.rst @@ -0,0 +1,42 @@ +Tiler node +~~~~~~~~~~ + +The **Tiler** node tiles several instances of its input with optional scale and rotation variations. +Overlapping instances are mixed with each other using a *lighten* filter. + +The **Tiler** also has a color version whose input is in RGBA format. + +.. image:: images/node_transform_tiler.png + :align: center + +Inputs +++++++ + +The **Tiler** node accepts two inputs: + +* The *Source* inputs is the image to be splat into the output. + +* The *Mask* input is a greyscale image that is used as a mask and affects each instance's value. + +Outputs ++++++++ + +The **Tiler** node outputs the splat image. + +Parameters +++++++++++ + +The **Tiler** node accepts the following parameters: + +* *Tile X* and *Tile Y*, the number of columns and rows of of the tile pattern. +* *Inputs* is the number of alternate shapes in the input (1, 4 or 16). Images containing several + shapes can easily be created using the **Tile2x2** node. +* *Offset* is the maximum random offset applied to each instance (relative to tiles size). +* *Rotate* is the maximum angle of the random rotation applied to each instance. +* *Scale* is the amount of scaling applied to each instance. + +Example images +++++++++++++++ + +.. image:: images/node_transform_tiler_samples.png + :align: center diff --git a/material_maker/doc/nodes_transform.rst b/material_maker/doc/nodes_transform.rst index 5fb522b..2ed87d3 100644 --- a/material_maker/doc/nodes_transform.rst +++ b/material_maker/doc/nodes_transform.rst @@ -13,3 +13,4 @@ The transform nodes are nodes that affect the geometry of their input. node_transform_customuv node_transform_tile2x2 node_transform_splatter + node_transform_tiler diff --git a/material_maker/examples/doc_tools.ptex b/material_maker/examples/doc_tools.ptex index 8a4bf4a..7701781 100644 --- a/material_maker/examples/doc_tools.ptex +++ b/material_maker/examples/doc_tools.ptex @@ -151,7 +151,13 @@ "to_port": 0 }, { - "from": "splatter_color", + "from": "tile2x2", + "from_port": 0, + "to": "tiler_color", + "to_port": 0 + }, + { + "from": "tiler_color", "from_port": 0, "to": "Material", "to_port": 0 @@ -2320,7 +2326,7 @@ }, "parameters": { "edge": 1, - "radius": 0.21, + "radius": 0.13, "shape": 0, "sides": 6 }, @@ -2371,7 +2377,7 @@ }, "parameters": { "edge": 1, - "radius": 0.18, + "radius": 0.12, "shape": 1, "sides": 6 }, @@ -2473,7 +2479,7 @@ }, "parameters": { "edge": 1, - "radius": 0.13, + "radius": 0.12, "shape": 3, "sides": 7 }, @@ -2482,8 +2488,8 @@ { "name": "tile2x2", "node_position": { - "x": -522.442566, - "y": 943.082642 + "x": -558.442566, + "y": 890.082642 }, "parameters": { @@ -2503,6 +2509,23 @@ "select_inputs": 0 }, "type": "splatter_color" + }, + { + "name": "tiler_color", + "node_position": { + "x": -598.862, + "y": 599.541748 + }, + "parameters": { + "offset": 0.62, + "overlap": 1, + "rotate": 45, + "scale": 0.2, + "select_inputs": 1, + "tx": 8, + "ty": 8 + }, + "type": "tiler_color" } ], "parameters": { diff --git a/material_maker/examples/splatter.ptex b/material_maker/examples/splatter.ptex index 94a52ae..fba4261 100644 --- a/material_maker/examples/splatter.ptex +++ b/material_maker/examples/splatter.ptex @@ -1,17 +1,5 @@ { "connections": [ - { - "from": "blend", - "from_port": 0, - "to": "blend_2_2", - "to_port": 0 - }, - { - "from": "blend_2_2", - "from_port": 0, - "to": "normal_map", - "to_port": 0 - }, { "from": "normal_map", "from_port": 0, @@ -30,12 +18,6 @@ "to": "blend_3", "to_port": 0 }, - { - "from": "blend_2_2", - "from_port": 0, - "to": "colorize", - "to_port": 0 - }, { "from": "colorize", "from_port": 0, @@ -78,84 +60,6 @@ "to": "blend_4", "to_port": 1 }, - { - "from": "blend_3", - "from_port": 0, - "to": "splatter_base_2", - "to_port": 0 - }, - { - "from": "blend_3", - "from_port": 0, - "to": "splatter_base_2_3", - "to_port": 0 - }, - { - "from": "blend_3", - "from_port": 0, - "to": "splatter_base_2_3_2", - "to_port": 0 - }, - { - "from": "blend_3", - "from_port": 0, - "to": "splatter_base_2_3_2_2", - "to_port": 0 - }, - { - "from": "colorize_2", - "from_port": 0, - "to": "splatter_base_2", - "to_port": 1 - }, - { - "from": "colorize_2", - "from_port": 0, - "to": "splatter_base_2_3", - "to_port": 1 - }, - { - "from": "colorize_2", - "from_port": 0, - "to": "splatter_base_2_3_2", - "to_port": 1 - }, - { - "from": "colorize_2", - "from_port": 0, - "to": "splatter_base_2_3_2_2", - "to_port": 1 - }, - { - "from": "splatter_base_2", - "from_port": 0, - "to": "blend", - "to_port": 0 - }, - { - "from": "splatter_base_2_3_2", - "from_port": 0, - "to": "blend_2", - "to_port": 0 - }, - { - "from": "blend_2", - "from_port": 0, - "to": "blend_2_2", - "to_port": 1 - }, - { - "from": "splatter_base_2_3_2_2", - "from_port": 0, - "to": "blend_2", - "to_port": 1 - }, - { - "from": "splatter_base_2_3", - "from_port": 0, - "to": "blend", - "to_port": 1 - }, { "from": "pattern_2", "from_port": 0, @@ -197,6 +101,42 @@ "from_port": 0, "to": "blend_6", "to_port": 1 + }, + { + "from": "blend_3", + "from_port": 0, + "to": "tiler", + "to_port": 0 + }, + { + "from": "colorize_2", + "from_port": 0, + "to": "tiler", + "to_port": 1 + }, + { + "from": "tiler", + "from_port": 0, + "to": "normal_map", + "to_port": 0 + }, + { + "from": "tiler", + "from_port": 0, + "to": "colorize", + "to_port": 0 + }, + { + "from": "tiler", + "from_port": 0, + "to": "colorize_5", + "to_port": 0 + }, + { + "from": "colorize_5", + "from_port": 0, + "to": "Material", + "to_port": 0 } ], "label": "Graph", @@ -221,7 +161,7 @@ "type": "Color" }, "ao_light_affect": 1, - "depth_scale": 0.2, + "depth_scale": 0.1, "emission_energy": 1, "metallic": 1, "normal_scale": 1, @@ -238,71 +178,13 @@ "y": -404 }, "parameters": { - "param0": 0 + }, "type": "remote", "widgets": [ - { - "label": "Unnamed", - "linked_widgets": [ - { - "node": "splatter_base_2", - "widget": "repeat" - }, - { - "node": "splatter_base_2_3", - "widget": "repeat" - }, - { - "node": "splatter_base_2_3_2", - "widget": "repeat" - }, - { - "node": "splatter_base_2_3_2_2", - "widget": "repeat" - } - ], - "name": "param0", - "type": "linked_control" - } + ] }, - { - "name": "blend", - "node_position": { - "x": -144.109253, - "y": -151 - }, - "parameters": { - "amount": 1, - "blend_type": 9 - }, - "type": "blend" - }, - { - "name": "blend_2", - "node_position": { - "x": -131.166183, - "y": 110 - }, - "parameters": { - "amount": 1, - "blend_type": 9 - }, - "type": "blend" - }, - { - "name": "blend_2_2", - "node_position": { - "x": -133.166168, - "y": -22 - }, - "parameters": { - "amount": 1, - "blend_type": 9 - }, - "type": "blend" - }, { "name": "blend_3", "node_position": { @@ -318,17 +200,14 @@ { "name": "normal_map", "node_position": { - "x": 166.778687, - "y": -64 + "x": 26.778687, + "y": -96 }, "parameters": { - "amount": 0.5, "param0": 12, "param1": 1.02, "param2": 0, - "param3": 0, - "param4": 1, - "size": 4 + "param4": 1 }, "type": "normal_map" }, @@ -340,7 +219,7 @@ }, "parameters": { "edge": 0.051546, - "radius": 0.291661, + "radius": 0.03, "shape": 3, "sides": 5 }, @@ -370,8 +249,8 @@ "label": "Radial Gradient", "name": "graph", "node_position": { - "x": -964.022583, - "y": 29 + "x": -982.022583, + "y": 18 }, "nodes": [ { @@ -410,7 +289,7 @@ "a": 1, "b": 1, "g": 1, - "pos": 1, + "pos": 0.045455, "r": 1 } ], @@ -441,7 +320,7 @@ "a": 1, "b": 1, "g": 1, - "pos": 1, + "pos": 0.045455, "r": 1 } ], @@ -533,7 +412,7 @@ "a": 1, "b": 1, "g": 1, - "pos": 1, + "pos": 0.045455, "r": 1 } ], @@ -545,8 +424,8 @@ { "name": "colorize", "node_position": { - "x": 166.370972, - "y": 37 + "x": 27.370972, + "y": 62 }, "parameters": { "gradient": { @@ -575,8 +454,8 @@ { "name": "perlin", "node_position": { - "x": -715.317078, - "y": 40.266663 + "x": -691.317078, + "y": 36.266663 }, "parameters": { "iterations": 2, @@ -589,8 +468,8 @@ { "name": "colorize_2", "node_position": { - "x": -684.317078, - "y": 180.266663 + "x": -669.317078, + "y": 174.266663 }, "parameters": { "gradient": { @@ -1159,70 +1038,6 @@ }, "type": "blend" }, - { - "name": "splatter_base_2", - "node_position": { - "x": -381.766907, - "y": -265.78183 - }, - "parameters": { - "name": 0.5, - "offx": 0, - "offy": 0, - "repeat": 6, - "scale": 2, - "size": 1 - }, - "type": "splatter_base" - }, - { - "name": "splatter_base_2_3", - "node_position": { - "x": -382.266907, - "y": -132.78183 - }, - "parameters": { - "name": 0.5, - "offx": 0.4, - "offy": 0, - "repeat": 6, - "scale": 2, - "size": 1 - }, - "type": "splatter_base" - }, - { - "name": "splatter_base_2_3_2", - "node_position": { - "x": -379.266907, - "y": 4.21817 - }, - "parameters": { - "name": 0.5, - "offx": 0, - "offy": 0.5, - "repeat": 6, - "scale": 2, - "size": 1 - }, - "type": "splatter_base" - }, - { - "name": "splatter_base_2_3_2_2", - "node_position": { - "x": -376.266907, - "y": 140.21817 - }, - "parameters": { - "name": 0.5, - "offx": 0.5, - "offy": 0.5, - "repeat": 6, - "scale": 2, - "size": 1 - }, - "type": "splatter_base" - }, { "name": "pattern_2", "node_position": { @@ -1533,6 +1348,67 @@ } }, "type": "colorize" + }, + { + "name": "tiler", + "node_position": { + "x": -310.556824, + "y": -53.911621 + }, + "parameters": { + "offset": 0.6, + "overlap": 1, + "rotate": 45, + "scale": 0.2, + "select_inputs": 0, + "tx": 24, + "ty": 24 + }, + "type": "tiler" + }, + { + "name": "colorize_5", + "node_position": { + "x": 22.722137, + "y": -188.911621 + }, + "parameters": { + "gradient": { + "interpolation": 1, + "points": [ + { + "a": 1, + "b": 0.03776, + "g": 0.302083, + "pos": 0.027273, + "r": 0 + }, + { + "a": 1, + "b": 0, + "g": 0.90625, + "pos": 0.054545, + "r": 1 + }, + { + "a": 1, + "b": 0, + "g": 0.90625, + "pos": 0.154545, + "r": 1 + }, + { + "a": 1, + "b": 0.875, + "g": 0, + "pos": 0.227273, + "r": 1 + } + ], + "type": "Gradient" + } + }, + "type": "colorize" } ], "parameters": { diff --git a/material_maker/library/base.json b/material_maker/library/base.json index 7ccac54..a2962cc 100644 --- a/material_maker/library/base.json +++ b/material_maker/library/base.json @@ -2639,6 +2639,38 @@ "tree_item": "Transform/Splatter/Color", "type": "splatter_color" }, + { + "collapsed": true, + "icon": "transform_tiler", + "name": "tiler", + "parameters": { + "offset": 0.25, + "overlap": 2, + "rotate": 45, + "scale": 0.2, + "select_inputs": 0, + "tx": 4, + "ty": 4 + }, + "tree_item": "Transform/Tiler", + "type": "tiler" + }, + { + "collapsed": true, + "icon": "transform_tiler_color", + "name": "tiler_color", + "parameters": { + "offset": 0.25, + "overlap": 1, + "rotate": 45, + "scale": 0.2, + "select_inputs": 0, + "tx": 4, + "ty": 4 + }, + "tree_item": "Transform/Tiler/Color", + "type": "tiler_color" + }, { "collapsed": false, "tree_item": "Workflow" diff --git a/material_maker/library/base/transform_tiler.png b/material_maker/library/base/transform_tiler.png new file mode 100644 index 0000000000000000000000000000000000000000..16442886cedd8ef15b4f64af106443d69dd6b385 GIT binary patch literal 3315 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 Zz*vdC4##0qFTr07q^_*3RIF$b{69(LWVrwU literal 0 HcmV?d00001 diff --git a/material_maker/library/base/transform_tiler_color.png b/material_maker/library/base/transform_tiler_color.png new file mode 100644 index 0000000000000000000000000000000000000000..e79b2b8af3204b870454e21f9d56abeaf31d6edc GIT binary patch literal 3546 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