layout (location=0) in vec3 a_co;
layout (location=1) in vec4 a_norm;
layout (location=2) in vec2 a_uv;
-layout (location=3) in ivec4 a_lights;
#include "motion_vectors_vs.glsl"
uniform mat4x3 uMdl;
uniform mat4 uPv;
uniform mat4 uPvmPrev;
-uniform samplerBuffer uLightsArray;
out vec2 aUv;
out vec4 aNorm;
out vec3 aCo;
out vec3 aWorldCo;
-flat out vec4 light_colours[3];
-flat out vec4 light_positions[3];
void main()
{
aNorm = vec4( mat3(uMdl) * a_norm.xyz, a_norm.w );
aCo = a_co;
aWorldCo = world_pos0;
-
- // read lights
- light_colours[0] = texelFetch( uLightsArray, a_lights.x*2+0 );
- light_colours[1] = texelFetch( uLightsArray, a_lights.y*2+0 );
- light_colours[2] = texelFetch( uLightsArray, a_lights.z*2+0 );
- light_positions[0] = texelFetch( uLightsArray, a_lights.x*2+1 );
- light_positions[1] = texelFetch( uLightsArray, a_lights.y*2+1 );
- light_positions[2] = texelFetch( uLightsArray, a_lights.z*2+1 );
}