AlteredQualiaのスキニングの例に基づいてJSONモデルが正常に読み込まれています。しかし、読み込みが完了するまでモデルを公開しません。この例でわかるように、モデルは最初に表示され、その後テクスチャリソースがロードされます。Three.jsのJSONモデルからテクスチャのロードを終了する方法を教えてください。
Webページに不透明なdivを追加し、JSONloader.load()関数のコールバックを使用してdivを移動します邪魔にならないように。残念ながら、このコールバックは、メッシュがシーンに追加されたときにトリガされます。このメッシュは、スキニングされたイメージによってまだブロックされていないように見えるので、不完全なシーンを「公開」します。
これを修正するにはどうすればよいですか?私は、コールバック関数を持つ関数THREE.ImageUtils.loadTextureは、()があることを見てきましたが、それはメッシュがそうのように宣言と定義されている。このユースケースに関与していないようです:
var mesh = new THREE.SkinnedMesh(geometry,new THREE.MeshFaceMaterial(materials));
//geometry and materials are both parameters of jsonloader.load callback
I MeshFaceMaterialとSkinnedMeshのソースコードを見ていましたが、そこに解決策が見当たりませんでした。
ありがとうございました。
は、回避策はありますか?おそらく材料のためのjsonファイルをスキャンし、それらをキャッシュするために各画像ファイルのための独立したテクスチャを作成するでしょうか? – Brian
それはうまくいくように聞こえます。うん – mrdoob
こんにちは、まあ、そうではありません!私は最初にloadTextureを使ってそれらをロードしましたが、それでもJSONloaderはキャッシュから取り出すのではなく画像ファイルを取り出しました(chromeとfirefoxでテスト済み)。 [ネットワークモニタのスクリーンショット](http://i1.minus.com/ilgSSsQABEyYJ.png) また、[window.onload]を使用して試しました(http://stackoverflow.com/questions/7919516/using-textures-in- 3-js/10983908#10983908)、そのイベントは一度だけトリガーされます。 – Brian