Aframe 如何为obj加载纹理?
我正在尝试加载一个.obj,它有几个.jpg作为纹理。My.obj正在渲染-但未应用材质 .mtl看起来像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个错误
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文件位于同一位置。