title: How do vertex position triplets map to vec4 in shader?
body: <p>I'm trying to implement webgl shadow mapping from an example code that already <a href="http://spidergl.org/example.php?id=6" rel="nofollow">implements</a> it  using spidergl. I'm trying to implement it directly on top of WebGL.</p>
  
  <p>I believe I have almost similar code, but I am not getting the results. I have narrowed down the problem to a smaller part of the code. My shader code defines <code>a_position</code> (the vertex position attribute), as vec3; while the spidergl code defines it as vec4. I combed through the spidergl code to understand how their vertex position attributes, which are x-y-z triplets are being filled into a vec4. I expected to find the trick in the call to vertexAttribPointer. But the values of size and stride that they are passing is as expected : 3 and 12. I changed my code to do the same thing, but I am not getting the same results yet. </p>
  
  <p>Can someone explain the basic mechanism by which the position triplets get mapped to <code>vec4</code>? I haven never seen code that also mentions w along with x,y,z coordinates of a cube's corners, but there are shaders that take <code>a_position</code> as <code>vec4</code>. Then what gets filled into the fourth float of vec4?</p>