2016-12-22 8 views
0

最初にモーフィングターゲットのないモデルをロードし、ジオメトリをクローンしました。 webworkerを使用 単独でmorphTargetsを含むファイルを読み取り、後の段階で、このコードThree.jsモーフィングターゲットの有無にかかわらず2メッシュをロード中にエラーが発生しました

を用いて三本の目的は、新しいジオメトリはmorphTargetsとしてクローニングされたジオメトリとdstVerticesから頂点と面を含んで作成した変換しました。

シーンから以前に作成されたメッシュを削除し、morphTargetsを含む新たに作成されたメッシュを追加しました。

コンソールは、このエラーを投げている:私は間違っているつもりどこ

Uncaught TypeError: Cannot read property '52' of undefined 
    at setMeshBuffers (three_70.js:18797) 
    at updateObject (three_70.js:21142) 
    at THREE.WebGLRenderer.renderBuffer (three_70.js:19970) 
    at renderObjects (three_70.js:20681) 
    at THREE.WebGLRenderer.render (three_70.js:20544) 
    at animate (index1.php:70) 

誰も私を導くことはできますか?

答えて

0

あなたはグラフィックファイルを解析し、Webワーカーでwebglオブジェクトを作成しようとしていたと仮定します。私は3Dファイルを解析してWebワーカーを使ってWebGLのオブジェクトを開始している間、同じ種類の問題に直面しました。まず、私はあなたのようなエラーを受け、その後私は各Webワーカーが独自のスコープを持っていることに気付きました。そこで、Webワーカーを起動したmain.jsに値を渡し(postMessage)、main.jsのonmessageメソッドでオブジェクトを定義する準備ができました。

postmessageメソッドを使用してv、v + 1、v + 2の値を投稿することができ、Webワーカーを定義して呼び出した場所で3つのverctorオブジェクトを作成できます。

私が言っていることは、扱いにくいためWebワーカーでthree.vectorsオブジェクトを初期化すべきではないということです。 Webワーカーがpostmessageで単純なオブジェクト転送をサポートすることを忘れないでください。したがって、あなたはそれを簡単にしようとするべきです。 postmessageを使用しているときにthree.vectorオブジェクトを投稿しようとしないでください。

関連する問題