Существует множество различных способов поворота системы координат, чтобы она указывала в заданном направлении; все они оставят ось z направленной в нужном вам направлении, но с разным расположением осей x и y.
Следующее дает вам самое короткое вращение, которое может или не может быть тем, что вы хотите.
vec3 target_dir = normalise( vector );
float rot_angle = acos( dot_product(target_dir,z_axis) );
if( fabs(rot_angle) > a_very_small_number )
{
vec3 rot_axis = normalise( cross_product(target_dir,z_axis) );
glRotatef( rot_angle, rot_axis.x, rot_axis.y, rot_axis.z );
}