在threejs中制作导入的模型适合屏幕

时间:2016-09-27 01:56:15

标签: three.js aframe

我不想更换相机以适应模型。我希望知道给定位置的正确尺寸,以确保一旦缩放后的模型/几何将在屏幕中。

我不想移动相机,因为我可能有许多不同的物体。

思想?

1 个答案:

答案 0 :(得分:1)

您可能只想使用scale="0.1 0.1 0.1"或其他任何方式扩展模型。要自动执行此操作,请考虑编写新组件:

AFRAME.registerComponent('autoscale', {
  init: function () {
    var el = this.el;
    el.addEventListener('model-loaded', function (e) {
      var bbox = new THREE.Box3().setFromObject(e.detail.model);
      var scale = 1 / (bbox.max.x - bbox.min.x);
      el.setAttribute('scale', {
        x: scale,
        y: scale,
        z: scale,
      });
    });
  }
});

为了更加健壮,您应该使用最大尺寸(x vs y vs z)进行缩放,但这是它的要点。