几周以来,我一直在使用该Three.js
模块和该ColladaLoader.js
功能,并且对正在发生的事情非常有信心。
直到今天,我一直在将各种复杂的模型加载到我的代码中,没有任何问题。
我在这里举了一个我的代码示例。
http://ec2-54-213-35-209.us-west-2.compute.amazonaws.com/
该模型非常小,位于网格中间,因此需要放大才能看到。
这是来自 Web 控制台的错误:
Error: WebGL: DrawElements: bound vertex attribute buffers do not have sufficient size for given indices from the bound element array @ http://ec2-54-213-35-209.us-west-2.compute.amazonaws.com/three.min.js:455
因此,当引入 collada 模型时,元素列表会以某种方式混乱。它最终会丢失一部分。
如果我用类似的东西手动设置整个对象的材质,
setMaterial(result.scene, new THREE.MeshBasicMaterial({color: 0xff0000}));
然后场景中的对象很好,我没有收到任何错误,所以我很确定这是与纹理相关的。
我很确定我的代码可以正常工作,因为我已经很好地加载了其他模型。然而,我认为这将是第一个具有多个纹理的模型。
无论如何,当涉及到 glelement 调用时,Texture Atlas 和单个纹理是一个更好的解决方案,对吧?