augmented-reality - 在 A-Frame (AR.js) 中,想要使 3D 对象看起来从地板上出来,即以某种方式在标记下方剪辑/蒙版
问题描述
我正在寻找一种将 3D 对象剪辑到 A-Frame 中某个点以下的方法Ar.js
。我想剪切点是0,0,0
标记位置。我的想法是让一个物体看起来从下面的标记中出来,所以低于那个点你就看不到它了。希望我的图表能解释我的意思。
我曾尝试使用 C4D 合成标签,但正如预期的那样,它不会作为gltf
对象导出。
解决方案
有一种巧妙的技术可以用来制造隐形斗篷——禁用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>
在这个故障中检查一下。
推荐阅读
- r - 无法连接到 Rstudio 中的 PostgreSQL,可能是权限问题?
- angularjs - 当我尝试在 Reactive Forms 中设置默认值时,它显示为 NULL
- xamarin - 在 Xamarin 中,在使用 RelativeLayout 期间,有没有办法在 xaml 中使用 MaxY 属性?
- python - 在“分组”列表中查找和替换
- regex - 用于匹配字符串的第一个实例的正则表达式(风格:PCRE)过滤器然后仅在该第一个实例的上下文中过滤?
- javascript - 未找到 Angular 返回路线的 Jasmine 单元测试
- get - NodeJS fetch("https://www.google.com") 说“TypeError: NetworkError when trying to fetch resource”但它是 200
- flutter - 如何在 Flutter 中实现 CircularProgressIndicator
- python - Ray远程调用执行方法,而不是返回ID
- python - 当我在一个函数中返回一个变量并在另一个没有打印的函数中打印它时,怎么会这样?