Basics of OpenGL Shaders and Vertex Buffer Objects