如何使用 alpha 通道将 gltf 模型添加到 Aframe 和 AR.js?

Posted

技术标签:

【中文标题】如何使用 alpha 通道将 gltf 模型添加到 Aframe 和 AR.js?【英文标题】:How can I add a gltf model to Aframe & AR.js with an alpha channel? 【发布时间】:2020-05-31 05:23:11 【问题描述】:

--更新-- I have added this code 它似乎有所帮助。我可以看到玻璃现在是透明的,但它仍然非常黑暗。

警告:我是 WebAR 的新手(和一般的编码)......但请放心,我已经在互联网上搜索了好几天试图弄清楚这一点。

我正在尝试使用带有 AR.js 和 Aframe 的 gltf 模型来制作 WebAR 体验。这是我的代码的一部分:

<script src="https://aframe.io/releases/0.8.2/aframe.min.js"></script> 
<script src="build/aframe-ar.js"></script> 
<script src="https://rawgit.com/donmccurdy/aframe-extras/master/dist/aframe-extras.loaders.min.js"></script>

<!-- marker -->
<a-marker type='pattern' url='https://raw.githubusercontent.com/merowell/Evidence-Collection-Procedures/master/assets/markers/patt/pattern-biological-1.patt'>

<!-- add .gltf model-->
    <a-entity gltf-model="https://raw.githubusercontent.com/merowell/Evidence-Collection-Procedures/master/assets/models/biological/biological.gltf" position="0 0 0" crossOrigin="anonymous" rotation="0 0 0" scale=".3 .3 .3">
    </a-entity>

我已经想出了如何让 gltf 模型处理纹理,但我似乎仍然无法获得我想要的确切外观。大多数情况下,瓶子上的玻璃应该是透明的而不是不透明的。我在 Blender 2.82 中导入并编辑了模型。我正在使用 Principled BSDF 节点并将混合模式设置为“alpha blend”

这是一个截图:

导出模型后,我在gltf validator 中对其进行了测试,看起来我想要它。这是一个屏幕截图:

很遗憾,活动标记的显示方式不同。也许我还需要做其他事情才能使 Alpha 通道正常工作?或者也许这是我的代码中的错误? 这是活动标记的屏幕截图:

最后,我尝试将模型添加为 glb 文件,将其列为资产。但是当我在 a-scene 标签中列出资产时,网络摄像头不会部署。但是,我读过其他人使用这种方法。

【问题讨论】:

【参考方案1】:

已编辑——问题仍然存在......这些模型仅相对于其他模型是透明的。但是您无法通过透明材质看到真实世界的环境(就像使用波前 obj 一样)

This solved the issue... 我只需要转到搅拌机文件并使用较浅的颜色重新导出模型,以使其看起来像我想要的那样。

【讨论】:

以上是关于如何使用 alpha 通道将 gltf 模型添加到 Aframe 和 AR.js?的主要内容,如果未能解决你的问题,请参考以下文章

制作gltf动态夜景模型

如何在 THREEJS 级别添加 GLTF 模型?

将 alpha 通道添加到 css 变量上声明的十六进制颜色

使用Blender导出多个动画的GLTF模型

OPENGL:如何使用 blit 将 alpha 移动到红色通道

ALPHA通道如何给图像添加阴影效果??