0

几周以来,我一直在使用该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 和单个纹理是一个更好的解决方案,对吧?

4

1 回答 1

0

答案可能为时已晚,但实际上是 colladaLoader 的问题。

2天前,已经发布了threejs的更新(开发分支v65)

现在加载器能够处理每种材料上具有多纹理的复杂模型。

希望对你有帮助

于 2013-12-26T09:15:02.050 回答