mirror of
https://git.mirrors.martin98.com/https://github.com/google/draco
synced 2025-08-13 21:25:54 +08:00
Fixed uv in maya importer, code refactoring
This commit is contained in:
parent
3597709dc8
commit
8522e990b9
@ -95,8 +95,7 @@ class DracoTranslator(OpenMayaMPx.MPxFileTranslator):
|
|||||||
normals = []
|
normals = []
|
||||||
us = OpenMaya.MFloatArray()
|
us = OpenMaya.MFloatArray()
|
||||||
vs = OpenMaya.MFloatArray()
|
vs = OpenMaya.MFloatArray()
|
||||||
newMesh = None
|
poly_count = [3] * mesh.faces_num
|
||||||
fnMesh = OpenMaya.MFnMesh()
|
|
||||||
for n in range(mesh.vertices_num):
|
for n in range(mesh.vertices_num):
|
||||||
i = 3 * n
|
i = 3 * n
|
||||||
vertices.append(OpenMaya.MPoint(mesh.vertices[i], mesh.vertices[i + 1], mesh.vertices[i + 2]))
|
vertices.append(OpenMaya.MPoint(mesh.vertices[i], mesh.vertices[i + 1], mesh.vertices[i + 2]))
|
||||||
@ -104,20 +103,19 @@ class DracoTranslator(OpenMayaMPx.MPxFileTranslator):
|
|||||||
normals.append(OpenMaya.MFloatVector(mesh.normals[i], mesh.normals[i + 1], mesh.normals[i + 2]))
|
normals.append(OpenMaya.MFloatVector(mesh.normals[i], mesh.normals[i + 1], mesh.normals[i + 2]))
|
||||||
if mesh.uvs:
|
if mesh.uvs:
|
||||||
i = 2 * n
|
i = 2 * n
|
||||||
us.append(float(mesh.uvs[i]))
|
us.append(mesh.uvs[i])
|
||||||
vs.append(float(mesh.uvs[i + 1]))
|
vs.append(mesh.uvs[i + 1])
|
||||||
|
|
||||||
poly_count = [3] * mesh.faces_num
|
|
||||||
|
|
||||||
#create mesh
|
#create mesh
|
||||||
if mesh.uvs:
|
fnMesh = OpenMaya.MFnMesh()
|
||||||
#TODO: ensure the mesh actually uses the uvs inside maya
|
|
||||||
newMesh = fnMesh.create(vertices, poly_count, mesh.faces, uValues=us, vValues=vs)
|
|
||||||
else:
|
|
||||||
newMesh = fnMesh.create(vertices, poly_count, mesh.faces)
|
newMesh = fnMesh.create(vertices, poly_count, mesh.faces)
|
||||||
|
|
||||||
if mesh.normals:
|
if mesh.normals:
|
||||||
fnMesh.setVertexNormals(normals, range(len(vertices)))
|
fnMesh.setVertexNormals(normals, range(len(vertices)))
|
||||||
|
if mesh.uvs:
|
||||||
|
uvSetsNames = fnMesh.getUVSetNames()
|
||||||
|
fnMesh.setUVs(us, vs, uvSetsNames[0])
|
||||||
|
fnMesh.assignUVs(poly_count, mesh.faces)
|
||||||
|
|
||||||
fnMesh.updateSurface()
|
fnMesh.updateSurface()
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user