title: ThreeJS predefined shader attributes / uniforms
body: <p>I have started with ThreeJS's WebGL renderer after doing some "regular" WebGL with no additional libraries + GLSL shaders. I am trying to write custom shaders now in my ThreeJS program and I noticed that ThreeJS takes care of a lot of the standard stuff such as the projection and model / view matrices. My simple vertex shader now looks like this:</p>
  
  <pre><code>// All of these seem to be predefined:
  // vec3 position;
  // mat4 projectionMatrix;
  // mat4 modelViewMatrix;
  // mat3 normalMatrix;
  // vec3 normal;
  
  // I added this
  varying vec3 vNormal;
  
  void main() {
      vNormal = normalMatrix * vec3(normal);
      gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
  }
  </code></pre>
  
  <p>My question is: Which other variables (I'm assuming they're uniforms) are predefined for vertex and fragment shaders that I could use? Does ThreeJS help out with light vectors / light color for instance (of course assuming I've added one or more lights to my ThreeJS scene)? </p>
  
  <p><strong>Update</strong> (Oct. 9, 2014): This question has been getting quite a few views, and the user Killah mentioned that the existing answers did not lead to a solution anymore with the current version of three.js. I added and accepted my own answer, see it below.</p>