-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathrender_mesh_sequence.py
More file actions
49 lines (36 loc) · 1.61 KB
/
render_mesh_sequence.py
File metadata and controls
49 lines (36 loc) · 1.61 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# TO RUN IT, in blender Pyhon terminal:
#
# filename = "/home/dan/Downloads/render_mesh_sequence.py"
# exec(compile(open(filename).read(), filename, 'exec'))
#
meshFolder = "/tmp/test"
renderFolder = "/tmp/test"
AmountOfNumbers = 5
def DeleteObject(object):
# Firs deselect all.
for iterationObject in bpy.context.scene.objects:
iterationObject.select = False
# Then select the given object.
object.select = True
# Delete the object and set the mode back to where it was.
bpy.ops.object.delete()
def RenderPath(folder = "", frame = 0, imageFrameBaseName="", fileEnding = "_render.png"):
return folder + "/" + imageFrameBaseName + str(frame).zfill(AmountOfNumbers) + fileEnding
def MeshPath(folder = "", frame = 0, fileEnding = ".obj", baseName = "", suffix = ""):
return folder + "/" + baseName + str(frame).zfill(AmountOfNumbers) + "" + fileEnding
def RenderSequence(startFrame = 0, endFrame = 1):
# Loop over the frames.
for currentFrame in range(startFrame, endFrame):
fullPathToMesh = MeshPath(folder = meshFolder, frame = currentFrame, fileEnding = ".obj", baseName = "mesh.")
print(fullPathToMesh)
bpy.ops.import_scene.obj(filepath = fullPathToMesh)
importedObject = bpy.context.selected_objects[0]
print(importedObject.name)
# Render the scene.
bpy.data.scenes['Scene'].render.filepath = RenderPath(folder = renderFolder, frame = currentFrame)
bpy.data.scenes['Scene'].render.resolution_percentage = 50
bpy.ops.render.render(write_still = True)
# change current frame
bpy.context.scene.frame_set(currentFrame)
DeleteObject(importedObject)
RenderSequence(startFrame = 0, endFrame = 3)