Three.js - Orthographische Kamera

Ich arbeite an einer App, die einige 3D-Modelle anzeigt. Wir laden die Modelle, erstellen die Netze, fügen sie der Szene hinzu ... Standardverfahren. Nachdem das letzte Netz hinzugefügt wurde, berechnen wir den Begrenzungsrahmen, um die Kamera zu bewegen und die gesamte Szene abzudecken. Dabei verwenden wir die Größe der Gesamtgeometrie und die Größe des Ansichtsfensters, um die Berechnung durchzuführen.

    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 ist ein Objekt, das die Breite und Höhe des Begrenzungsrahmens enthält. Nach dieser Berechnung bewegen wir die Kamera (plus ein kleines Verhältnis, nur Ästhetik, wir wollen einen kleinen Abstand zwischen der Geometrie und dem Bildschirmrand :)) und rendern

    camera.position.z = r * 1.05;

Soweit ist dies implementiert und läuft einwandfrei. Dies wurde mit PerspectiveCamera durchgeführt. Jetzt wollen wir das ändern und OrthographicCamera verwenden ... stellt sich als Chaos heraus. Modelle sind zu klein, wir verlieren den Mausrad-Zoom von den TrackBall-Steuerelementen und der Algorithmus zum Bewegen der Kamera funktioniert nicht mehr. Ich verstehe auch nicht die Parameter des Konstruktors für die Kamera ... diese Breite und Höhe sind für die Geometrie oder das Ansichtsfenster?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage