Fix T51627: .mdd & .pc2 exporters never releasing temp mesh data.
Based on patch by Kai Kostack (@kaikostack), thanks!
This commit is contained in:
parent
0ed2792d30
commit
51ee36db62
Notes:
blender-bot
2023-02-14 19:38:47 +01:00
Referenced by issue #51627, .mdd & .pc2 export leave unfreed mesh data in memory killing Blender on larger animations
|
@ -19,7 +19,7 @@
|
|||
bl_info = {
|
||||
"name": "Export Pointcache Format(.pc2)",
|
||||
"author": "Florian Meyer (tstscr)",
|
||||
"version": (1, 1),
|
||||
"version": (1, 1, 1),
|
||||
"blender": (2, 71, 0),
|
||||
"location": "File > Export > Pointcache (.pc2)",
|
||||
"description": "Export mesh Pointcache data (.pc2)",
|
||||
|
@ -79,6 +79,7 @@ def do_export(context, props, filepath):
|
|||
me = ob.to_mesh(sc, apply_modifiers, 'PREVIEW')
|
||||
|
||||
if len(me.vertices) != vertCount:
|
||||
bpy.data.meshes.remove(me, do_unlink=True)
|
||||
file.close()
|
||||
try:
|
||||
remove(filepath)
|
||||
|
@ -100,6 +101,9 @@ def do_export(context, props, filepath):
|
|||
float(v.co[2]))
|
||||
file.write(thisVertex)
|
||||
|
||||
bpy.data.meshes.remove(me, do_unlink=True)
|
||||
|
||||
|
||||
file.flush()
|
||||
file.close()
|
||||
return True
|
||||
|
|
|
@ -21,6 +21,7 @@
|
|||
bl_info = {
|
||||
"name": "NewTek MDD format",
|
||||
"author": "Bill L.Nieuwendorp",
|
||||
"version": (1, 0, 1),
|
||||
"blender": (2, 57, 0),
|
||||
"location": "File > Import-Export",
|
||||
"description": "Import-Export MDD as mesh shape keys",
|
||||
|
|
|
@ -98,6 +98,8 @@ def save(context, filepath="", frame_start=1, frame_end=300, fps=25.0, use_rest_
|
|||
me.transform(mat_flip * obj.matrix_world)
|
||||
f.write(pack(">%df" % (numverts * 3), *[axis for v in me.vertices for axis in v.co]))
|
||||
|
||||
bpy.data.meshes.remove(me, do_unlink=True)
|
||||
|
||||
for frame in range(frame_start, frame_end + 1): # in order to start at desired frame
|
||||
scene.frame_set(frame)
|
||||
me = obj.to_mesh(scene, True, 'PREVIEW')
|
||||
|
@ -107,6 +109,8 @@ def save(context, filepath="", frame_start=1, frame_end=300, fps=25.0, use_rest_
|
|||
# Write the vertex data
|
||||
f.write(pack(">%df" % (numverts * 3), *[axis for v in me.vertices for axis in v.co]))
|
||||
|
||||
bpy.data.meshes.remove(me, do_unlink=True)
|
||||
|
||||
f.close()
|
||||
|
||||
print('MDD Exported: %r frames:%d\n' % (filepath, numframes - 1))
|
||||
|
|
Loading…
Reference in New Issue