Title: [OpenGL Shading] pointLighting.vsh Author: dajfarrell Pastebin link: http://pastebin.com/VTF0hu5n First Edit: Wednesday 6th of June 2012 06:50:56 PM CDT Last Edit: Wednesday 6th of June 2012 06:50:56 PM CDT uniform mat4 pl_ModelViewMatrix; uniform mat4 pl_ProjectionMatrix;   varying vec3 vDiffuse, vAmbient, vGlobalAmbient; varying vec3 vNormal, vLightDir, vHalfVector; varying float fDistance;   void main() {     // Calculate position.     vec4 vPosition = pl_ProjectionMatrix * pl_ModelViewMatrix * gl_Vertex;         // 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.     vec4 vEyeCameraPosition = pl_ModelViewMatrix * gl_Vertex;         // Calculate light position position.     vec4 vLightPosition = pl_ModelViewMatrix * vec4(1.0, 1.0, 1.0, 1.0);     vLightPosition = vec4(0.0, 0.0, 1.0, 1.0);         // Calculate aux vector.     vec3 vAux = vLightPosition.xyz - vec3(vEyeCameraPosition);         // Calculate light direction and light distance.     vLightDir = normalize(vAux);     fDistance = length(vAux);         // Calculate half vector.     vHalfVector = normalize(vLightDir - normalize(vec3(vEyeCameraPosition)));     //vHalfVector = vLightDir;         // Set up diffuse vector and ambient vectors.     vDiffuse = vec3(1.0, 0.5, 0.0);     vAmbient = vec3(0.0);     vGlobalAmbient = vec3(0.05);         // Set final position.     gl_Position = vPosition; }