Three.js - caméra Orthographique

J'ai travailler sur une application qui affiche certains des modèles 3D. On charge les modèles, créer les mailles, les ajouter à la scène...d'une procédure standard. Après la dernière maille est ajouté, on calcule la boîte englobante afin de déplacer la caméra et de couvrir l'ensemble de la scène, à l'aide de la taille totale de la géométrie et de la taille de la fenêtre d'affichage afin de faire le calcul.

    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 est un objet contenant la largeur et la hauteur de la boîte englobante. Après ce calcul, nous déplacer la caméra(plus un peu de ratio, il suffit de l'esthétique, nous voulons un peu de place entre la géométrie et la bordure de l'écran 🙂 ) et de rendre

    camera.position.z = r * 1.05;

La mesure où cela est mis en œuvre et fonctionne ok. Cela a été fait avec PerspectiveCamera. Maintenant, nous voulons changer cela et utiliser OrthographicCamera...s'avère être un gâchis. Les modèles sont trop petites, nous perdons la molette de zoom à partir de la boule de commande Contrôle et l'algorithme de déplacer la caméra ne fonctionne plus. Aussi je ne comprends pas les paramètres du constructeur de l'appareil photo...ces la largeur et la hauteur sont de la géométrie ou de la fenêtre d'affichage?

OriginalL'auteur Leprosy | 2013-07-09