Haz un objeto siguiendo la cámara en OpenGL

Estoy haciendo un juego de carreras en OpenGL (solo un pequeño proyecto) y tengo problemas para que mi auto siga la vista de la cámara.

No fue difícil hacer que siguiera la cámara a medida que la cámara avanza y / o retrocede, pero al girar la cámara (mirar hacia la derecha o hacia la izquierda), el resto del automóvil aún está. Quiero decir, todavía se mueve hacia adelante y hacia atrás, pero no está delante de la cámara (está en el costado).

Aquí está mi código (la parte donde trato de implementarlo):

void updateCam() {
    gluLookAt(posX,posY + 0.025 * std::abs(sin(headPosAux*PI/180)),posZ,
        posX + sin(roty*PI/180),posY + 0.025 * std::abs(sin(headPosAux*PI/180)) + cos(rotx*PI/180),posZ -cos(roty*PI/180),
        0.0,1.0,0.0);

    listenerPos[0] = posX;
    listenerPos[1] = posY;
    listenerPos[2] = posZ;

    source0Pos[0] = posX;
    source0Pos[1] = posY;
    source0Pos[2] = posZ;

    GLfloat distD;

    distD = posZ - 3.3;


    //makes the car "follow" the camera
    modelPOR.Translate(posX,posY,distD);

}

Respuestas a la pregunta(1)

Su respuesta a la pregunta