首页 > 解决方案 > 在 A-Frame (AR.js) 中,想要使 3D 对象看起来从地板上出来,即以某种方式在标记下方剪辑/蒙版

问题描述

我正在寻找一种将 3D 对象剪辑到 A-Frame 中某个点以下的方法Ar.js。我想剪切点是0,0,0标记位置。我的想法是让一个物体看起来从下面的标记中出来,所以低于那个点你就看不到它了。希望我的图表能解释我的意思。

图表

我曾尝试使用 C4D 合成标签,但正如预期的那样,它不会作为gltf对象导出。

标签: augmented-realityaframear.js

解决方案


有一种巧妙的技术可以用来制造隐形斗篷——禁用colorWrite材料的属性。

假设您想将对象隐藏在一个框中。您需要创建一个比您的对象稍大的盒子,并按照描述设置其材质:

AFRAME.registerComponent('cloak', {
   init: function() {
     var geometry = new THREE.BoxGeometry( 1.1, 1.1, 1.1 );
     var material = new THREE.MeshBasicMaterial( {colorWrite: false} );
     var cube = new THREE.Mesh( geometry, material );
     this.el.object3D.add( cube );
   }
})

然后确保它在隐藏对象之前渲染:

<a-marker>
  <a-entity cloak></a-entity>
  <a-box animation="property: position; to: 0 1.2 0; dur: 1500; 
         easing: linear; loop: true; dir: alternate"> </a-box>
</a-marker>

在这个故障中检查一下。


推荐阅读