mirror of
https://github.com/Relintai/mat_maker_gd.git
synced 2025-04-30 10:57:56 +02:00
51 lines
1.4 KiB
Plaintext
51 lines
1.4 KiB
Plaintext
{
|
|
"name": "make_tileable",
|
|
"node_position": {
|
|
"x": 0,
|
|
"y": 0
|
|
},
|
|
"parameters": {
|
|
"w": 0.1
|
|
},
|
|
"shader_model": {
|
|
"code": "",
|
|
"longdesc": "Creates a tileable version of its input image by moving different parts around to hide seams.",
|
|
"global": "",
|
|
"inputs": [
|
|
{
|
|
"default": "vec4(1.0)",
|
|
"function": true,
|
|
"label": "",
|
|
"longdesc": "The image to be made tileable",
|
|
"name": "in",
|
|
"shortdesc": "Input",
|
|
"type": "rgba"
|
|
}
|
|
],
|
|
"instance": "vec4 make_tileable_$(name)(vec2 uv, float w) {\n\tvec4 a = $in(uv);\n\tvec4 b = $in(fract(uv+vec2(0.5)));\n\tfloat coef_ab = sin(1.57079632679*clamp((length(uv-vec2(0.5))-0.5+w)/w, 0.0, 1.0));\n\tvec4 c = $in(fract(uv+vec2(0.25)));\n\tfloat coef_abc = sin(1.57079632679*clamp((min(min(length(uv-vec2(0.0, 0.5)), length(uv-vec2(0.5, 0.0))), min(length(uv-vec2(1.0, 0.5)), length(uv-vec2(0.5, 1.0))))-w)/w, 0.0, 1.0));\n\treturn mix(c, mix(a, b, coef_ab), coef_abc);\n}\n",
|
|
"name": "Make Tileable",
|
|
"outputs": [
|
|
{
|
|
"longdesc": "A tileable version of the input image",
|
|
"rgba": "make_tileable_$(name)($uv, 0.5*$w)",
|
|
"shortdesc": "Output",
|
|
"type": "rgba"
|
|
}
|
|
],
|
|
"parameters": [
|
|
{
|
|
"control": "None",
|
|
"default": 0.1,
|
|
"label": "",
|
|
"longdesc": "Width of the transition areas between parts of the input image",
|
|
"max": 0.25,
|
|
"min": 0,
|
|
"name": "w",
|
|
"shortdesc": "Width",
|
|
"step": 0.01,
|
|
"type": "float"
|
|
}
|
|
]
|
|
},
|
|
"type": "shader"
|
|
} |