在IOS上看不到Three.js OBJ MTL Loader

时间:2017-09-08 12:04:13

标签: javascript ios three.js

我正在使用obj + mtl加载程序将我的OBJ文件加载到我的场景中。 在我的mtl文件中,我正在加载纹理。

e.g:

def merge_lists(list1, list2):
    lst = []
    for x, y in zip(list1, list2):
        if x[1] == y[1]:
            lst.append([*x[:2], y[2], x[3], y[4]])
        else:
            lst.extend((x, y))
    return lst

除移动IOS外,所有系统都能正常运行。在这些设备上,具有纹理或获取环境贴图的文件根本不显示。只是阴影。

到目前为止我尝试了什么:

  • 检查纹理是2的幂。

  • 将阴影设置为双面

  • 控制文件大小(一切都低于200kb)

当我使用网络检查器时,我收到此错误:

newmtl initialShadingGroup
illum 4
Kd 1.00 1.00 1.00
Ka 0.00 0.00 0.00
Tf 1.00 1.00 1.00
map_Kd 6922529901031.jpg
map_Bump 6922529901031_bump.jpg
Ni 1.00

这是我的装载机:

[Error] THREE.WebGLProgram: shader error:  (7)
1282
"gl.VALIDATE_STATUS"
false
"gl.getProgramInfoLog"
""
""
""

1 个答案:

答案 0 :(得分:1)

我终于弄明白了。 对于对我的解决方案感兴趣的任何人:我从OBJLoader切换到最近发布的OBJLoader2。

var objLoader = new THREE.OBJLoader2();

我还摆脱了接收阴影的功能:

node.receiveShadow = false;

最后我的对象出现了,我可以忍受这样一个事实:Iphone和Ipad上不会收到阴影