{
	"files": [
		{
			"name": "Material_mesh_frag",
			"files": [
				"Material_mesh-webgl2.frag.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "wnormal",
					"type": "vec3"
				},
				{
					"name": "wposition",
					"type": "vec3"
				}
			],
			"outputs": [
				{
					"name": "fragColor",
					"type": "vec4"
				}
			],
			"uniforms": [
				{
					"name": "pointPos",
					"type": "vec3"
				},
				{
					"name": "receiveShadow",
					"type": "bool"
				},
				{
					"name": "lightProj",
					"type": "vec2"
				},
				{
					"name": "pointBias",
					"type": "float"
				},
				{
					"name": "shadowMapPoint",
					"type": "samplerCubeShadow[]"
				},
				{
					"name": "pointCol",
					"type": "vec3"
				},
				{
					"name": "shirr",
					"type": "vec4[]"
				},
				{
					"name": "envmapStrength",
					"type": "float"
				}
			],
			"types": []
		},
		{
			"name": "Material_mesh_vert",
			"files": [
				"Material_mesh-webgl2.vert.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "pos",
					"type": "vec4"
				},
				{
					"name": "nor",
					"type": "vec2"
				},
				{
					"name": "gl_VertexID",
					"type": "int"
				},
				{
					"name": "gl_InstanceID",
					"type": "int"
				}
			],
			"outputs": [
				{
					"name": "wnormal",
					"type": "vec3"
				},
				{
					"name": "wposition",
					"type": "vec3"
				}
			],
			"uniforms": [
				{
					"name": "N",
					"type": "mat3"
				},
				{
					"name": "W",
					"type": "mat4"
				},
				{
					"name": "WVP",
					"type": "mat4"
				}
			],
			"types": [
				{
					"name": "gl_PerVertex",
					"members": [
						{
							"type": "vec4",
							"name": "gl_Position"
						},
						{
							"type": "float",
							"name": "gl_PointSize"
						},
						{
							"type": "float[]",
							"name": "gl_ClipDistance"
						},
						{
							"type": "float[]",
							"name": "gl_CullDistance"
						}
					]
				}
			]
		},
		{
			"name": "Material_shadowmap_frag",
			"files": [
				"Material_shadowmap-webgl2.frag.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [],
			"outputs": [],
			"uniforms": [],
			"types": []
		},
		{
			"name": "Material_shadowmap_vert",
			"files": [
				"Material_shadowmap-webgl2.vert.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "pos",
					"type": "vec4"
				},
				{
					"name": "gl_VertexID",
					"type": "int"
				},
				{
					"name": "gl_InstanceID",
					"type": "int"
				}
			],
			"outputs": [],
			"uniforms": [
				{
					"name": "LWVP",
					"type": "mat4"
				}
			],
			"types": [
				{
					"name": "gl_PerVertex",
					"members": [
						{
							"type": "vec4",
							"name": "gl_Position"
						},
						{
							"type": "float",
							"name": "gl_PointSize"
						},
						{
							"type": "float[]",
							"name": "gl_ClipDistance"
						},
						{
							"type": "float[]",
							"name": "gl_CullDistance"
						}
					]
				}
			]
		},
		{
			"name": "World_World_frag",
			"files": [
				"World_World-webgl2.frag.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "normal",
					"type": "vec3"
				}
			],
			"outputs": [
				{
					"name": "fragColor",
					"type": "vec4"
				}
			],
			"uniforms": [],
			"types": []
		},
		{
			"name": "World_World_vert",
			"files": [
				"World_World-webgl2.vert.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "nor",
					"type": "vec3"
				},
				{
					"name": "pos",
					"type": "vec3"
				},
				{
					"name": "gl_VertexID",
					"type": "int"
				},
				{
					"name": "gl_InstanceID",
					"type": "int"
				}
			],
			"outputs": [
				{
					"name": "normal",
					"type": "vec3"
				}
			],
			"uniforms": [
				{
					"name": "SMVP",
					"type": "mat4"
				}
			],
			"types": [
				{
					"name": "gl_PerVertex",
					"members": [
						{
							"type": "vec4",
							"name": "gl_Position"
						},
						{
							"type": "float",
							"name": "gl_PointSize"
						},
						{
							"type": "float[]",
							"name": "gl_ClipDistance"
						},
						{
							"type": "float[]",
							"name": "gl_CullDistance"
						}
					]
				}
			]
		},
		{
			"name": "painter_colored_frag",
			"files": [
				"painter-colored-webgl2.frag.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "fragmentColor",
					"type": "vec4"
				}
			],
			"outputs": [
				{
					"name": "FragColor",
					"type": "vec4"
				}
			],
			"uniforms": [],
			"types": []
		},
		{
			"name": "painter_colored_vert",
			"files": [
				"painter-colored-webgl2.vert.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "vertexPosition",
					"type": "vec3"
				},
				{
					"name": "vertexColor",
					"type": "vec4"
				},
				{
					"name": "gl_VertexID",
					"type": "int"
				},
				{
					"name": "gl_InstanceID",
					"type": "int"
				}
			],
			"outputs": [
				{
					"name": "fragmentColor",
					"type": "vec4"
				}
			],
			"uniforms": [
				{
					"name": "projectionMatrix",
					"type": "mat4"
				}
			],
			"types": [
				{
					"name": "gl_PerVertex",
					"members": [
						{
							"type": "vec4",
							"name": "gl_Position"
						},
						{
							"type": "float",
							"name": "gl_PointSize"
						},
						{
							"type": "float[]",
							"name": "gl_ClipDistance"
						},
						{
							"type": "float[]",
							"name": "gl_CullDistance"
						}
					]
				}
			]
		},
		{
			"name": "painter_image_frag",
			"files": [
				"painter-image-webgl2.frag.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "texCoord",
					"type": "vec2"
				},
				{
					"name": "color",
					"type": "vec4"
				}
			],
			"outputs": [
				{
					"name": "FragColor",
					"type": "vec4"
				}
			],
			"uniforms": [
				{
					"name": "tex",
					"type": "sampler2D"
				}
			],
			"types": []
		},
		{
			"name": "painter_image_vert",
			"files": [
				"painter-image-webgl2.vert.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "vertexPosition",
					"type": "vec3"
				},
				{
					"name": "vertexUV",
					"type": "vec2"
				},
				{
					"name": "vertexColor",
					"type": "vec4"
				},
				{
					"name": "gl_VertexID",
					"type": "int"
				},
				{
					"name": "gl_InstanceID",
					"type": "int"
				}
			],
			"outputs": [
				{
					"name": "texCoord",
					"type": "vec2"
				},
				{
					"name": "color",
					"type": "vec4"
				}
			],
			"uniforms": [
				{
					"name": "projectionMatrix",
					"type": "mat4"
				}
			],
			"types": [
				{
					"name": "gl_PerVertex",
					"members": [
						{
							"type": "vec4",
							"name": "gl_Position"
						},
						{
							"type": "float",
							"name": "gl_PointSize"
						},
						{
							"type": "float[]",
							"name": "gl_ClipDistance"
						},
						{
							"type": "float[]",
							"name": "gl_CullDistance"
						}
					]
				}
			]
		},
		{
			"name": "painter_text_frag",
			"files": [
				"painter-text-webgl2.frag.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "fragmentColor",
					"type": "vec4"
				},
				{
					"name": "texCoord",
					"type": "vec2"
				}
			],
			"outputs": [
				{
					"name": "FragColor",
					"type": "vec4"
				}
			],
			"uniforms": [
				{
					"name": "tex",
					"type": "sampler2D"
				}
			],
			"types": []
		},
		{
			"name": "painter_text_vert",
			"files": [
				"painter-text-webgl2.vert.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "vertexPosition",
					"type": "vec3"
				},
				{
					"name": "vertexUV",
					"type": "vec2"
				},
				{
					"name": "vertexColor",
					"type": "vec4"
				},
				{
					"name": "gl_VertexID",
					"type": "int"
				},
				{
					"name": "gl_InstanceID",
					"type": "int"
				}
			],
			"outputs": [
				{
					"name": "texCoord",
					"type": "vec2"
				},
				{
					"name": "fragmentColor",
					"type": "vec4"
				}
			],
			"uniforms": [
				{
					"name": "projectionMatrix",
					"type": "mat4"
				}
			],
			"types": [
				{
					"name": "gl_PerVertex",
					"members": [
						{
							"type": "vec4",
							"name": "gl_Position"
						},
						{
							"type": "float",
							"name": "gl_PointSize"
						},
						{
							"type": "float[]",
							"name": "gl_ClipDistance"
						},
						{
							"type": "float[]",
							"name": "gl_CullDistance"
						}
					]
				}
			]
		},
		{
			"name": "painter_video_frag",
			"files": [
				"painter-video-webgl2.frag.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "texCoord",
					"type": "vec2"
				},
				{
					"name": "color",
					"type": "vec4"
				}
			],
			"outputs": [
				{
					"name": "FragColor",
					"type": "vec4"
				}
			],
			"uniforms": [
				{
					"name": "tex",
					"type": "sampler2D"
				}
			],
			"types": []
		},
		{
			"name": "painter_video_vert",
			"files": [
				"painter-video-webgl2.vert.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "vertexPosition",
					"type": "vec3"
				},
				{
					"name": "vertexUV",
					"type": "vec2"
				},
				{
					"name": "vertexColor",
					"type": "vec4"
				},
				{
					"name": "gl_VertexID",
					"type": "int"
				},
				{
					"name": "gl_InstanceID",
					"type": "int"
				}
			],
			"outputs": [
				{
					"name": "texCoord",
					"type": "vec2"
				},
				{
					"name": "color",
					"type": "vec4"
				}
			],
			"uniforms": [
				{
					"name": "projectionMatrix",
					"type": "mat4"
				}
			],
			"types": [
				{
					"name": "gl_PerVertex",
					"members": [
						{
							"type": "vec4",
							"name": "gl_Position"
						},
						{
							"type": "float",
							"name": "gl_PointSize"
						},
						{
							"type": "float[]",
							"name": "gl_ClipDistance"
						},
						{
							"type": "float[]",
							"name": "gl_CullDistance"
						}
					]
				}
			]
		},
		{
			"name": "pass_copy_frag",
			"files": [
				"pass_copy-webgl2.frag.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "texCoord",
					"type": "vec2"
				}
			],
			"outputs": [
				{
					"name": "fragColor",
					"type": "vec4"
				}
			],
			"uniforms": [
				{
					"name": "tex",
					"type": "sampler2D"
				}
			],
			"types": []
		},
		{
			"name": "pass_vert",
			"files": [
				"pass-webgl2.vert.essl"
			],
			"file_sizes": [
				1
			],
			"type": "shader",
			"inputs": [
				{
					"name": "pos",
					"type": "vec2"
				},
				{
					"name": "gl_VertexID",
					"type": "int"
				},
				{
					"name": "gl_InstanceID",
					"type": "int"
				}
			],
			"outputs": [
				{
					"name": "texCoord",
					"type": "vec2"
				}
			],
			"uniforms": [],
			"types": [
				{
					"name": "gl_PerVertex",
					"members": [
						{
							"type": "vec4",
							"name": "gl_Position"
						},
						{
							"type": "float",
							"name": "gl_PointSize"
						},
						{
							"type": "float[]",
							"name": "gl_ClipDistance"
						},
						{
							"type": "float[]",
							"name": "gl_CullDistance"
						}
					]
				}
			]
		}
	]
}