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 Developer Toolsは、「var loader = new THREE.OBJLoader();」という行の後にエラーを表示します。エラーは次のとおりです。「UncaughtTypeError:undefined isnotafunction」。

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 に答える