首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用aframe改变glb 3D模型的不透明度

问用aframe改变glb 3D模型的不透明度
EN

Stack Overflow用户
提问于 2021-04-12 10:08:46
回答 1查看 219关注 0票数 0

我正在尝试制作一个网络应用程序,我可以使用世界跟踪来查看3D模型。我正在尝试使用a-entity标签的material属性来更改模型的不透明度,但是它似乎不起作用。有关于如何改变我的3D对象的不透明度以使其半透明的想法吗?

代码语言:javascript
复制
<a-entity
    id="model"
    gltf-model="#3dmodel"
    class="cantap"
    geometry="primitive: box"
    scale="0.5 0.5 0.5"
    material="transparent: true; opacity 0.1"
    animation-mixer="clip: idle; loop: repeat"
    hold-drag two-finger-spin pinch-scale>
</a-entity>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-04-15 08:35:32

GLTF模型在模型文件中包含自己的材质。这些是由THREE.js而不是AFrame处理的,所以为了访问它们的属性,您必须搜索元素object3D,使用如下代码:

代码语言:javascript
复制
this.el.object3D.traverse((child) => {
  if (child.type === 'Mesh') {
    const material = child.material;
    // Do stuff with the material
    material.opacity = 0.1;
  }
})

有关更多详细信息,请参阅Materials和Object3D上的THREE.js文档。

另外,我注意到您在该实体上同时有一个几何图元和一个gltf-model。不知道这两样东西能不能很好地共存,如果你同时想要一个盒子和一个模型,你可能应该让其中一个成为另一个的孩子。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67051845

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档