1

SnappyTree / Proctree(http://www.snappytree.com/)で作成されたモデルを表示しようとしています。

ProctreeはGLGEで動作するように設計されていますが、Three.jsでライブラリによって生成されたデータを使用することはほぼ完了しています。基本的に、カスタムjsonオブジェクトを作成し、それにproctreeデータを追加し、JSONLoaderを使用して最終的なジオメトリを生成します。

私が疑っているのは、頂点(pointcloud)が正しくインポートされているのに、配列の面が間違った頂点を参照しているか、そうでなければ間違って解釈されていることです。

var tree = new Tree(json); // Proctree
// window.console.log(tree);
var model = { "metadata" : { "formatVersion" : 3.1, "generatedBy": "bb3d2proctree",      "vertices": 0,  "faces": 0, "description": "Autogenerated from proctree." },
  "materials": [{ // just testing...
  "diffuse": 20000
  }],
  "colors": [0xff00ff, 0xff0000] // just testing
};

model.vertices = Tree.flattenArray(tree.verts);
model.normals  = Tree.flattenArray(tree.normals);
model.uvs      = [Tree.flattenArray(tree.UV)];

model.faces    = Tree.flattenArray(tree.faces);

var loader = new THREE.JSONLoader();
loader.createModel(model, function(geometry, materials) {
    // cut out for brewity... see jsfiddle
}

ほぼ機能しています(まだ資料に触れていません。)ツリーは少し正しいように見えますが、面が少し混乱していて、いくつかの単純な形式の違いがあると確信しており、面を変更できるはずです。配列なので、Three.jsで正しく動作します。

ここのJSFiddle:http: //jsfiddle.net/nrZuS/

どうすればデータをThree.jsに正しくインポートできますか?

http://www.snappytree.com/#seed=861&segments=10&levels=5&vMultiplier=0.66&twigScale=0.47&initalBranchLength=0.5&lengthFalloffFactor=0.85&lengthFalloffPower=0.99&clumpMax=0.449&clumpMin=0.404&branchF _ = 0.07&growAmount = -0.005&sweepAmount = 0.01&maxRadius = 0.269&climbRate = 0.626&trunkKink = 0.108&treeSteps = 4&taperRate = 0.876&radiusFalloffRate = 0.66&twistRate = 2.7&trunkLength = 1.55&trunkMaterial = TrunkType2&twigMaterial =小枝で、テクスチャがないので、現時点では、jsfiddleで見られるようなトランクの形状だけが気になります)

4

1 に答える 1

1

気にしないで、うまくいきました。

それ以外の:

model.faces = Tree.flattenArray(tree.faces);

そうです:

model.faces    = [];
for (var i = 0; i < tree.faces.length; i++) {
  var face = tree.faces[i];
  model.faces.push(0);
  model.faces.push(face[0]); // v1
  model.faces.push(face[1]); // v2
  model.faces.push(face[2]); // v3
}    

ここで jsFiddle を更新しました: http://jsfiddle.net/KY7eq/

于 2013-01-21T14:16:36.200 に答える