From bfd64212bf5e6fac05ba9919856c717c6e7276aa Mon Sep 17 00:00:00 2001 From: RodZill4 Date: Thu, 21 May 2020 21:21:35 +0200 Subject: [PATCH] Added simple transform nodes --- addons/material_maker/nodes/rotate.mmg | 65 +++++++++++++++++++ addons/material_maker/nodes/scale.mmg | 76 +++++++++++++++++++++++ addons/material_maker/nodes/translate.mmg | 54 ++++++++++++++++ 3 files changed, 195 insertions(+) create mode 100644 addons/material_maker/nodes/rotate.mmg create mode 100644 addons/material_maker/nodes/scale.mmg create mode 100644 addons/material_maker/nodes/translate.mmg diff --git a/addons/material_maker/nodes/rotate.mmg b/addons/material_maker/nodes/rotate.mmg new file mode 100644 index 00000000..ba94c28c --- /dev/null +++ b/addons/material_maker/nodes/rotate.mmg @@ -0,0 +1,65 @@ +{ + "name": "rotate", + "node_position": { + "x": 0, + "y": 0 + }, + "parameters": { + "cx": 0, + "cy": 0, + "rotate": 0 + }, + "shader_model": { + "code": "", + "global": "vec2 rotate(vec2 uv, vec2 center, float rotate) {\n \tvec2 rv;\n\tuv -= center;\n\trv.x = cos(rotate)*uv.x + sin(rotate)*uv.y;\n\trv.y = -sin(rotate)*uv.x + cos(rotate)*uv.y;\n\trv += center;\n return rv;\t\n}", + "inputs": [ + { + "default": "vec4($uv, 0.0, 1.0)", + "label": "", + "name": "i", + "type": "rgba" + } + ], + "instance": "", + "name": "Rotate", + "outputs": [ + { + "rgba": "$i(rotate($uv, vec2(0.5+$cx, 0.5+$cy), $rotate*0.01745329251))", + "type": "rgba" + } + ], + "parameters": [ + { + "control": "P1.x", + "default": 0, + "label": "Center X:", + "max": 1, + "min": -1, + "name": "cx", + "step": 0.005, + "type": "float" + }, + { + "control": "P1.y", + "default": 0, + "label": "Center Y:", + "max": 1, + "min": -1, + "name": "cy", + "step": 0.005, + "type": "float" + }, + { + "control": "Radius1.a", + "default": 0, + "label": "Rotate:", + "max": 720, + "min": -720, + "name": "rotate", + "step": 0.005, + "type": "float" + } + ] + }, + "type": "shader" +} \ No newline at end of file diff --git a/addons/material_maker/nodes/scale.mmg b/addons/material_maker/nodes/scale.mmg new file mode 100644 index 00000000..d7ab8e3f --- /dev/null +++ b/addons/material_maker/nodes/scale.mmg @@ -0,0 +1,76 @@ +{ + "name": "scale", + "node_position": { + "x": 0, + "y": 0 + }, + "parameters": { + "cx": 0, + "cy": 0, + "scale_x": 1, + "scale_y": 1 + }, + "shader_model": { + "code": "", + "global": "vec2 scale(vec2 uv, vec2 center, vec2 scale) {\n\tuv -= center;\n\tuv /= scale;\n\tuv += center;\n return uv;\n}", + "inputs": [ + { + "default": "vec4($uv, 0.0, 1.0)", + "label": "", + "name": "i", + "type": "rgba" + } + ], + "instance": "", + "name": "Scale", + "outputs": [ + { + "rgba": "$i(scale($uv, vec2(0.5+$cx, 0.5+$cy), vec2($scale_x, $scale_y)))", + "type": "rgba" + } + ], + "parameters": [ + { + "control": "P1.x", + "default": 0, + "label": "Center X:", + "max": 1, + "min": -1, + "name": "cx", + "step": 0.005, + "type": "float" + }, + { + "control": "P1.y", + "default": 0, + "label": "Center Y:", + "max": 1, + "min": -1, + "name": "cy", + "step": 0.005, + "type": "float" + }, + { + "control": "Scale1.x", + "default": 1, + "label": "Scale X:", + "max": 50, + "min": 0, + "name": "scale_x", + "step": 0.005, + "type": "float" + }, + { + "control": "Scale1.y", + "default": 1, + "label": "Scale Y:", + "max": 50, + "min": 0, + "name": "scale_y", + "step": 0.005, + "type": "float" + } + ] + }, + "type": "shader" +} \ No newline at end of file diff --git a/addons/material_maker/nodes/translate.mmg b/addons/material_maker/nodes/translate.mmg new file mode 100644 index 00000000..d1ed35a6 --- /dev/null +++ b/addons/material_maker/nodes/translate.mmg @@ -0,0 +1,54 @@ +{ + "name": "translate", + "node_position": { + "x": 0, + "y": 0 + }, + "parameters": { + "translate_x": 0, + "translate_y": 0 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "vec4($uv, 0.0, 1.0)", + "label": "", + "name": "i", + "type": "rgba" + } + ], + "instance": "", + "name": "Translate", + "outputs": [ + { + "rgba": "$i($uv-vec2($translate_x, $translate_y))", + "type": "rgba" + } + ], + "parameters": [ + { + "control": "P1.x", + "default": 0, + "label": "Translate X:", + "max": 1, + "min": -1, + "name": "translate_x", + "step": 0.005, + "type": "float" + }, + { + "control": "P1.y", + "default": 0, + "label": "Translate Y:", + "max": 1, + "min": -1, + "name": "translate_y", + "step": 0.005, + "type": "float" + } + ] + }, + "type": "shader" +} \ No newline at end of file