THREE.OBJLoader不工作(TypeError)

时间:2012-12-10 14:16:36

标签: javascript node.js webgl

我正在尝试创建一个HTML / Javascript应用程序,它将以Wavefront .OBJ格式显示任意三维模型。现在我有一个可以显示球体和飞机等的应用程序。我尝试将THREE.OBJLoader模块合并到我的代码中,但它破坏了一些东西。我已经想出如何用我的页面加载它并测试它实际加载了(我在THREE.OBJLoader副本的末尾放了一个警告并且它显示正确)。

我以前尝试加载模型的代码在这里:

var loader = new THREE.OBJLoader();
loader.load('3d/models/torus.obj', function ( object ) {
scene.add( object );
});

(它是从这里复制的:render OBJ file using THREE.OBJLoader。是的,我阅读并尝试了MrDoob的链接源代码(“Male02.obj”等等)。)

当我使用该代码片段加载我的页面时,我看到的是一个空白屏幕(而不是一个带有球体的小场景)。 Chrome开发者工具在“var loader = new THREE.OBJLoader();”行后显示错误。错误如下:“未捕获的TypeError:undefined不是函数”。

有关如何正确显示3D模型的任何想法?提前致谢。我会根据需要发布更多代码。

2 个答案:

答案 0 :(得分:1)

确保将OBJLoader包含在单独的< script>中tag - 它通常不是build / three.js(或three.min.js)的艺术

答案 1 :(得分:0)

好的,我明白了!问题是我在HTML中为我的文件指定的加载顺序。在我的程序知道THREE.OBJLoader是什么之前,我正在尝试创建一个新的加载器。所以我在HTML中交换了以下几行:

<script src="../lib/objloader.js"></script>  <!-- when this was loaded last, code didn't work -->
<script src="../3d/3d.js"></script>