2010-11-30 10 views
0

私は、私は以下を使用して、そのローカル空間で作業する選択したメッシュ(創造的に「選択」と呼ばれる)があります。私はそのverticies上の計算の束を行い、それらを削除Blenderで行列を変換する方法は?

tmesh = NMesh.GetRawFromObject(selected.name) 
    tmesh.transform(selected.matrix) 

をインデックスによって、素晴らしい作品です。

私がvert.coオブジェクトのリストから後でそれらを追加しようとすると、うまくいきません。それらは、互いに対して正確に位置決めされてしまうが、元の頂点の近くにはどこにもない。

  for v in tmesh.verts: 
       toAdd.append(v.co) 
       mesh = selected.getData(mesh=1) 
       mesh.verts.extend(toAdd) 

私は、オブジェクトが別の空間にあるので、これは実現。だから私はと思う私は何をする必要があるのは、新しいverticiesを古い空間に翻訳することです...しかし、正確に何が起こっているのかについての私の理解は、最高であいまいです。 tmesh.transform(selected.matrix)コマンドを "元に戻す"方法を教えてください。べきhttp://www.kellbot.com/2010/11/lego-plans-now-with-better-rendering/

+0

「頂点の計算を行う」前に、 'tmesh.transform(selected.matrix)'を残しておくことができますか?オブジェクトの空間内で作業し、問題を回避します。 – martineau

答えて

1

は私がspecficallyブレンダーに慣れていないんだけど、ドキュメントを簡単にのぞき見した後、原則的に、それはあなたのように思える:

私がやっているのよりthoroug説明はここで見つけることができますinvert()Matrixメソッドを使用してselected.matrixの逆変換を得ることができます(おそらく最初にcopy()を作成した後)。

関連する問題