{
	"name": "pack_1x32_to_2x16",
	"node_position": {
		"x": 0,
		"y": 0
	},
	"parameters": {

	},
	"seed_int": 0,
	"shader_model": {
		"code": "",
		"global": [
			"const float pack_size = 256.0;",
			"",
			"vec2 pack_1x32_to_2x16(float s) {",
			"\treturn vec2(s - mod(s, 1.0/pack_size), mod(s, 1.0/pack_size)*pack_size);",
			"}",
			"",
			"float pack_2x16_to_1x32(vec2 s) {",
			"\treturn s.x + s.y/pack_size;",
			"}",
			"",
			"vec4 pack_2x32_to_4x16(vec2 s) {",
			"\treturn vec4(s.xy - vec2(mod(s.x, 1.0/pack_size), mod(s.y, 1.0/pack_size)) , vec2(mod(s.x, 1.0/pack_size), mod(s.y, 1.0/pack_size))*pack_size);",
			"}",
			"",
			"vec2 pack_4x16_to_2x32(vec4 s) {",
			"\treturn s.rg + s.ba/pack_size;",
			"}",
			""
		],
		"inputs": [
			{
				"default": "1.0",
				"function": true,
				"label": "",
				"name": "source",
				"type": "f"
			}
		],
		"instance": "",
		"name": "pack 1x32 to 2x16",
		"outputs": [
			{
				"rgb": "vec3(pack_1x32_to_2x16($source($uv)), 0.0)",
				"shortdesc": "source_big",
				"type": "rgb"
			}
		],
		"parameters": [

		]
	},
	"type": "shader"
}