/* * CS5600 University of Utah * Charles McGarvey * mcgarvey@eng.utah.edu */ #define MAX_LIGHTS 2 attribute vec4 vPosition; attribute vec3 vNormal; attribute vec2 vTextureCoord; attribute vec4 vColor; uniform mat4 view; uniform mat4 model; uniform mat4 projection; uniform int numLights; uniform vec3 eye; uniform vec4 light[MAX_LIGHTS]; varying vec3 normal; varying vec2 textureCoord; varying vec4 color; varying vec3 lightDir[MAX_LIGHTS]; varying vec3 eyeVec; void main() { gl_Position = projection * view * model * vPosition; normal = vec3(model * vec4(vNormal, 0.0)); textureCoord = vTextureCoord; color = vColor; vec4 pos = model * vPosition; eyeVec = eye - pos.xyz; int i; for (i = 0; i < numLights; ++i) { lightDir[i] = light[i].xyz - pos.xyz; } }