首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >一个框架忽略了三维模型的微透明材料

一个框架忽略了三维模型的微透明材料
EN

Stack Overflow用户
提问于 2020-06-06 19:08:26
回答 1查看 976关注 0票数 1

我已经创建了一个3D模型,使用搅拌机,有三种材料,具有一定的透明度,并导出为.glb。

当我在浏览器中测试它时,即使结构相同,材料也不一样。

阅读三维模型故障排除指南,没有看到像这样的东西。

正如前面提到的这里,测试了将其上传到Clara.io,但得到的结果与浏览器中的相同

再次测试导出文件,在不同浏览器中可视化并添加到A-Frame的<a-entity gltf-model="#octant"><a-asset-item id="octant" src="octant.glb">

  • material="opacity: 0.0; transparent: true"
  • transparent="true"

检查这里的故障版本

试着简化着色器

但这也没用

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-06-11 23:35:58

我认为解决方案是通过底色的alpha参数设置透明度,而不是--直接在着色器节点上看到的alpha。请参见此基本颜色选择器底部的“A”:

还确保混合模式是“阿尔法混合”。然后,在A帧中,使用material向模型的实体添加一个transparent: true组件.

关于小故障的工作演示:https://aframe-transparent-material.glitch.me/

(关于另一个没有奇怪颜色问题的演示,请参见下面的说明)

我还将.blend文件包含在小故障资产中,供您查看。

注意到

  • 对于你共享的模型,透明混合并不完美--有些颜色似乎与其他颜色混合,但不同的颜色并不是混合的。这是因为Three.js将透明的对象从后面呈现到前面,但是当许多平面像这样相交时,就没有清晰的前后顺序。解决办法是将你的平面分成4个较小的平面(并调整它们的起源),这样就没有交集和清晰的深度顺序。下面是已实现的小故障演示的修改版本,正如您所看到的,透明度现在运行得很好。
  • 据我所知,Blender gLTF导出只理解原则性BSDF着色器节点,因此您的混合/透明节点设置将无法工作。
  • 我注意到,当在原则性着色器上使用更广泛的"alpha“设置时,将其导出到.glb,然后重新导入Blender,将其转换为混合/透明节点。因此,这可以解释为什么常规的"alpha“参数不能被gLTF导入程序在Three.js中识别。
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62236739

复制
相关文章

相似问题

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