¿Cómo implementar un trackball en OpenGL?

Después de tanta lectura sobre las transformaciones, es hora de implementar un trackball para mi aplicación. Entiendo que tengo que crear un vector desde el origen hasta donde se hace clic con el mouse y luego otro desde el origen hasta donde se suelta el mouse. Mi pregunta es, ¿tengo que...