首页 > 解决方案 > A 帧截头体剔除

问题描述

如何在 A-Frame 中关闭 gltf 模型的截锥体剔除?我知道在 Three.js 中你可以遍历对象并添加node.frustumCulled = false. 我试过了

AFRAME.registerComponent('disable-culling', {
  init: function(){
    var object3D = this.el.sceneEl.object3D;
    object3D.traverse((node) => {
      node.frustumCulled = false
    })
  }
})

但这不起作用。有人有什么主意吗?实体是

<a-entity
  id="ball"
  scale="0.3 0.3 0.3"
  position="0 0 -7"
  gltf-model="#ballModel"
  disable-culling
  animation-mixer="clip: *; loop: once; clampWhenFinished: true;"
  shadow>
</a-entity>

标签: three.jsaframe

解决方案


我有一个类似的问题,通过平截头体剔除解决了 -

el.addEventListener('model-loaded', () => {
  const model = el.getObject3D('mesh');
  model.traverse((node) => {
    if (node.isMesh) {
      node.frustumCulled = false;
    }
  });
});

我想知道您的解决方案是否仅仅因为模型尚未完成加载而不起作用。


推荐阅读