我正在尝试创建一个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模型的任何想法?提前致谢。我会根据需要发布更多代码。
答案 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>