{
	"name": "tones_step",
	"node_position": {
		"x": 0,
		"y": 0
	},
	"parameters": {
		"invert": false,
		"value": 0.5,
		"width": 0.1
	},
	"shader_model": {
		"code": "vec3 $(name_uv)_false = clamp(($in($uv).rgb-vec3($value))/max(0.0001, $width)+vec3(0.5), vec3(0.0), vec3(1.0));\nvec3 $(name_uv)_true = vec3(1.0)-$(name_uv)_false;",
		"global": "",
		"inputs": [
			{
				"default": "vec4(0.5 ,0.5, 0.5, 1.0)",
				"label": "",
				"longdesc": "The input image",
				"name": "in",
				"shortdesc": "Input",
				"type": "rgba"
			}
		],
		"instance": "",
		"longdesc": "Emphasizes dark and light tones around a specified value",
		"name": "Tones step",
		"outputs": [
			{
				"longdesc": "Shows the generated high contrast image",
				"rgba": "vec4($(name_uv)_$invert, $in($uv).a)",
				"shortdesc": "Output",
				"type": "rgba"
			}
		],
		"parameters": [
			{
				"control": "None",
				"default": 0.5,
				"label": "Value",
				"longdesc": "The value of the input that separate dark and light zones of the result",
				"max": 1,
				"min": 0,
				"name": "value",
				"shortdesc": "Value",
				"step": 0.01,
				"type": "float"
			},
			{
				"control": "None",
				"default": 1,
				"label": "Width",
				"longdesc": "The width (in tones space) of the transition area",
				"max": 1,
				"min": 0,
				"name": "width",
				"shortdesc": "width",
				"step": 0.01,
				"type": "float"
			},
			{
				"default": false,
				"label": "Invert",
				"longdesc": "Invert the generated image if set",
				"name": "invert",
				"shortdesc": "Invert",
				"type": "boolean"
			}
		],
		"shortdesc": "Tones step"
	},
	"type": "shader"
}