Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ionic-framework/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Aframe 如何为obj加载纹理?_Aframe_Webvr - Fatal编程技术网

Aframe 如何为obj加载纹理?

Aframe 如何为obj加载纹理?,aframe,webvr,Aframe,Webvr,我正在尝试加载一个.obj,它有几个.jpg作为纹理。My.obj正在渲染-但未应用材质 .mtl看起来像 newmtl material_0 Ka 0.200000 0.200000 0.200000 Kd 1.000000 1.000000 1.000000 Ks 1.000000 1.000000 1.000000 Tr 1.000000 illum 2 Ns 0.000000 map_Kd tex_0.jpg 我假设.jpgs的路径是正确的-如果我更改它,我会在控制台中看到404个错误

我正在尝试加载一个.obj,它有几个.jpg作为纹理。My.obj正在渲染-但未应用材质

.mtl看起来像

newmtl material_0
Ka 0.200000 0.200000 0.200000
Kd 1.000000 1.000000 1.000000
Ks 1.000000 1.000000 1.000000
Tr 1.000000
illum 2
Ns 0.000000
map_Kd tex_0.jpg
我假设.jpgs的路径是正确的-如果我更改它,我会在控制台中看到404个错误

我的aframe代码是:

 <a-scene>
    <a-assets>
           <a-asset-item id="moore-obj" src="obj/moore.obj"></a-asset-item>
           <a-asset-item id="moore-mtl" src="obj/moore.obj.mtl"></a-asset-item>
     </a-assets>
     <a-entity
          obj-model="obj: #moore-obj; mtl: #moore-mtl"
          scale="1 1 1"
          rotation="0 0 0"
          position="1 1 1"></a-entity>
 </a-scene>

结果是该特定OBJ文件存在问题。它使用三种材质,但没有为使用每种材质的子对象定义对象组,因此three.js的OBJLoader无法正确关联材质

您可以通过在obj文件中的每个
usemtl
行之前添加组行来解决此问题

例如:

g g_0
usemtl material_0
...
g g_1
usemtl material_1

等等。

这很有趣。乍一看,一切都是方的。您正在运行什么类型的本地服务器?Python简单HTTP服务器。我想知道这是否与对象大小有关?您看到的404的URL是什么?我猜这只是确保tex_0.jpg在正确的文件夹中的问题。它应该与mtl文件位于同一位置。