使用python在maya中创建多边形几何体时出现UV问题

使用python在maya中创建多边形几何体时出现UV问题,python,maya,Python,Maya,我正在为Maya 2013开发一个插件,该插件是用python编写的,用于导入多边形几何体(请考虑自定义OBJ格式的导入器)。我遇到了一个问题,我无法让UV显示在UV编辑器中,即使我使用代码生成它们。我检查了UV的数量,知道它们已经创建,但似乎看不到在哪里可以找到它们。我知道这可能很棘手(与必须创建一个虚拟UV集有关),但我希望深入了解导致此问题的原因以及如何解决此问题。有什么想法吗 示例代码: UVSetNames = ['map1', 'other'] meshFS = maya.Ope

我正在为Maya 2013开发一个插件,该插件是用python编写的,用于导入多边形几何体(请考虑自定义OBJ格式的导入器)。我遇到了一个问题,我无法让UV显示在UV编辑器中,即使我使用代码生成它们。我检查了UV的数量,知道它们已经创建,但似乎看不到在哪里可以找到它们。我知道这可能很棘手(与必须创建一个虚拟UV集有关),但我希望深入了解导致此问题的原因以及如何解决此问题。有什么想法吗


示例代码:

UVSetNames = ['map1', 'other']

meshFS = maya.OpenMaya.MFnMesh()

newMesh = meshFS.create(numVertices, numFaces, points, faceCounts, faceConnects, uArray, vArray, outputMesh)    # ADDING THE UVs TO THE MESH AT THE SAME TIME
meshFS.updateSurface()
nodeName = meshFS.name()

print 'Mesh node name is: %s' % nodeName

# CREATE THE UV SET
meshFS.createUVSetWithName( UVSetNames[1] )
meshFS.setUVs(uArray, vArray, UVSetNames[1] )

maya.cmds.sets(nodeName, e=True, fe='initialShadingGroup')

print "A) NUM UVs (%s): %d" % (UVSetNames[0], meshFS.numUVs( UVSetNames[0] ) )
print "B) NUM UVs (%s): %d" % (UVSetNames[1], meshFS.numUVs( UVSetNames[1] ) )
VERT COUNT: 23088

FACE COUNT: 36019

CREATING VERTICIES

Mesh node name is: polySurfaceShape1

A) NUM UVs (map1): 23088

B) NUM UVs (other): 23088

结果:

UVSetNames = ['map1', 'other']

meshFS = maya.OpenMaya.MFnMesh()

newMesh = meshFS.create(numVertices, numFaces, points, faceCounts, faceConnects, uArray, vArray, outputMesh)    # ADDING THE UVs TO THE MESH AT THE SAME TIME
meshFS.updateSurface()
nodeName = meshFS.name()

print 'Mesh node name is: %s' % nodeName

# CREATE THE UV SET
meshFS.createUVSetWithName( UVSetNames[1] )
meshFS.setUVs(uArray, vArray, UVSetNames[1] )

maya.cmds.sets(nodeName, e=True, fe='initialShadingGroup')

print "A) NUM UVs (%s): %d" % (UVSetNames[0], meshFS.numUVs( UVSetNames[0] ) )
print "B) NUM UVs (%s): %d" % (UVSetNames[1], meshFS.numUVs( UVSetNames[1] ) )
VERT COUNT: 23088

FACE COUNT: 36019

CREATING VERTICIES

Mesh node name is: polySurfaceShape1

A) NUM UVs (map1): 23088

B) NUM UVs (other): 23088

场景文件示例
从示例代码中,我看到您尚未将UV指定给几何体。create()和setUVs()方法将使用您提供的uv阵列创建纹理表,但不会将其指定给网格。您需要在调用create()或setUVs()后调用assignUVs(),以按照API文档中的建议完成此过程,以及。您可以通过调用来验证这一点。希望这有帮助

从示例代码中,我看到您尚未将UV指定给几何体。create()和setUVs()方法将使用您提供的uv阵列创建纹理表,但不会将其指定给网格。您需要在调用create()或setUVs()后调用assignUVs(),以按照API文档中的建议完成此过程,以及。您可以通过调用来验证这一点。希望这有帮助

从示例代码中,我看到您尚未将UV指定给几何体。create()和setUVs()方法将使用您提供的uv阵列创建纹理表,但不会将其指定给网格。您需要在调用create()或setUVs()后调用assignUVs(),以按照API文档中的建议完成此过程,以及。您可以通过调用来验证这一点。希望这有帮助

从示例代码中,我看到您尚未将UV指定给几何体。create()和setUVs()方法将使用您提供的uv阵列创建纹理表,但不会将其指定给网格。您需要在调用create()或setUVs()后调用assignUVs(),以按照API文档中的建议完成此过程,以及。您可以通过调用来验证这一点。希望这有帮助

我认为您的代码片段信息不够。添加UV后是否再次调用updateSurface?能否将上述内容(或类似内容)保存在Maya ASCII中,如果你在上面的问题中或者在其他地方分享它,并分享链接。我已经准备好了所有有助于提供线索的东西。我认为你的代码片段不够信息。你在添加UV后是否再次调用updateSurface?你能在Maya ASCII中保存上述内容(或类似内容)吗,如果你在上面的问题中或者在其他地方分享它,并分享链接。我已经准备好了所有有助于提供线索的东西。我认为你的代码片段不够信息。你在添加UV后是否再次调用updateSurface?你能在Maya ASCII中保存上述内容(或类似内容)吗,如果你在上面的问题中或者在其他地方分享它,并分享链接。我已经准备好了所有有助于提供线索的东西。我认为你的代码片段不够信息。你在添加UV后是否再次调用updateSurface?你能在Maya ASCII中保存上述内容(或类似内容)吗,如果是小朋友,请在上面的问题中或其他地方分享,并分享链接。我已经准备好了所有有助于提供线索的东西。