Merge branch 'develop' of github.com:MegaGlest/megaglest-source into develop

This commit is contained in:
titiger 2021-04-16 01:56:16 +02:00
commit 12bd61c218
1 changed files with 13 additions and 12 deletions

View File

@ -398,20 +398,21 @@ def createMesh(filename, header, data, toblender, operator):
# different values in any frame. That could still cause problems.
# Figure out a better solution :p (e.g. moving verts to random
# different positions).
# (We tried putting the verts in a line, to prevent merging.
# This was a problem because there are some verts that need merging.)
header_most_diff = 0 # This is the header we will use to define the mesh.
n_max_diff = 0 # Max number of "different" vertices found in a frame so far.
n_max_diff = 0 # Max number of "different" vertices found in the frame.
for x in range(0, header.framecount):
n_diff_verts = 0 # Current number of "different" vertices.
# Find nubmer of different verts
diff_verts = set()
n_diff_verts = 0
for i in range(0, header.vertexcount * 3, 3):
vert_cmp = data.vertices[x * header.vertexcount * 3 + i:x * header.vertexcount * 3 + i + 3]
vert_diff = True
for j in range(i + 3, header.vertexcount * 3, 3):
if (data.vertices[x * header.vertexcount * 3 + j:x * header.vertexcount * 3 + j + 3] == vert_cmp):
vert_diff = False
break
n_diff_verts += vert_diff
vert = tuple(data.vertices[x * header.vertexcount * 3 + i:x * header.vertexcount * 3 + i + 3])
if (vert not in diff_verts):
n_diff_verts += 1
diff_verts.add(vert)
if n_diff_verts == header.vertexcount:
# if we've found a frame where all the verts are different, we don't need to do anymore searching.
header_most_diff = x
@ -423,12 +424,12 @@ def createMesh(filename, header, data, toblender, operator):
# the previous match, this frame is the new max.
n_max_diff = n_diff_verts
header_most_diff = x
# Get the Vertices and Normals into empty Mesh
for x in range(0, header.vertexcount * 3, 3):
vertsCO.append(tuple(data.vertices[header_most_diff*header.vertexcount*3+x:header_most_diff*header.vertexcount*3+x+3]))
vertsNormal.extend([(data.normals[x], data.normals[x + 1],
data.normals[x + 2])])
data.normals[x + 2])])
faces = []
faceuv = []
@ -548,7 +549,7 @@ def createMesh(filename, header, data, toblender, operator):
# activate one shapekey per frame
for i in range(0, header.framecount):
shape = mesh.shape_keys.key_blocks[i]
shape = mesh.shape_keys.key_blocks[i+1]
shape.value = 0.0
shape.keyframe_insert("value", frame=i)
shape.value = 1.0