Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- newGeometry = Geometry()
- colors = {}
- uvs = {}
- loops = len(mesh.loops)
- verts = len(mesh.vertices)
- visit = verts * [False]
- # Loop through each vertex color layer
- for vertex_color in mesh.vertex_colors:
- # Look into each loop's vertex
- for loop in range(loops):
- v = mesh.loops[loop].vertex_index
- c = vertex_color.data[loop].color
- if not visit[v]:
- colors[v] = c
- visit[v] = True
- # Loop through each uv layer
- for uv_layer in mesh.uv_layers:
- for loop in range(loops):
- vertex = mesh.loops[loop].vertex_index
- uv = uv_layer.data[loop].uv
- uvs[vertex] = uv
- # Loop through mesh vertices
- for vertex in mesh.vertices:
- i = vertex.index
- newVertex = Vertex()
- newVertex.Position = Vector3(vertex.co[0], vertex.co[1], vertex.co[2])
- newVertex.Normal = Vector3(vertex.normal[0], vertex.normal[1], vertex.normal[2])
- if len(colors) > 0:
- newVertex.Color = RGBA(
- colors[i][0], colors[i][1], colors[i][2], colors[i][3]
- )
- newVertex.UV = Vector2(uvs[i][0], uvs[i][1])
- newGeometry.Vertices.append(newVertex)
- mesh.calc_loop_triangles()
- # Loop through mesh faces in order to get vertex indices
- for tri in mesh.loop_triangles:
- for i in tri.vertices:
- newGeometry.Indices.append(i)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement