How do I specify per-vertex normals? Do I simply define a normal before each and every single vert, like I would for a set of faces? :dejection:
Yes - see glnormal3f
You are probably talking about legacy OpenGL. Well, it is a state-machine, and everything set before calling glVertex*() is used for that vertex. If every vertex has a different normal, then yes, you need to call glNormal*() before every glVertex*(). If several verices share same normal, then call glNormal*() just once before those vertices.