Quote Originally Posted by LastHorizon View Post
I haven't managed to get it to load a texture to all faces of my cube yet though, I guess that's a question of finding the correct texture loading command though. At the moment if I use texture2D() it loads a single 2D with the incorrect colouring. It should be a create but instead I get a brown square.
Are you using a 2D texture for each face, or a cube map?

A cube map is created by calling glBindTexture(GL_TEXTURE_CUBE_MAP) then glTexImage2D(GL_TEXTURE_CUBE_MAP_*) for each of the six faces, and accessed in the shader via a samplerCube uniform and the textureCube() function (which takes the coordinates via a vec3).

Quote Originally Posted by LastHorizon View Post
I'm curious as to whether the co-ordinate system has changed between 2.1 and 4.X, when I ran my code previously I had my cube rotating around the centre of the object, now it rotates around the bottom vertex of the object.
When using shaders, coordinate systems are entirely up to the program. Vertex attributes will be passed to the vertex shader as-is.