Three.js ColladLoader无法加载模型:某些元素似乎没有顶点

Three.js ColladLoader无法加载模型:某些元素似乎没有顶点,three.js,collada,Three.js,Collada,我试图从3D仓库导入模型,但有些模型未能加载ColladaLoader.js第2808行中的错误 未捕获的TypeError:无法读取null的属性“input”。我在3D warehouse的许多不同模型中遇到了这个错误 我准备了一个fiddle elcsiga/rep1z1xt/4,它通过ajax CORS违规从不同的域加载模型,但是它在Chrome中对我有效 完全工作的示例无法加载模型: 与three.js存储库中的monster模型完全相同的代码: collada模型在这里可用:pr

我试图从3D仓库导入模型,但有些模型未能加载ColladaLoader.js第2808行中的错误 未捕获的TypeError:无法读取null的属性“input”。我在3D warehouse的许多不同模型中遇到了这个错误

我准备了一个fiddle elcsiga/rep1z1xt/4,它通过ajax CORS违规从不同的域加载模型,但是它在Chrome中对我有效

完全工作的示例无法加载模型:

与three.js存储库中的monster模型完全相同的代码:

collada模型在这里可用:projecthost.hu/webview/jsfiddle/metro.dae 首先,我尝试将其作为.kmz文件下载,解压缩并直接使用其中的.dae文件。此外,我尝试下载.skp文件,在Sketchup中打开它并将其导出为.dae格式,但在ColladaLoader.js中遇到了相同的错误

这些模型是否包含不受支持的几何体,还是Collada loader中存在缺陷


谢谢。

模型没有任何顶点,因此加载程序无法创建几何体。也许我错了

你是通过Google SketchUp创建模型的,对吗? 查找

var vertexData = sources[ this.vertices.input['POSITION'].source ].data;
在ColladaLoader.js中,将其替换为

var vertexData = [];
if (this.vertices && this.vertices.input['POSITION'].source) {
    vertexData = sources[ this.vertices.input['POSITION'].source ].data;
}

这可以通过避免空顶点来解决我的问题。它可能会丢失dae文件的一些信息,但不会损害ColladaLoader.js的功能。

您似乎已经发现了问题:顶点=null。如果您能够通过调试器确定是模型问题还是加载程序问题,这将非常有用。使用three.js的非精简版本进行调试。