2016-07-09 14 views
5

objファイルとしてThree.jsにロードされた3Dモデルがあります。モデル自体は家具です。Three.js mesh resize

enter image description here

問題であり、その家具の材料は動的であり、大きさ(厚さ)が異なっています。材料の厚さを大きくする必要がありますが、モデルの合計サイズを変更することはできません。スケーリングはオプションではありません。

モデルの一部(特定のメッシュ数)のサイズを変更したり、メッシュ自体の構造を損なわない方法はありますか?構造体の厚みを変更する必要がありますが、モデルの内部部品は変更しないでください。

私が考えることができる唯一の解決策は、いくつかのメッシュのスケールを変更し、それに基づいて他のメッシュのグローバルな位置を変更することです。これは正しい方法ですか?それを解決するために

object.traverse(function(child) { 
    if (child instanceof THREE.Mesh) { 
     // resize and reposition some of the meshes 
    } 
}); 

可能な方法:

  1. Bones
  2. Deformation
+0

私は問題を理解させてください。Objファイルを使用しており、メッシュを変更せずに一部の部品のサイズを選択的に増減できます。マテリアル(* .mtl)ファイルを使用しているので、事前にテクスチャ座標を定義していますので、algo whoooospppトリッキーでもそれらを変更したいと思います(objから頂点ポイントを読み込んで、減少するがテクスチャについて)あなたはあなたがこれについて何を言っているかを外部プレーンをマージするアプリケーションで新しいUIシナリオを追加することができます –

答えて

2

まあ、メッシュのすべてが別々のプリミティブであれば、あなただけのそれぞれのスケールを変更することができます1つの軸に沿って変更したい部分と、アンカーポイントを設定して外側に拘束します。したがって、境界にあるピースについては、アウターシェルを維持するように、アタッチしている空のオブジェクトを拡大/縮小します。

EG:

OOOOOO 
OMMMMMMO 
OMmmmmMO 
OMmmmmMO 
OMMMMMMO 
OOOOOO 

Oは隣接するメッシュMを搬送Object3D、及びMのある自分自身をスケーリングされるメッシュを表します。このようにして、すべての 'm'と 'O'のスケールを調整すると、外側のシェルは所定の位置にとどまります。

しかし、あなたはトラバースで正しい軌道に乗っています。あなたはこれをしなければならないでしょう。 簡単なトラバース方法として、.userDataオブジェクトの一部の属性を変更したいものすべてを提供します。場合によっては、アンカーポイントを効果的に移動できるように、空のオブジェクト(O)をスケールする必要があるため、他の場所ではメッシュを所定の位置にスケーリングしたいことがあります。純粋にメッシュベースの操作ではありません(メッシュは中心から拡大縮小したいので)。

object.traverse(function(child){ 
    if(child instanceof THREE.Mesh){ 
     if(child.userData.isScalable){ 
      //do the scaling. 
     } 
    } 
}); 

、あなたは正しくタグ付け階層構造と.userDataを設定している場合、あなたは物事を拡張し、外殻を保つ:いくつかのタグ付けを行うとトラバーサルが簡単になります。

これはあなたの質問ですか?質問が不明であるためです。

+0

モデルのほんの一部をリサイズする必要があります。 (簡単な言葉で) – twoface88

+0

このソリューションが動作します。メッシュ/オブジェクト/グループを拡大/縮小するためのUVマッピングを強制終了しません。それを試してみて、正直言って – OtterFamily

+0

と答えてください。私はあなたの解決策を理解していません... – twoface88

3

Clara.ioはThreeJSの上に構築されており、Clara.ioシーンで設定したジオメトリに対して演算子を実行することができます。 Clara.ioには、使用できる厚さ演算子があります。ここ

ドキュメント:あなたは、インタラクティブ・埋め込みに行うことができますClara.ioエディタで行うことができますhttp://clara.io/learn/sdk/interactive-experiences

何か。

+0

モデル構造を壊さずに単一メッシュの厚さを変更できますか? – twoface88