4

我正在尝试制作一个以 Wavefront .OBJ 格式显示任意 3d 模型的 HTML/Javascript 应用程序。现在我有一个可以显示球体和平面等的工作应用程序。我尝试将 THREE.OBJLoader 模块合并到我的代码中,但它破坏了一些东西。我已经弄清楚如何用我的页面加载它并测试它是否实际加载(我在我的 THREE.OBJLoader 副本的末尾放置了一个警报,它显示正确)。

我用来加载模型的代码在这里:

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

(它是从这里复制的:使用 THREE.OBJLoader 渲染 OBJ 文件。是的,我也阅读并尝试了来自 MrDoob 的链接源代码(“Male02.obj”等)。)

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

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

4

2 回答 2

1

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

于 2012-12-10T16:12:12.337 回答
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>
于 2012-12-16T13:06:21.693 回答