2017-09-26 14 views
0

3jsのアクティブシーンをjsonオブジェクトに変換する必要があります。しかし、モデルが大きくなるにつれて、プロセスにはますます時間がかかります。私は同じもののプログレスバーを表示することさえできません。私はthreejsのシーンをWebワーカーに送り、それをjsonに変換しようとしました。しかし、私はシーンオブジェクトを作業者に送ることができませんでした。 3jsシーンをWebワーカーに送ることは可能ですか?または、Object3d.toJSON()の約束どおりの実装がありますか?Object3d.toJSON()操作をWebワーカーにオフロードするにはどうすればよいですか?

+1

約束に基づく解決策は役に立たないでしょう。あなたの質問を言い換えることをお勧めします。「Object3d.toJSON」操作をWebワーカーにオフロードするか、ブラウザを小さな部分に分割して、ブラウザが反応している間に反応し続けることができますか? –

+0

@ T.JCrowder、シーンオブジェクトをワーカーに送信せずにシーンをjsonに変換するにはどうすればよいですか?ここで私はシーンオブジェクトを作業者に送ることはできませんか?どのような方法を提案できますか? – HariV

答えて

4

3jsシーンをウェブワーカーに送信することはできますか?

実際にはありません。作業者とのデータ交換は、ArrayBuffersと構造化クローンアルゴリズムを使用してコピーできるものに限定されています。 THREE.Sceneオブジェクトのようなものでも機能しない可能性が非常に高いです。しかし、あなたが試してみると、toJSON()と同じ複雑さの何かが、すべてをWorkerに取り込む必要があります。

また、Object3d.toJSON()の約束事に基づく実装はありますか?

残念ながら、UIスレッドをブロックしない方法で動作させることはできませんでした。

しかし、ほとんどの時間を正確に消費するもの(do you have huge texture-images maybe?)を見て、THREE.Whatever.prototype.toJSON()を別のバージョンで上書きするだけで、これらのものをスポット最適化する方法を見つけることができます。

+0

はい、私はいくつかの巨大なテクスチャを持っています。私はjsonへの画像のエクスポートを避けるためにtoJSON()を修正しようとしています。 ;)応答してくれてありがとう。 – HariV

関連する問題