在threejs中使导入的模型适合屏幕
Make imported model fit screen in threejs
我不想更改相机以适合模型。我更愿意知道给定位置的正确尺寸,以确保 model/geometry 缩放后会出现在屏幕上。
我不想移动相机,因为我可能有很多不同的对象。
想法?
您可能只想使用 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)进行缩放,但这是它的要点。
我不想更改相机以适合模型。我更愿意知道给定位置的正确尺寸,以确保 model/geometry 缩放后会出现在屏幕上。
我不想移动相机,因为我可能有很多不同的对象。
想法?
您可能只想使用 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)进行缩放,但这是它的要点。