diff --git a/material_maker/examples/mmm_donuts.ptex b/material_maker/examples/mmm_donuts.ptex new file mode 100644 index 0000000..a162c0a --- /dev/null +++ b/material_maker/examples/mmm_donuts.ptex @@ -0,0 +1,2721 @@ +{ + "connections": [ + { + "from": "graph", + "from_port": 0, + "to": "sdf3d_scale_2", + "to_port": 0 + }, + { + "from": "sdf3d_scale_2", + "from_port": 0, + "to": "sdf3d_repeat", + "to_port": 0 + }, + { + "from": "sdf3d_scale_2", + "from_port": 0, + "to": "sdf3d_repeat_2", + "to_port": 0 + }, + { + "from": "sdf3d_repeat_2", + "from_port": 0, + "to": "sdf3d_translate_3_2_2", + "to_port": 0 + }, + { + "from": "sdf3d_repeat", + "from_port": 0, + "to": "sdf3d_boolean", + "to_port": 0 + }, + { + "from": "sdf3d_translate_3_2_2", + "from_port": 0, + "to": "sdf3d_boolean", + "to_port": 1 + }, + { + "from": "sdf3d_boolean", + "from_port": 0, + "to": "sdf3d_translate_3_2_2_2", + "to_port": 0 + }, + { + "from": "sdf3d_translate_3_2_2_2", + "from_port": 0, + "to": "raymarching", + "to_port": 0 + }, + { + "from": "raymarching", + "from_port": 0, + "to": "10053_2", + "to_port": 0 + }, + { + "from": "raymarching", + "from_port": 2, + "to": "10053_2", + "to_port": 1 + }, + { + "from": "raymarching", + "from_port": 0, + "to": "10053_2_2", + "to_port": 0 + }, + { + "from": "raymarching", + "from_port": 2, + "to": "10053_2_2", + "to_port": 1 + }, + { + "from": "raymarching", + "from_port": 0, + "to": "10053", + "to_port": 0 + }, + { + "from": "raymarching", + "from_port": 2, + "to": "10053", + "to_port": 1 + }, + { + "from": "10053", + "from_port": 0, + "to": "mwf_create_map", + "to_port": 0 + }, + { + "from": "10053_2_2", + "from_port": 0, + "to": "mwf_create_map_3", + "to_port": 0 + }, + { + "from": "10053_2", + "from_port": 0, + "to": "mwf_create_map_2", + "to_port": 0 + }, + { + "from": "mwf_create_map", + "from_port": 0, + "to": "mwf_map", + "to_port": 0 + }, + { + "from": "mwf_create_map_3", + "from_port": 0, + "to": "mwf_map_2", + "to_port": 0 + }, + { + "from": "mwf_create_map_2", + "from_port": 0, + "to": "mwf_map_2_2", + "to_port": 0 + }, + { + "from": "uniform", + "from_port": 0, + "to": "mwf_map_2", + "to_port": 1 + }, + { + "from": "mwf_map_2", + "from_port": 0, + "to": "mwf_mix", + "to_port": 0 + }, + { + "from": "mwf_map_2", + "from_port": 1, + "to": "mwf_mix", + "to_port": 1 + }, + { + "from": "mwf_map_2", + "from_port": 2, + "to": "mwf_mix", + "to_port": 2 + }, + { + "from": "mwf_map_2", + "from_port": 3, + "to": "mwf_mix", + "to_port": 3 + }, + { + "from": "mwf_map_2", + "from_port": 4, + "to": "mwf_mix", + "to_port": 4 + }, + { + "from": "mwf_map_2_2", + "from_port": 0, + "to": "mwf_mix", + "to_port": 5 + }, + { + "from": "mwf_map_2_2", + "from_port": 1, + "to": "mwf_mix", + "to_port": 6 + }, + { + "from": "mwf_map_2_2", + "from_port": 2, + "to": "mwf_mix", + "to_port": 7 + }, + { + "from": "mwf_map_2_2", + "from_port": 3, + "to": "mwf_mix", + "to_port": 8 + }, + { + "from": "mwf_map_2_2", + "from_port": 4, + "to": "mwf_mix", + "to_port": 9 + }, + { + "from": "mwf_mix", + "from_port": 4, + "to": "mwf_mix_2", + "to_port": 9 + }, + { + "from": "mwf_mix", + "from_port": 3, + "to": "mwf_mix_2", + "to_port": 8 + }, + { + "from": "mwf_mix", + "from_port": 2, + "to": "mwf_mix_2", + "to_port": 7 + }, + { + "from": "mwf_mix", + "from_port": 1, + "to": "mwf_mix_2", + "to_port": 6 + }, + { + "from": "mwf_mix", + "from_port": 0, + "to": "mwf_mix_2", + "to_port": 5 + }, + { + "from": "mwf_mix_2", + "from_port": 0, + "to": "mwf_output", + "to_port": 0 + }, + { + "from": "mwf_mix_2", + "from_port": 1, + "to": "mwf_output", + "to_port": 1 + }, + { + "from": "mwf_mix_2", + "from_port": 2, + "to": "mwf_output", + "to_port": 2 + }, + { + "from": "mwf_mix_2", + "from_port": 3, + "to": "mwf_output", + "to_port": 3 + }, + { + "from": "mwf_mix_2", + "from_port": 4, + "to": "mwf_output", + "to_port": 4 + }, + { + "from": "mwf_output", + "from_port": 0, + "to": "Material", + "to_port": 0 + }, + { + "from": "mwf_output", + "from_port": 1, + "to": "Material", + "to_port": 1 + }, + { + "from": "mwf_output", + "from_port": 2, + "to": "Material", + "to_port": 2 + }, + { + "from": "mwf_output", + "from_port": 3, + "to": "Material", + "to_port": 3 + }, + { + "from": "mwf_output", + "from_port": 5, + "to": "Material", + "to_port": 5 + }, + { + "from": "uniform_2", + "from_port": 0, + "to": "mwf_map_2", + "to_port": 2 + }, + { + "from": "uniform_3", + "from_port": 0, + "to": "mwf_map", + "to_port": 1 + }, + { + "from": "uniform_2_2", + "from_port": 0, + "to": "mwf_map", + "to_port": 2 + }, + { + "from": "uniform_2_3_2", + "from_port": 0, + "to": "mwf_map_2_2", + "to_port": 2 + }, + { + "from": "raymarching", + "from_port": 1, + "to": "Material", + "to_port": 4 + }, + { + "from": "mwf_map", + "from_port": 4, + "to": "mwf_mix_3", + "to_port": 9 + }, + { + "from": "mwf_map", + "from_port": 3, + "to": "mwf_mix_3", + "to_port": 8 + }, + { + "from": "mwf_map", + "from_port": 2, + "to": "mwf_mix_3", + "to_port": 7 + }, + { + "from": "mwf_map", + "from_port": 1, + "to": "mwf_mix_3", + "to_port": 6 + }, + { + "from": "mwf_map", + "from_port": 0, + "to": "mwf_mix_3", + "to_port": 5 + }, + { + "from": "mwf_mix_3", + "from_port": 0, + "to": "mwf_mix_2", + "to_port": 0 + }, + { + "from": "mwf_mix_3", + "from_port": 1, + "to": "mwf_mix_2", + "to_port": 1 + }, + { + "from": "mwf_mix_3", + "from_port": 2, + "to": "mwf_mix_2", + "to_port": 2 + }, + { + "from": "mwf_mix_3", + "from_port": 3, + "to": "mwf_mix_2", + "to_port": 3 + }, + { + "from": "mwf_mix_3", + "from_port": 4, + "to": "mwf_mix_2", + "to_port": 4 + }, + { + "from": "uniform_greyscale", + "from_port": 0, + "to": "mwf_mix_3", + "to_port": 0 + }, + { + "from": "uniform_4", + "from_port": 0, + "to": "mwf_mix_3", + "to_port": 1 + }, + { + "from": "uniform_4_2", + "from_port": 0, + "to": "mwf_mix_3", + "to_port": 2 + }, + { + "from": "colorize", + "from_port": 0, + "to": "mwf_map_2_2", + "to_port": 1 + }, + { + "from": "perlin", + "from_port": 0, + "to": "colorize", + "to_port": 0 + }, + { + "from": "perlin_2", + "from_port": 0, + "to": "10053_2_2_2", + "to_port": 1 + }, + { + "from": "mwf_output", + "from_port": 6, + "to": "Material", + "to_port": 6 + } + ], + "label": "Graph", + "name": "53", + "node_position": { + "x": 0, + "y": 0 + }, + "nodes": [ + { + "name": "Material", + "node_position": { + "x": 1730.920044, + "y": -7.312012 + }, + "parameters": { + "albedo_color": { + "a": 1, + "b": 1, + "g": 1, + "r": 1, + "type": "Color" + }, + "ao_light_affect": 1, + "depth_scale": 0.3, + "emission_energy": 1, + "metallic": 1, + "normal_scale": 1, + "roughness": 1, + "size": 11, + "subsurf_scatter_strength": 0 + }, + "type": "material" + }, + { + "name": "raymarching", + "node_position": { + "x": -87.107498, + "y": 153.625015 + }, + "parameters": { + + }, + "shader_model": { + "code": "vec2 $(name_uv)_d = raymarch_$name($uv);\n", + "global": "", + "inputs": [ + { + "default": "0.0", + "function": true, + "label": "", + "name": "sdf", + "type": "sdf3dc" + } + ], + "instance": "vec2 raymarch_$name(vec2 uv) {\n\tvec3 ro = vec3(uv-vec2(0.5), 1.0);\n\tvec3 rd = vec3(0.0, 0.0, -1.0);\n\tfloat dO = 0.0;\n\tfloat c = 0.0;\n for (int i=0; i < 100; i++) {\n \tvec3 p = ro + rd*dO;\n vec2 dS = $sdf(p);\n dO += dS.x;\n\n if (dO >= 1.0) {\n\t\t\tbreak;\n\t\t} else if (dS.x < 0.0001) {\n\t\t\tc = dS.y;\n\t\t\tbreak;\n\t\t}\n }\n \n return vec2(dO, c);\n}\n\nvec3 normal_$name(vec3 p) {\n\tif (p.z <= 0.0) {\n\t\treturn vec3(0.0, 0.0, 1.0);\n\t}\n\n\tfloat d = $sdf(p).x;\n float e = .001;\n \n vec3 n = d - vec3(\n $sdf(p-vec3(e, 0.0, 0.0)).x,\n $sdf(p-vec3(0.0, e, 0.0)).x,\n $sdf(p-vec3(0.0, 0.0, e)).x);\n \n return vec3(-1.0, -1.0, -1.0)*normalize(n);\n}\n\n", + "name": "Raymarching", + "outputs": [ + { + "f": "1.0-$(name_uv)_d.x", + "type": "f" + }, + { + "rgb": "vec3(0.5)+0.5*normal_$name(vec3($uv-vec2(0.5), 1.0-$(name_uv)_d.x))", + "type": "rgb" + }, + { + "f": "$(name_uv)_d.y", + "type": "f" + } + ], + "parameters": [ + + ] + }, + "type": "shader" + }, + { + "connections": [ + { + "from": "sdf3d_translate_3_2_2", + "from_port": 0, + "to": "sdf3d_rounded_2", + "to_port": 0 + }, + { + "from": "sdf3d_rounded_2_2", + "from_port": 0, + "to": "sdf3d_boolean", + "to_port": 0 + }, + { + "from": "sdf3d_rounded_2", + "from_port": 0, + "to": "sdf3d_boolean", + "to_port": 1 + }, + { + "from": "sdf3d_torus", + "from_port": 0, + "to": "sdf3d_rounded_2_2", + "to_port": 0 + }, + { + "from": "sdf3d_torus_2", + "from_port": 0, + "to": "sdf3d_translate_3_2_2", + "to_port": 0 + }, + { + "from": "sdf3d_capsule", + "from_port": 0, + "to": "sdf3d_repeat", + "to_port": 0 + }, + { + "from": "sdf3d_repeat", + "from_port": 0, + "to": "sdf3d_boolean_2", + "to_port": 0 + }, + { + "from": "sdf3d_translate_3_2_2_2", + "from_port": 0, + "to": "sdf3d_boolean_2", + "to_port": 1 + }, + { + "from": "sdf3d_torus_2", + "from_port": 0, + "to": "sdf3d_translate_3_2_2_2", + "to_port": 0 + }, + { + "from": "sdf3d_boolean_2", + "from_port": 0, + "to": "sdf3d_rounded_2_3", + "to_port": 0 + }, + { + "from": "sdf3d_rounded_2_3", + "from_port": 0, + "to": "sdf3d_boolean_3", + "to_port": 1 + }, + { + "from": "sdf3d_boolean", + "from_port": 0, + "to": "sdf3d_boolean_3", + "to_port": 0 + }, + { + "from": "sdf3d_boolean_3", + "from_port": 0, + "to": "gen_outputs", + "to_port": 0 + } + ], + "label": "Donut", + "name": "graph", + "node_position": { + "x": -685.679138, + "y": -17.270287 + }, + "nodes": [ + { + "name": "sdf3d_rounded_2_3", + "node_position": { + "x": -552.595459, + "y": 249.420105 + }, + "parameters": { + "bevel": 0, + "c": 0.31, + "cx": 0, + "cy": 0, + "h": 0.08, + "k": 0.15, + "op": 0, + "r": 0.15, + "w": 0.28 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "sdf3d" + } + ], + "instance": "", + "name": "Color", + "outputs": [ + { + "sdf3dc": "vec2($in($uv), $c)", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "control": "None", + "default": 0, + "label": "", + "max": 1, + "min": 0, + "name": "c", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_boolean_2", + "node_position": { + "x": -557.354126, + "y": 320.541656 + }, + "parameters": { + "bevel": 0, + "cx": 0, + "cy": 0, + "h": 0.08, + "op": 2, + "r": 0.3, + "w": 0.28 + }, + "shader_model": { + "code": "", + "global": "vec2 sdf3dc_union(vec2 a, vec2 b) {\n\treturn vec2(min(a.x, b.x), mix(b.y, a.y, step(a.x, b.x)));\n}\nvec2 sdf3dc_sub(vec2 a, vec2 b) {\n\treturn vec2(max(a.x, -b.x), a.y);\n}\nvec2 sdf3dc_inter(vec2 a, vec2 b) {\n\treturn vec2(max(a.x, b.x), mix(a.y, b.y, step(a.x, b.x)));\n}\n", + "inputs": [ + { + "default": "vec2(0.0)", + "label": "", + "name": "in1", + "type": "sdf3dc" + }, + { + "default": "vec2(0.0)", + "label": "", + "name": "in2", + "type": "sdf3dc" + } + ], + "instance": "", + "name": "Boolean", + "outputs": [ + { + "sdf3dc": "$op($in1($uv), $in2($uv))", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "default": 2, + "label": "", + "name": "op", + "type": "enum", + "values": [ + { + "name": "Union", + "value": "sdf3dc_union" + }, + { + "name": "Subtraction", + "value": "sdf3dc_sub" + }, + { + "name": "Intersection", + "value": "sdf3dc_inter" + } + ] + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_translate_3_2_2_2", + "node_position": { + "x": -768.354126, + "y": 429.041656 + }, + "parameters": { + "x": 0, + "y": 0, + "z": 0.05 + }, + "type": "sdf3d_translate" + }, + { + "name": "sdf3d_repeat", + "node_position": { + "x": -768.854126, + "y": 276.291656 + }, + "parameters": { + "a": 0, + "r": 0.51, + "rx": 16, + "ry": 16, + "rz": 16, + "s": 0.3, + "x": 0.35, + "y": 0, + "z": 0 + }, + "shader_model": { + "code": "", + "global": "vec3 sdf3d_repeat(vec3 p, vec3 r, float seed, float randomness) {\n\tvec3 i = floor(p/r+0.5);\n\tvec3 a = rand3(i.xy+i.yz+vec2(seed))*6.28*randomness;\n\tp = mod(p+0.5*r,r)-0.5*r;\n\tvec3 rv;\n\tfloat c;\n\tfloat s;\n\tc = cos(a.x);\n\ts = sin(a.x);\n\trv.x = p.x;\n\trv.y = p.y*c+p.z*s;\n\trv.z = -p.y*s+p.z*c;\n\tc = cos(a.y);\n\ts = sin(a.y);\n\tp.x = rv.x*c+rv.z*s;\n\tp.y = rv.y;\n\tp.z = -rv.x*s+rv.z*c;\n\tc = cos(a.z);\n\ts = sin(a.z);\n\trv.x = p.x*c+p.y*s;\n\trv.y = -p.x*s+p.y*c;\n\trv.z = p.z;\n\treturn rv;\n}\n", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "sdf3dc" + } + ], + "instance": "", + "name": "Repeat", + "outputs": [ + { + "sdf3dc": "$in(sdf3d_repeat($uv, vec3(1.0/$rx, 1.0/$ry, 1.0/$rz), $seed, $r))", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "control": "None", + "default": 4, + "label": "X", + "max": 32, + "min": 1, + "name": "rx", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 4, + "label": "Y", + "max": 32, + "min": 1, + "name": "ry", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 1, + "label": "Z", + "max": 32, + "min": 1, + "name": "rz", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 0.5, + "label": "R", + "max": 1, + "min": 0, + "name": "r", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_capsule", + "node_position": { + "x": -786.854126, + "y": 197.291656 + }, + "parameters": { + "l": 0.02, + "r": 0.01, + "sx": 0.25, + "sy": 0.25, + "sz": 0.5 + }, + "type": "sdf3d_capsule" + }, + { + "name": "sdf3d_torus_2", + "node_position": { + "x": -768.354126, + "y": -82.208344 + }, + "parameters": { + "R": 0.3, + "r": 0.14, + "sx": 0.1, + "sy": 0.1, + "sz": 0.02 + }, + "type": "sdf3d_torus" + }, + { + "name": "sdf3d_torus", + "node_position": { + "x": -759.854126, + "y": -236.708344 + }, + "parameters": { + "R": 0.3, + "r": 0.15, + "sx": 0.1, + "sy": 0.1, + "sz": 0.02 + }, + "type": "sdf3d_torus" + }, + { + "name": "sdf3d_boolean", + "node_position": { + "x": -521.333313, + "y": -3.083344 + }, + "parameters": { + "bevel": 0, + "cx": 0, + "cy": 0, + "h": 0.08, + "op": 0, + "r": 0.3, + "w": 0.28 + }, + "shader_model": { + "code": "", + "global": "vec2 sdf3dc_union(vec2 a, vec2 b) {\n\treturn vec2(min(a.x, b.x), mix(b.y, a.y, step(a.x, b.x)));\n}\nvec2 sdf3dc_sub(vec2 a, vec2 b) {\n\treturn vec2(max(a.x, -b.x), a.y);\n}\nvec2 sdf3dc_inter(vec2 a, vec2 b) {\n\treturn vec2(max(a.x, b.x), mix(a.y, b.y, step(a.x, b.x)));\n}\n", + "inputs": [ + { + "default": "vec2(0.0)", + "label": "", + "name": "in1", + "type": "sdf3dc" + }, + { + "default": "vec2(0.0)", + "label": "", + "name": "in2", + "type": "sdf3dc" + } + ], + "instance": "", + "name": "Boolean", + "outputs": [ + { + "sdf3dc": "$op($in1($uv), $in2($uv))", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "default": 2, + "label": "", + "name": "op", + "type": "enum", + "values": [ + { + "name": "Union", + "value": "sdf3dc_union" + }, + { + "name": "Subtraction", + "value": "sdf3dc_sub" + }, + { + "name": "Intersection", + "value": "sdf3dc_inter" + } + ] + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_rounded_2_2", + "node_position": { + "x": -751.833313, + "y": -156.583344 + }, + "parameters": { + "bevel": 0, + "c": 0.08, + "cx": 0, + "cy": 0, + "h": 0.08, + "k": 0.15, + "op": 0, + "r": 0.15, + "w": 0.28 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "sdf3d" + } + ], + "instance": "", + "name": "Color", + "outputs": [ + { + "sdf3dc": "vec2($in($uv), $c)", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "control": "None", + "default": 0, + "label": "", + "max": 1, + "min": 0, + "name": "c", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_translate_3_2_2", + "node_position": { + "x": -774.833313, + "y": 16.666656 + }, + "parameters": { + "x": 0, + "y": 0, + "z": 0.03 + }, + "type": "sdf3d_translate" + }, + { + "name": "sdf3d_rounded_2", + "node_position": { + "x": -763.333313, + "y": 130.166656 + }, + "parameters": { + "bevel": 0, + "c": 0.87, + "cx": 0, + "cy": 0, + "h": 0.08, + "k": 0.15, + "op": 0, + "r": 0.15, + "w": 0.28 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "sdf3d" + } + ], + "instance": "", + "name": "Color", + "outputs": [ + { + "sdf3dc": "vec2($in($uv), $c)", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "control": "None", + "default": 0, + "label": "", + "max": 1, + "min": 0, + "name": "c", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_boolean_3", + "node_position": { + "x": -526.595459, + "y": 127.920105 + }, + "parameters": { + "bevel": 0, + "cx": 0, + "cy": 0, + "h": 0.08, + "op": 0, + "r": 0.3, + "w": 0.28 + }, + "shader_model": { + "code": "", + "global": "vec2 sdf3dc_union(vec2 a, vec2 b) {\n\treturn vec2(min(a.x, b.x), mix(b.y, a.y, step(a.x, b.x)));\n}\nvec2 sdf3dc_sub(vec2 a, vec2 b) {\n\treturn vec2(max(a.x, -b.x), a.y);\n}\nvec2 sdf3dc_inter(vec2 a, vec2 b) {\n\treturn vec2(max(a.x, b.x), mix(a.y, b.y, step(a.x, b.x)));\n}\n", + "inputs": [ + { + "default": "vec2(0.0)", + "label": "", + "name": "in1", + "type": "sdf3dc" + }, + { + "default": "vec2(0.0)", + "label": "", + "name": "in2", + "type": "sdf3dc" + } + ], + "instance": "", + "name": "Boolean", + "outputs": [ + { + "sdf3dc": "$op($in1($uv), $in2($uv))", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "default": 2, + "label": "", + "name": "op", + "type": "enum", + "values": [ + { + "name": "Union", + "value": "sdf3dc_union" + }, + { + "name": "Subtraction", + "value": "sdf3dc_sub" + }, + { + "name": "Intersection", + "value": "sdf3dc_inter" + } + ] + } + ] + }, + "type": "shader" + }, + { + "name": "gen_inputs", + "node_position": { + "x": -1086.854126, + "y": 105.729713 + }, + "parameters": { + + }, + "ports": [ + + ], + "type": "ios" + }, + { + "name": "gen_outputs", + "node_position": { + "x": -221.333313, + "y": 105.729713 + }, + "parameters": { + + }, + "ports": [ + { + "name": "port0", + "type": "sdf3dc" + } + ], + "type": "ios" + }, + { + "name": "gen_parameters", + "node_position": { + "x": -891.679138, + "y": -536.708374 + }, + "parameters": { + + }, + "type": "remote", + "widgets": [ + + ] + } + ], + "parameters": { + + }, + "type": "graph" + }, + { + "name": "sdf3d_repeat", + "node_position": { + "x": -508.122192, + "y": -14.881775 + }, + "parameters": { + "a": 0, + "r": 0.2, + "rx": 3, + "ry": 3, + "s": 0.3, + "x": 0.35, + "y": 0, + "z": 0 + }, + "shader_model": { + "code": "", + "global": "vec3 repeat(vec3 p, vec3 r, float seed, float randomness) {\n\tvec3 a = (rand3(floor(mod((p.xy+0.5*r.xy)/r.xy, 1.0/r.xy)+vec2(seed)))-0.5)*6.28*randomness;\n\tp = mod(p+0.5*r,r)-0.5*r;\n\tvec3 rv;\n\tfloat c;\n\tfloat s;\n\tc = cos(a.x);\n\ts = sin(a.x);\n\trv.x = p.x;\n\trv.y = p.y*c+p.z*s;\n\trv.z = -p.y*s+p.z*c;\n\tc = cos(a.y);\n\ts = sin(a.y);\n\tp.x = rv.x*c+rv.z*s;\n\tp.y = rv.y;\n\tp.z = -rv.x*s+rv.z*c;\n\tc = cos(a.z);\n\ts = sin(a.z);\n\trv.x = p.x*c+p.y*s;\n\trv.y = -p.x*s+p.y*c;\n\trv.z = p.z;\n\treturn rv;\n}\n", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "sdf3dc" + } + ], + "instance": "", + "name": "Repeat", + "outputs": [ + { + "sdf3dc": "$in(repeat($uv, vec3(1.0/$rx, 1.0/$ry, 0.0), $seed, $r))", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "control": "None", + "default": 4, + "label": "X", + "max": 32, + "min": 1, + "name": "rx", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 4, + "label": "Y", + "max": 32, + "min": 1, + "name": "ry", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 0.5, + "label": "R", + "max": 1, + "min": 0, + "name": "r", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_scale_2", + "node_position": { + "x": -690.122192, + "y": 57.118225 + }, + "parameters": { + "a": 0, + "s": 0.37, + "x": 0.35, + "y": 0, + "z": 0 + }, + "shader_model": { + "code": "vec2 $(name_uv)_in = $in(($uv)/$s);", + "global": "", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "sdf3dc" + } + ], + "instance": "", + "name": "Scale", + "outputs": [ + { + "sdf3dc": "vec2($(name_uv)_in.x*$s, $(name_uv)_in.y)", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "control": "Scale1.x", + "default": 1, + "label": "", + "max": 5, + "min": 0, + "name": "s", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_repeat_2", + "node_position": { + "x": -506.122192, + "y": 110.618225 + }, + "parameters": { + "a": 0, + "r": 0.33, + "rx": 3, + "ry": 3, + "s": 0.3, + "x": 0.35, + "y": 0, + "z": 0 + }, + "shader_model": { + "code": "", + "global": "vec3 repeat(vec3 p, vec3 r, float seed, float randomness) {\n\tvec3 a = (rand3(floor(mod((p.xy+0.5*r.xy)/r.xy, 1.0/r.xy)+vec2(seed)))-0.5)*6.28*randomness;\n\tp = mod(p+0.5*r,r)-0.5*r;\n\tvec3 rv;\n\tfloat c;\n\tfloat s;\n\tc = cos(a.x);\n\ts = sin(a.x);\n\trv.x = p.x;\n\trv.y = p.y*c+p.z*s;\n\trv.z = -p.y*s+p.z*c;\n\tc = cos(a.y);\n\ts = sin(a.y);\n\tp.x = rv.x*c+rv.z*s;\n\tp.y = rv.y;\n\tp.z = -rv.x*s+rv.z*c;\n\tc = cos(a.z);\n\ts = sin(a.z);\n\trv.x = p.x*c+p.y*s;\n\trv.y = -p.x*s+p.y*c;\n\trv.z = p.z;\n\treturn rv;\n}\n", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "sdf3dc" + } + ], + "instance": "", + "name": "Repeat", + "outputs": [ + { + "sdf3dc": "$in(repeat($uv, vec3(1.0/$rx, 1.0/$ry, 0.0), $seed, $r))", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "control": "None", + "default": 4, + "label": "X", + "max": 32, + "min": 1, + "name": "rx", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 4, + "label": "Y", + "max": 32, + "min": 1, + "name": "ry", + "step": 1, + "type": "float" + }, + { + "control": "None", + "default": 0.5, + "label": "R", + "max": 1, + "min": 0, + "name": "r", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_translate_3_2_2", + "node_position": { + "x": -505.872192, + "y": 213.034912 + }, + "parameters": { + "x": 0.14, + "y": 0.11, + "z": 0.1 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "sdf3dc" + } + ], + "instance": "", + "name": "Translate", + "outputs": [ + { + "sdf3dc": "$in($uv-vec3($x, $y, $z))", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "control": "P1.x", + "default": 0, + "label": "X", + "max": 1, + "min": -1, + "name": "x", + "step": 0.01, + "type": "float" + }, + { + "control": "P1.y", + "default": 0, + "label": "Y", + "max": 1, + "min": -1, + "name": "y", + "step": 0.01, + "type": "float" + }, + { + "control": "None", + "default": 0, + "label": "Z", + "max": 1, + "min": -1, + "name": "z", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_boolean", + "node_position": { + "x": -270.800781, + "y": 120.820618 + }, + "parameters": { + "bevel": 0, + "cx": 0, + "cy": 0, + "h": 0.08, + "op": 0, + "r": 0.3, + "w": 0.28 + }, + "shader_model": { + "code": "", + "global": "vec2 sdf3dc_union(vec2 a, vec2 b) {\n\treturn vec2(min(a.x, b.x), mix(b.y, a.y, step(a.x, b.x)));\n}\nvec2 sdf3dc_sub(vec2 a, vec2 b) {\n\treturn vec2(max(a.x, -b.x), a.y);\n}\nvec2 sdf3dc_inter(vec2 a, vec2 b) {\n\treturn vec2(max(a.x, b.x), mix(a.y, b.y, step(a.x, b.x)));\n}\n", + "inputs": [ + { + "default": "vec2(0.0)", + "label": "", + "name": "in1", + "type": "sdf3dc" + }, + { + "default": "vec2(0.0)", + "label": "", + "name": "in2", + "type": "sdf3dc" + } + ], + "instance": "", + "name": "Boolean", + "outputs": [ + { + "sdf3dc": "$op($in1($uv), $in2($uv))", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "default": 2, + "label": "", + "name": "op", + "type": "enum", + "values": [ + { + "name": "Union", + "value": "sdf3dc_union" + }, + { + "name": "Subtraction", + "value": "sdf3dc_sub" + }, + { + "name": "Intersection", + "value": "sdf3dc_inter" + } + ] + } + ] + }, + "type": "shader" + }, + { + "name": "sdf3d_translate_3_2_2_2", + "node_position": { + "x": -281.800781, + "y": 194.820618 + }, + "parameters": { + "x": 0, + "y": 0, + "z": 0.1 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "sdf3dc" + } + ], + "instance": "", + "name": "Translate", + "outputs": [ + { + "sdf3dc": "$in($uv-vec3($x, $y, $z))", + "type": "sdf3dc" + } + ], + "parameters": [ + { + "control": "P1.x", + "default": 0, + "label": "X", + "max": 1, + "min": -1, + "name": "x", + "step": 0.01, + "type": "float" + }, + { + "control": "P1.y", + "default": 0, + "label": "Y", + "max": 1, + "min": -1, + "name": "y", + "step": 0.01, + "type": "float" + }, + { + "control": "None", + "default": 0, + "label": "Z", + "max": 1, + "min": -1, + "name": "z", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "color": { + "a": 1, + "b": 1, + "g": 0.0625, + "r": 0, + "type": "Color" + }, + "name": "comment", + "node_position": { + "x": -718.245239, + "y": -47.346039 + }, + "parameters": { + "size": 4 + }, + "size": { + "x": 790, + "y": 394.999969 + }, + "text": "\n", + "title": "Render donuts with color indexes", + "type": "comment" + }, + { + "name": "10053", + "node_position": { + "x": 117.221985, + "y": -12.346039 + }, + "parameters": { + "v": 0.31 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "1.0", + "label": "Label", + "name": "mul", + "type": "f" + }, + { + "default": "0.0", + "label": "", + "name": "in", + "type": "f" + } + ], + "instance": "", + "name": "MulDetect", + "outputs": [ + { + "f": "$mul($uv)*(1.0-10.0*($in($uv)-$v)*($in($uv)-$v))", + "type": "f" + } + ], + "parameters": [ + { + "control": "None", + "default": 0.5, + "label": "", + "max": 1, + "min": 0, + "name": "v", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "10053_2", + "node_position": { + "x": 121.462341, + "y": 395.472137 + }, + "parameters": { + "v": 0.08 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "1.0", + "label": "Label", + "name": "mul", + "type": "f" + }, + { + "default": "0.0", + "label": "", + "name": "in", + "type": "f" + } + ], + "instance": "", + "name": "MulDetect", + "outputs": [ + { + "f": "$mul($uv)*(1.0-10.0*($in($uv)-$v)*($in($uv)-$v))", + "type": "f" + } + ], + "parameters": [ + { + "control": "None", + "default": 0.5, + "label": "", + "max": 1, + "min": 0, + "name": "v", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "10053_2_2", + "node_position": { + "x": 113.786713, + "y": 170.138794 + }, + "parameters": { + "v": 0.87 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "1.0", + "label": "Label", + "name": "mul", + "type": "f" + }, + { + "default": "0.0", + "label": "", + "name": "in", + "type": "f" + } + ], + "instance": "", + "name": "MulDetect", + "outputs": [ + { + "f": "$mul($uv)*clamp((1.0-10.0*($in($uv)-$v)*($in($uv)-$v)), 0.0, 1.0)", + "type": "f" + } + ], + "parameters": [ + { + "control": "None", + "default": 0.5, + "label": "", + "max": 1, + "min": 0, + "name": "v", + "step": 0.01, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "mwf_create_map", + "node_position": { + "x": 358.843994, + "y": -128.630447 + }, + "parameters": { + "angle": 0, + "height": 1 + }, + "type": "mwf_create_map" + }, + { + "name": "mwf_create_map_2", + "node_position": { + "x": 369.417175, + "y": 399.369568 + }, + "parameters": { + "angle": 0, + "height": 1 + }, + "type": "mwf_create_map" + }, + { + "name": "mwf_create_map_3", + "node_position": { + "x": 378.417175, + "y": 137.369568 + }, + "parameters": { + "angle": 0, + "height": 1 + }, + "type": "mwf_create_map" + }, + { + "name": "mwf_map", + "node_position": { + "x": 652.417175, + "y": -128.630447 + }, + "parameters": { + + }, + "type": "mwf_map" + }, + { + "name": "mwf_map_2", + "node_position": { + "x": 647.693909, + "y": 136.369553 + }, + "parameters": { + + }, + "type": "mwf_map" + }, + { + "name": "mwf_map_2_2", + "node_position": { + "x": 651.693909, + "y": 406.119568 + }, + "parameters": { + + }, + "type": "mwf_map" + }, + { + "name": "uniform", + "node_position": { + "x": 415.193909, + "y": 217.119568 + }, + "parameters": { + "color": { + "a": 1, + "b": 0, + "g": 0.165865, + "r": 0.280273, + "type": "Color" + } + }, + "type": "uniform" + }, + { + "name": "mwf_mix", + "node_position": { + "x": 864.268921, + "y": 189.119568 + }, + "parameters": { + + }, + "type": "mwf_mix" + }, + { + "name": "mwf_mix_2", + "node_position": { + "x": 1141.761108, + "y": -8.130447 + }, + "parameters": { + + }, + "type": "mwf_mix" + }, + { + "connections": [ + { + "from": "colorize_3", + "from_port": 0, + "to": "gen_outputs", + "to_port": 6 + }, + { + "from": "gen_inputs", + "from_port": 0, + "to": "colorize_3", + "to_port": 0 + }, + { + "from": "gen_inputs", + "from_port": 0, + "to": "gaussian_blur", + "to_port": 0 + }, + { + "from": "gaussian_blur", + "from_port": 0, + "to": "gen_outputs", + "to_port": 5 + }, + { + "from": "gen_inputs", + "from_port": 2, + "to": "decompose", + "to_port": 0 + }, + { + "from": "decompose", + "from_port": 1, + "to": "gen_outputs", + "to_port": 2 + }, + { + "from": "decompose", + "from_port": 2, + "to": "gen_outputs", + "to_port": 1 + }, + { + "from": "blend_2", + "from_port": 0, + "to": "gen_outputs", + "to_port": 4 + }, + { + "from": "gen_inputs", + "from_port": 1, + "to": "gen_outputs", + "to_port": 0 + }, + { + "from": "gen_inputs", + "from_port": 3, + "to": "gen_outputs", + "to_port": 3 + }, + { + "from": "brightness_contrast", + "from_port": 0, + "to": "blend_2", + "to_port": 0 + }, + { + "from": "gen_inputs", + "from_port": 4, + "to": "brightness_contrast", + "to_port": 0 + }, + { + "from": "gen_inputs", + "from_port": 0, + "to": "normal_map_2", + "to_port": 0 + }, + { + "from": "normal_map_2", + "from_port": 0, + "to": "blend_2", + "to_port": 1 + } + ], + "label": "Output", + "name": "mwf_output", + "node_position": { + "x": 1405.761108, + "y": -1.630447 + }, + "nodes": [ + { + "name": "colorize_3", + "node_position": { + "x": -939.637451, + "y": 871.842407 + }, + "parameters": { + "gradient": { + "interpolation": 1, + "points": [ + { + "a": 1, + "b": 1, + "g": 1, + "pos": 0, + "r": 1 + }, + { + "a": 1, + "b": 0, + "g": 0, + "pos": 1, + "r": 0 + } + ], + "type": "Gradient" + } + }, + "type": "colorize" + }, + { + "connections": [ + { + "from": "buffer", + "from_port": 0, + "to": "blurx_convolution", + "to_port": 0 + }, + { + "from": "buffer_2", + "from_port": 0, + "to": "blurx_convolution_2", + "to_port": 0 + }, + { + "from": "gen_inputs", + "from_port": 0, + "to": "buffer", + "to_port": 0 + }, + { + "from": "blend", + "from_port": 0, + "to": "colorize", + "to_port": 0 + }, + { + "from": "blurx_convolution", + "from_port": 0, + "to": "buffer_2", + "to_port": 0 + }, + { + "from": "blurx_convolution_2", + "from_port": 0, + "to": "blend", + "to_port": 1 + }, + { + "from": "buffer", + "from_port": 0, + "to": "blend", + "to_port": 0 + }, + { + "from": "colorize", + "from_port": 0, + "to": "_2", + "to_port": 0 + }, + { + "from": "_2", + "from_port": 0, + "to": "gen_outputs", + "to_port": 0 + } + ], + "label": "Occlusion", + "name": "gaussian_blur", + "node_position": { + "x": -994.845825, + "y": 786.968262 + }, + "nodes": [ + { + "convolution_params": { + "input_type": "rgba", + "matrix_function": "exp(-0.5*(pow(x/sigma, 2.0)))/(6.28318530718 *sigma*sigma)", + "normalized": true, + "output_type": "rgba", + "parameters": [ + { + "max": 50, + "min": 0.05, + "name": "sigma", + "type": "float" + } + ], + "x": 50, + "y": 0 + }, + "name": "blurx_convolution", + "node_position": { + "x": -407.5, + "y": -192.5 + }, + "parameters": { + "sigma": 50, + "size": 10 + }, + "type": "convolution" + }, + { + "name": "buffer_2", + "node_position": { + "x": -404.875, + "y": -116.625 + }, + "parameters": { + "lod": 0, + "size": 10 + }, + "type": "buffer" + }, + { + "convolution_params": { + "input_type": "rgba", + "matrix_function": "exp(-0.5*(pow(y/sigma, 2.0)))/(6.28318530718 *sigma*sigma)", + "normalized": true, + "output_type": "rgba", + "parameters": [ + { + "max": 50, + "min": 0.05, + "name": "sigma", + "type": "float" + } + ], + "x": 0, + "y": 50 + }, + "name": "blurx_convolution_2", + "node_position": { + "x": -407.125, + "y": -44.375 + }, + "parameters": { + "sigma": 50, + "size": 10 + }, + "type": "convolution" + }, + { + "name": "buffer", + "node_position": { + "x": -408.25, + "y": -265.75 + }, + "parameters": { + "lod": 0, + "size": 10 + }, + "type": "buffer" + }, + { + "name": "gen_parameters", + "node_position": { + "x": -447.666626, + "y": -370.666656 + }, + "parameters": { + "param0": 10, + "param1": 50, + "param2": 4.9 + }, + "type": "remote", + "widgets": [ + { + "label": "Grid size:", + "linked_widgets": [ + { + "node": "buffer", + "widget": "size" + }, + { + "node": "blurx_convolution", + "widget": "size" + }, + { + "node": "buffer_2", + "widget": "size" + }, + { + "node": "blurx_convolution_2", + "widget": "size" + } + ], + "name": "param0", + "type": "linked_control" + }, + { + "label": "Strength", + "linked_widgets": [ + { + "node": "_2", + "widget": "g" + } + ], + "name": "param2", + "type": "linked_control" + } + ] + }, + { + "name": "gen_inputs", + "node_position": { + "x": -585.666626, + "y": -112.392853 + }, + "parameters": { + + }, + "ports": [ + { + "name": "port0", + "type": "rgba" + } + ], + "type": "ios" + }, + { + "name": "gen_outputs", + "node_position": { + "x": 55.547607, + "y": -133.392853 + }, + "parameters": { + + }, + "ports": [ + { + "name": "port0", + "type": "rgba" + } + ], + "type": "ios" + }, + { + "name": "blend", + "node_position": { + "x": -420.79895, + "y": 27.16272 + }, + "parameters": { + "amount": 1, + "blend_type": 11 + }, + "type": "blend" + }, + { + "name": "colorize", + "node_position": { + "x": -167.79895, + "y": -178.83728 + }, + "parameters": { + "gradient": { + "interpolation": 1, + "points": [ + { + "a": 1, + "b": 1, + "g": 1, + "pos": 0, + "r": 1 + }, + { + "a": 1, + "b": 0, + "g": 0, + "pos": 1, + "r": 0 + } + ], + "type": "Gradient" + } + }, + "type": "colorize" + }, + { + "name": "_2", + "node_position": { + "x": -134.403687, + "y": -110.29187 + }, + "parameters": { + "g": 4.9 + }, + "shader_model": { + "code": "", + "global": "", + "inputs": [ + { + "default": "0.0", + "label": "", + "name": "in", + "type": "f" + } + ], + "instance": "", + "name": "", + "outputs": [ + { + "f": "pow($in($uv), $g)", + "type": "f" + } + ], + "parameters": [ + { + "default": 1, + "label": "", + "max": 2, + "min": 0, + "name": "g", + "step": 0.1, + "type": "float" + } + ] + }, + "type": "shader" + } + ], + "parameters": { + "param0": 10, + "param1": 50, + "param2": 4.9 + }, + "type": "graph" + }, + { + "name": "decompose", + "node_position": { + "x": -924.371338, + "y": 570.25 + }, + "parameters": { + + }, + "type": "decompose" + }, + { + "name": "blend_2", + "node_position": { + "x": -931.305542, + "y": 677.328491 + }, + "parameters": { + "amount": 0, + "blend_type": 4 + }, + "type": "blend" + }, + { + "name": "gen_inputs", + "node_position": { + "x": -1336.805542, + "y": 597.758606 + }, + "parameters": { + + }, + "ports": [ + { + "name": "Height", + "type": "f" + }, + { + "name": "Albedo", + "type": "rgb" + }, + { + "name": "ORM", + "type": "rgb" + }, + { + "name": "Emission", + "type": "rgb" + }, + { + "name": "Normal", + "type": "rgb" + } + ], + "type": "ios" + }, + { + "name": "gen_outputs", + "node_position": { + "x": -635.305542, + "y": 597.758606 + }, + "parameters": { + + }, + "ports": [ + { + "name": "Albedo", + "type": "rgb" + }, + { + "name": "Metallic", + "type": "f" + }, + { + "name": "Roughness", + "type": "f" + }, + { + "name": "Emission", + "type": "rgb" + }, + { + "name": "Normal", + "type": "rgb" + }, + { + "name": "Occlusion", + "type": "f" + }, + { + "name": "Depth", + "type": "f" + } + ], + "type": "ios" + }, + { + "name": "gen_parameters", + "node_position": { + "x": -1100.881836, + "y": 438.25 + }, + "parameters": { + "param0": 0, + "param1": 10, + "param2": 4.9 + }, + "type": "remote", + "widgets": [ + { + "label": "Occlusion", + "linked_widgets": [ + { + "node": "gaussian_blur", + "widget": "param2" + } + ], + "name": "param2", + "type": "linked_control" + }, + { + "label": "Mat Normal", + "linked_widgets": [ + { + "node": "blend_2", + "widget": "amount" + } + ], + "name": "param0", + "type": "linked_control" + } + ] + }, + { + "name": "brightness_contrast", + "node_position": { + "x": -1177.223877, + "y": 677.062317 + }, + "parameters": { + "brightness": 0, + "contrast": 1, + "steps": 6 + }, + "type": "brightness_contrast" + }, + { + "name": "normal_map_2", + "node_position": { + "x": -1152.5, + "y": 544.75 + }, + "parameters": { + "amount": 0.5, + "param0": 10, + "param1": 1.02, + "param2": 0, + "param3": 0, + "param4": 1, + "size": 4 + }, + "type": "normal_map" + } + ], + "parameters": { + "param0": 0, + "param1": 10, + "param2": 4.9 + }, + "type": "graph" + }, + { + "name": "uniform_2", + "node_position": { + "x": 415.732727, + "y": 272.369568 + }, + "parameters": { + "color": { + "a": 1, + "b": 0, + "g": 0.105882, + "r": 1, + "type": "Color" + } + }, + "type": "uniform" + }, + { + "name": "uniform_2_2", + "node_position": { + "x": 408.002197, + "y": 17.994553 + }, + "parameters": { + "color": { + "a": 1, + "b": 0, + "g": 1, + "r": 1, + "type": "Color" + } + }, + "type": "uniform" + }, + { + "name": "uniform_3", + "node_position": { + "x": 407.463379, + "y": -37.255447 + }, + "parameters": { + "color": { + "a": 1, + "b": 0.914063, + "g": 0, + "r": 1, + "type": "Color" + } + }, + "type": "uniform" + }, + { + "name": "uniform_2_3_2", + "node_position": { + "x": 413.800964, + "y": 708.119568 + }, + "parameters": { + "color": { + "a": 1, + "b": 0, + "g": 0.886275, + "r": 1, + "type": "Color" + } + }, + "type": "uniform" + }, + { + "name": "mwf_mix_3", + "node_position": { + "x": 857.856567, + "y": -274.880432 + }, + "parameters": { + + }, + "type": "mwf_mix" + }, + { + "name": "uniform_greyscale", + "node_position": { + "x": 398.856934, + "y": -337.380432 + }, + "parameters": { + "color": 0.05 + }, + "type": "uniform_greyscale" + }, + { + "name": "uniform_4", + "node_position": { + "x": 400.856934, + "y": -273.880432 + }, + "parameters": { + "color": { + "a": 1, + "b": 1, + "g": 0.415686, + "r": 0, + "type": "Color" + } + }, + "type": "uniform" + }, + { + "name": "uniform_4_2", + "node_position": { + "x": 399.718628, + "y": -217.130432 + }, + "parameters": { + "color": { + "a": 1, + "b": 0, + "g": 1, + "r": 0, + "type": "Color" + } + }, + "type": "uniform" + }, + { + "name": "perlin", + "node_position": { + "x": 358.92984, + "y": 508.119568 + }, + "parameters": { + "iterations": 8, + "persistence": 0.95, + "scale_x": 4, + "scale_y": 4 + }, + "type": "perlin" + }, + { + "name": "colorize", + "node_position": { + "x": 378.92981, + "y": 637.119568 + }, + "parameters": { + "gradient": { + "interpolation": 0, + "points": [ + { + "a": 1, + "b": 0.240099, + "g": 0.613979, + "pos": 0, + "r": 0.869792 + }, + { + "a": 1, + "b": 0.233941, + "g": 0.553521, + "pos": 1, + "r": 0.802083 + } + ], + "type": "Gradient" + } + }, + "type": "colorize" + }, + { + "color": { + "a": 1, + "b": 0, + "g": 0.5, + "r": 1, + "type": "Color" + }, + "name": "comment_2", + "node_position": { + "x": 97.468719, + "y": -49.148132 + }, + "parameters": { + "size": 4 + }, + "size": { + "x": 242, + "y": 533 + }, + "text": "", + "title": "Separate colors", + "type": "comment" + }, + { + "color": { + "a": 1, + "b": 0, + "g": 1, + "r": 0.09375, + "type": "Color" + }, + "name": "comment_2_2", + "node_position": { + "x": 346.962891, + "y": -373.398132 + }, + "parameters": { + "size": 4 + }, + "size": { + "x": 464, + "y": 1149 + }, + "text": "", + "title": "Create maps and materials and combine them", + "type": "comment" + }, + { + "color": { + "a": 1, + "b": 0, + "g": 0.6875, + "r": 1, + "type": "Color" + }, + "name": "comment_2_2_2", + "node_position": { + "x": 838.947449, + "y": -317.398193 + }, + "parameters": { + "size": 4 + }, + "size": { + "x": 837, + "y": 783 + }, + "text": "", + "title": "Mix the result and generate output", + "type": "comment" + }, + { + "name": "10053_2_2_2", + "node_position": { + "x": -158.775818, + "y": -271.032806 + }, + "parameters": { + "t": 0.009, + "v": 0.47 + }, + "shader_model": { + "code": "float $(name_uv)_d = ($in($uv)-$v)/$t;", + "global": "", + "inputs": [ + { + "default": "1.0", + "label": "", + "name": "mul", + "type": "f" + }, + { + "default": "0.0", + "label": "", + "name": "in", + "type": "f" + } + ], + "instance": "", + "name": "MulDetect", + "outputs": [ + { + "f": "$mul($uv)*clamp(1.0-$(name_uv)_d*$(name_uv)_d, 0.0, 1.0)", + "type": "f" + } + ], + "parameters": [ + { + "control": "None", + "default": 0.5, + "label": "Value", + "max": 1, + "min": 0, + "name": "v", + "step": 0.01, + "type": "float" + }, + { + "control": "None", + "default": 0.1, + "label": "Tolerance", + "max": 1, + "min": 0.01, + "name": "t", + "step": 0.001, + "type": "float" + } + ] + }, + "type": "shader" + }, + { + "name": "perlin_2", + "node_position": { + "x": -463.275513, + "y": -249.782776 + }, + "parameters": { + "iterations": 3, + "persistence": 0.5, + "scale_x": 4, + "scale_y": 4 + }, + "type": "perlin" + } + ], + "parameters": { + + }, + "type": "graph" +} \ No newline at end of file diff --git a/material_maker/examples/mmm_donuts.ptex.import b/material_maker/examples/mmm_donuts.ptex.import new file mode 100644 index 0000000..7e340d3 --- /dev/null +++ b/material_maker/examples/mmm_donuts.ptex.import @@ -0,0 +1,15 @@ +[remap] + +importer="material_maker.import" +type="SpatialMaterial" +path="res://.import/mmm_donuts.ptex-d9714f6116f301de983c7748e4d0cb0d.tres" + +[deps] + +source_file="res://material_maker/examples/mmm_donuts.ptex" +dest_files=[ "res://.import/mmm_donuts.ptex-d9714f6116f301de983c7748e4d0cb0d.tres" ] + +[params] + +render=false +scale=1.0