struct Material {
	sampler2D ambient;
	sampler2D diffuse;
	sampler2D specular;
	float shininess;
};

struct Light {
	vec3 color;
	vec3 position;
	vec3 direction;
	vec3 attenuation; // constant, linear, quadratic
	vec2 cutoff; // inner, outer
	mat4 lightSpaceMatrix;
};
