Trackball rotation and simple programmable shaders (OpenGL and GLSL)