在我的A-Frame场景中,我有两个独立的倒置球体模型,有两种不同的材质
要创建倒置球体对象,我正在使用Blender。我在纹理菜单中应用纹理,然后将它们作为材质应用。然后,我将模型导出为.dae,并使用导出设置中包含的材料。
invertedsphere2的纹理窗口:
invertedsphere2的材质窗口:
在这张照片中,“models / invertedsphere.dae”正确显示“glyphs.png”作为纹理。
以下是我的第二个倒置球体在Blender中的显示方式,以及我认为它应该如何在A-Frame中显示。
然而,这就是它在A-Frame中的表现。
第一个球体在每个维度上都是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>
答案 0 :(得分:1)
我最终找到了使用glTF的解决方案,这个过程比我最初预期的要复杂得多。我会尽力在这里写一篇精简指南。
注意:如果导出到glTF,此时除了glTF着色器之外,没有其他着色器可以工作。
导出为.glTF或.glb。如果导出为.glTF,则将创建.glTF文件和.bin文件。 .bin文件将包含材质和纹理。如果导出为.glb文件,则材质和纹理将自动包含在与模型相同的文件中。
使用the glTF viewer进行测试。我更喜欢在A-Frame中进行测试,因为它以清晰,可读的方式为您提供错误输出,并允许您拖放模型。