我想提取特定頂點的網格對象的頂點法線。我注意到,當使用python API而不是maya python命令時,我得到了不同的結果。maya api vs 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
如果您選擇了正確的加權函數,它們應該是相同的 - 但是,如果您在同一面的另一側移動垂直線,則每次要求時都會重新計算,並且可能會發生變化。 – theodox