我正在使用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"
""
""
""
答案 0 :(得分:1)
我终于弄明白了。 对于对我的解决方案感兴趣的任何人:我从OBJLoader切换到最近发布的OBJLoader2。
var objLoader = new THREE.OBJLoader2();
我还摆脱了接收阴影的功能:
node.receiveShadow = false;
最后我的对象出现了,我可以忍受这样一个事实:Iphone和Ipad上不会收到阴影