我想提取特定顶点的网格对象的顶点法线。我注意到,当使用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