{ "name": "pixelize", "node_position": { "x": 0, "y": 0 }, "parameters": { "c": 8, "d": 1, "x": 64, "y": 64 }, "shader_model": { "code": "vec2 $(name_uv)_uv = floor(($uv*vec2($x, $y)+vec2(0.5)));\nvec3 $(name_uv)_dither = fract(vec3(dot(vec2(171.0, 231.0), $(name_uv)_uv))/vec3(103.0, 71.0, 97.0));\n", "longdesc": "Creates a pixelated image from its input, and also quantifies the colors with optional dithering.", "global": "", "inputs": [ { "default": "vec3(1.0)", "label": "", "longdesc": "The image to be pixelated", "name": "i", "shortdesc": "Input", "type": "rgb" } ], "instance": "", "name": "Pixelize", "outputs": [ { "longdesc": "A pixelated version of the input image", "rgb": "floor($i($(name_uv)_uv/vec2($x, $y))*$c+$d*($(name_uv)_dither-vec3(0.5)))/$c", "shortdesc": "Output", "type": "rgb" } ], "parameters": [ { "control": "None", "default": 4, "label": "Columns:", "longdesc": "Number of pixel columns of the output", "max": 256, "min": 1, "name": "x", "shortdesc": "Columns", "step": 1, "type": "float" }, { "control": "None", "default": 4, "label": "Rows:", "longdesc": "Number of pixel rows of the output", "max": 256, "min": 1, "name": "y", "shortdesc": "Rows", "step": 1, "type": "float" }, { "control": "None", "default": 4, "label": "Levels:", "longdesc": "Number of color levels for each channel", "max": 32, "min": 2, "name": "c", "shortdesc": "Levels", "step": 1, "type": "float" }, { "control": "None", "default": 0.5, "label": "Dither:", "longdesc": "Amount of dithering in the output image", "max": 1, "min": 0, "name": "d", "shortdesc": "Dithering", "step": 0.01, "type": "float" } ] }, "type": "shader" }