A帧纹理不透明

时间:2018-02-10 20:52:51

标签: blender aframe

在我的A-Frame场景中,我有两个独立的倒置球体模型,有两种不同的材质

要创建倒置球体对象,我正在使用Blender。我在纹理菜单中应用纹理,然后将它们作为材质应用。然后,我将模型导出为.dae,并使用导出设置中包含的材料。

invertedsphere2的纹理窗口:

enter image description here

invertedsphere2的材质窗口:

enter image description here

在这张照片中,“models / invertedsphere.dae”正确显示“glyphs.png”作为纹理。

https://i.imgur.com/wGoMZ0S.jpg

以下是我的第二个倒置球体在Blender中的显示方式,以及我认为它应该如何在A-Frame中显示。

https://i.imgur.com/kwMRKzS.png

然而,这就是它在A-Frame中的表现。

non-transparent tex

第一个球体在每个维度上都是5个单位,第二个球体在每个维度上都是4.7个单位,这意味着我应该能够通过第二个球体的透明区域看到第一个球体,但这不是发生。

如何正确显示纹理?

此外,我的场景代码:

<html xmlns="http://www.w3.org/1999/xhtml"><head>
<meta charset="utf-8" />
<title>Aetheria</title>
<meta name="description" content="Aetheria" />
<script src="https://aframe.io/releases/0.6.0/aframe.min.js"></script>

                                       

  <!-- Primitives. -->
  <a-box position="-1 0.6 -3" rotation="0 45 0" color="#4CC3D9"></a-box>
  <a-sphere position="0 1.35 -5" radius="1.25" color="#EF2D5E"></a-sphere>
  <a-cylinder position="1 0.85 -3" radius="0.5" height="1.5" color="#FFC65D"></a-cylinder>
  <a-plane position="0 0.1 -4" rotation="-90 0 0" width="4" height="4" color="#7BC8A4"></a-plane>
  <a-entity collada-model="model/invertedsphere/invertedsphere.dae" scale="5 5 5" position="0 1.441 -2.752"></a-entity>
  <a-entity collada-model="model/invertedsphere/invertedsphere2.dae" scale="4.7 4.7 4.7" position="0 1.441 -2.752"></a-entity>


  <!-- Background sky. -->
  <a-sky height="2048" radius="30" src="#skyTexture" theta-length="90" width="2048"></a-sky>

  <!-- Ground. -->



</a-scene>

1 个答案:

答案 0 :(得分:1)

我最终找到了使用glTF的解决方案,这个过程比我最初预期的要复杂得多。我会尽力在这里写一篇精简指南。

  1. 克隆glTF Blender Exporter
  2. 确保将脚本放在Blender附加组件目录中并启用它。
  3. 在您希望纹理/添加材料的模型中,选择“文件&gt;链接”然后导航到“(工作目录)/glTF-Blender-Exporter/pbr_node/glTF2.blend/Node Tree /”然后选择“glTF金属粗糙度”和/或“glTF镜面光泽度”
  4. 打开node editor并确保显示着色器节点并从对象中获取着色器节点,例如node editor settings
  5. 在节点编辑器菜单中,选择“添加&gt;组&gt; glTF金属粗糙度/ glTF镜面光泽度”,然后单击节点编辑器中的任意位置以放置它。
  6. 作为参考,我的对象设置如下:my node tree 请注意,我的图像纹理的Alpha通道节点连接到着色器中的Alpha通道。这是使纹理透明的关键部分。
  7. 注意:如果导出到glTF,此时除了glTF着色器之外,没有其他着色器可以工作。

    1. 导出为.glTF或.glb。如果导出为.glTF,则将创建.glTF文件和.bin文件。 .bin文件将包含材质和纹理。如果导出为.glb文件,则材质和纹理将自动包含在与模型相同的文件中。

    2. 使用the glTF viewer进行测试。我更喜欢在A-Frame中进行测试,因为它以清晰,可读的方式为您提供错误输出,并允许您拖放模型。