What do you think of the following.
- calculate
cam_pos, cam_dest, cam_upas usual. - compute
cam_rightas cross ( cam_pos, cam_up) - create a float
camera_time(if walking, camera_time += delta_time;) - calculate
offset_factor = sin(camera_time);
Then you can call gluLookAtor a similar function as follows.
gluLookAt(cam_pos + cam_right * offset_factor, cam_des + cam_right * offset_factort, cam_up)
. cam_up .