私は特定の頂点でメッシュオブジェクトの頂点法線を抽出しようとしています。私は、Maya Pythonコマンドの代わりにPython APIを使用すると、結果が違うことに気付きました。maya api対pythonコマンド:頂点法線
Pythonコマンド(私の結果を与える私が欲しい):
cmds.polyNormalPerVertex("<myshapename>.vtx[523]", q=True,normalXYZ=True)
マヤPythonのAPIコール(私に異なる結果を与える):
# empty selection list
selectionList = om.MSelectionList()
selectionList.add(<myshapename>)
# create empty dag path object
dagPath = selectionList.getDagPath(0)
# get mesh
mesh = om.MFnTransform(dagPath)
# get vertex normal
mesh.getVertexNormal(523, False, space=om.MSpace.kWorld)
私はこの矛盾に気づきました頂点がシーム境界上にあるオブジェクト上の法線を他のオブジェクトと抽出しようとするときに発生します。法線は、Polygons
メニューセットのNormals > Average Normals
を使用して、マヤで平均化されています。
私はそれは、例えば、オブジェクトなしでは難しいですけど、私は、誰かが前にこの問題を見ている願っています。
誰でもこの不一致を説明できるでしょうか?
ご回答ありがとうございます。しかし、 'polyNormalPerVertex'の結果の平均化でさえ、' getVertexNormal'によって返されたベクトルと同じではありません(そして、私はすべてのパラメータの組み合わせを試しました)。彼らは同じではありませんか? – user2635364
正しい重み付け関数を選択した場合は同じ値にする必要がありますが、その値は尋ねるたびに再計算されます。たとえば、同じ面の反対側にあるvertを動かした場合などに変更できます。 – theodox