我正在尝试制作一个应用程序,它以 GLTF 格式从 Google poly 添加模型。

我遇到了一些模型在添加到场景中时非常大的问题,我通过使用边界框最大值和最小值计算它们的大小并设置缩放量来解决这个问题。

现在,当我打开检查器并拖动以缩放对象时,将对象添加到场景后,即使进行少量拖动,对象也会变得非常大。

如果有任何方法可以重置加载对象的缩放值,以便默认值可以是我计算的值,这也可以解决拖动缩放问题。

注意:对于 x、y、z,某些元素的计算比例因子变为 0.00001。

#1楼 票数:4 已采纳

使用 A-Frame 组件中的three.js API 来计算模型的边界框,然后将其缩小到您喜欢的大小。 示例:

AFRAME.registerComponent('autoscale', {
  schema: {type: 'number', default: 1},
  init: function () {
    this.scale();
    this.el.addEventListener('object3dset', () => this.scale());
  },
  scale: function () {
    const el = this.el;
    const span = this.data;
    const mesh = el.getObject3D('mesh');

    if (!mesh) return;

    // Compute bounds.
    const bbox = new THREE.Box3().setFromObject(mesh);

    // Normalize scale.
    const scale = span / bbox.getSize().length();
    mesh.scale.set(scale, scale, scale);

    // Recenter.
    const offset = bbox.getCenter().multiplyScalar(scale);
    mesh.position.sub(offset);
  }
});

HTML:

<a-entity autoscale="2" gltf-model="stereo.gltf"></a-entity>

上面的代码将使您的模型适合约 2m 的盒子,然后重新居中。 有关详细信息,请参阅THREE.Object3D 文档

三.js r89,A-Frame 0.8.0。

  ask by sidd translate from so

未解决问题?本站智能推荐:

1回复

glTF 模型中的错误剪辑 - AFrame

视频预览: https : //i.imgur.com/VMhJV8v.mp4 我有很长一段时间都遇到剪辑问题,不确定是什么原因造成的,但到目前为止唯一的解决方案是将对象移近相机并将其缩小(上面的视频预览链接) 我尝试弄乱相机剪辑设置(更改远/近值)。 renderOrder 3d 对象透明度
1回复

加载GLTF后Aframe加载光照贴图-光照贴图未显示

从GLTF文件加载它们后,我试图将光照贴图添加到某些网格中。 我所有的对象都有2UV通道。 我正在等待'object3dset',这是我的代码: 如果我用新材料替换了材质并设置了光照贴图,则它可以正常工作。 但是我想找到一种无需重新创建所有材料的方法。
1回复

Aframe 和 AR.js 不显示我的 .gltf 模型

我是 aframe 和 arjs 的新手,我想通过 hiro 路径展示我自己的 gltf 模型,我编写了以下代码: 当我运行我的代码并从摄像头系上一个 hiro 标记时,我只看到“Hello world!” 文本而不是我自己的模型,我检查浏览器控制台错误,但我没有生成任何东西。 有人可以帮我一
1回复

在Aframe中更改GLTF材料

我正在尝试使用在Sketchfab上获得的网格在Aframe中产生火焰。 我的问题是火焰网有阴影且很暗。 我该如何更改? 我尝试设置材质的emissive和emissiveIntensity但它不会影响结果... 这是Chrome呈现的代码和屏幕截图 谢谢 !
1回复

Aframe-react gltf2模型已加载但为空

我正在Aframe-react应用程序中加载gltf2模型,在检查器中该模型看起来已加载但显示为空。 .gltf 1.0,.gltf 2.0和.glb格式会发生这种情况。 它们在在线模型查看器中看起来不错,但在Aframe React应用中却没有显示。 加载模型 和
1回复

如何在aframe中实现复杂模型

我是aframe和ECS建模技术的新手,所以我可能没有完全掌握应该如何使用架构。 我想模拟像机器人手臂这样的东西:在一个简化的版本中,它是一个基础,在旋转器和手臂本身之上。 该模型从单个json文件加载,并由不同部分的多个嵌套对象组成。 如果我希望能够独立控制不同的自由度(这意味着
1回复

几秒钟后 A 帧淡出 gltf 模型

我想知道如何使用 A-frame ( https://aframe.io ) 在大约 3 秒后淡出我的 gltf 模型。 我不确定我如何才能做到这一点。 我目前的代码如下: 我不确定组件的代码是否正确,如果有另一种不涉及组件的淡出功能,则可以删除脚本部分。 澄清一下,我希望场景中的 gltf 模
1回复

Aframe自动缩放和自动居中加载模型

我一直在尝试制作一个应用程序,该应用程序可以使用Google Poly的模型并将其放在iframe中。 最初的问题是模型太大或太小,因此aframe社区向我建议了一种最佳方法,该方法可以工作一段时间,但在更改缩放比例和旋转度时会出错。 这是我用来确保模型正确缩放的组件。 上面