struct LightSourceParameters { vec4 position; vec3 color; int type; vec3 attenuation; }; uniform mat4 world_obj_matrix; uniform mat3 world_obj_normal_matrix; uniform CameraTransform { mat4 eye_world_matrix; mat4 world_eye_matrix; mat4 clip_eye_matrix; mat4 eye_clip_matrix; }; layout(constant_id=auto) const int max_lights = 4; uniform Lighting { LightSourceParameters light_sources[max_lights]; vec4 ambient_color; vec4 fog_color; float fog_density; }; #pragma MSP stage(vertex) layout(location=0) in vec4 vertex; layout(location=1) in vec4 color; layout(location=2) in vec3 normal; layout(location=3) in vec3 tangent; layout(location=4) in ivec4 group; layout(location=5) in vec4 weight; layout(location=6) in vec4 texcoord; layout(location=7) in vec4 texcoord1; layout(location=8) in vec4 texcoord2; layout(location=9) in vec4 texcoord3; layout(location=13) in vec4 instance_transform[3];