Title: [OpenGL Shading] lighting.vsh Author: dajfarrell Pastebin link: http://pastebin.com/YRjt62CP First Edit: Wednesday 6th of June 2012 06:57:05 PM CDT Last Edit: Wednesday 6th of June 2012 06:57:05 PM CDT const int MAX_POINT_LIGHTS = 8;   struct PLPointLight {     vec4 vLightPosition;         vec3 vDiffuse;     vec3 vSpecular;         float fConstantAttenuation;     float fLinearAttenuation;     float fQuadraticAttenuation;     float fCubicAttenuation;     float fQuarticAttenuation; };   uniform mat4 pl_ModelViewMatrix; uniform mat4 pl_ProjectionMatrix; uniform mat4 pl_ModelViewProjectionMatrix;   uniform vec3 pl_GlobalAmbient;   uniform PLPointLight pl_PointLights[MAX_POINT_LIGHTS];   varying vec3 vNormal; varying vec4 vEyeCameraPosition;   void main() {     // Calculate and set position.     vec4 vPosition = pl_ModelViewProjectionMatrix * gl_Vertex;     gl_Position = vPosition;         // Set up normal matrix.     mat3 mNormalMatrix;     mNormalMatrix[0] = pl_ModelViewMatrix[0].xyz;     mNormalMatrix[1] = pl_ModelViewMatrix[1].xyz;     mNormalMatrix[2] = pl_ModelViewMatrix[2].xyz;           // Calculate normal vector.     vNormal = normalize(mNormalMatrix * gl_Normal);         // Calculate eye camera position.     vEyeCameraPosition = pl_ModelViewMatrix * gl_Vertex; }