Three.js - Cámara ortográfica

He estado trabajando en una aplicación que muestra algunos modelos en 3D. Cargamos los modelos, creamos las mallas, las agregamos a la escena ... procedimiento estándar. Después de agregar la última malla, calculamos el cuadro delimitador para mover la cámara y cubrir toda la escena, utilizando el tamaño de la geometría total y el tamaño de la ventana gráfica para realizar el cálculo.

    if (bounds.bx / bounds.by < camera.aspect) {
        /* Vertical max */
        r = bounds.by / (2 * Math.tan(Math.PI / 8));
    } else {
        /* Horizontal max */
        hFOV = 2 * Math.atan(Math.tan(Math.PI / 8) * camera.aspect);
        r = bounds.bx / (2 * Math.tan((hFOV / 2)));
    }

bounds es un objeto que contiene el ancho y la altura del cuadro delimitador. Después de este cálculo, movemos la cámara (más una pequeña proporción, solo estética, queremos un poco de espacio entre la geometría y el borde de la pantalla :)) y renderizamos

    camera.position.z = r * 1.05;

Hasta ahora esto está implementado y funciona bien. Esto se ha hecho con PerspectiveCamera. Ahora queremos cambiar eso y usar OrthographicCamera ... resulta ser un desastre. Los modelos son demasiado pequeños, perdemos el zoom de la rueda del ratón de los controles TrackBall y el algoritmo para mover la cámara ya no funciona. Además, no entiendo los parámetros del constructor para la cámara ... ¿estos anchos y altos son para la geometría o la ventana gráfica?

Respuestas a la pregunta(3)

Su respuesta a la pregunta