From 6de6649d6004a5811474f9eea88d9407a40e216a Mon Sep 17 00:00:00 2001 From: Mark Hale Date: Tue, 28 Feb 2017 01:10:07 +0000 Subject: [PATCH 1/3] Video script. Signed-off-by: Mark Hale Former-commit-id: bb35bc5d51e394024da78999e9f99669410e8230 --- contrib/blender/README.md | 1 + contrib/blender/common.py | 44 ++++++++++++++++++ contrib/blender/odm_photo.py | 46 ++----------------- contrib/blender/odm_video.py | 79 ++++++++++++++++++++++++++++++++ contrib/blender/photo_360.blend | Bin 818596 -> 822140 bytes 5 files changed, 128 insertions(+), 42 deletions(-) create mode 100644 contrib/blender/common.py create mode 100644 contrib/blender/odm_video.py diff --git a/contrib/blender/README.md b/contrib/blender/README.md index 791cc5d5..6c92f74f 100644 --- a/contrib/blender/README.md +++ b/contrib/blender/README.md @@ -2,6 +2,7 @@ # odm_photo Renders photos from ODM generated texture models. Currently can produce 360 panoramic photos and 360 3D panoramic (VR) photos. +NB: the default resolution for 360 photos is 6000x3000 (maximum supported by Facebook). ## Requirements * Blender diff --git a/contrib/blender/common.py b/contrib/blender/common.py new file mode 100644 index 00000000..32061d2c --- /dev/null +++ b/contrib/blender/common.py @@ -0,0 +1,44 @@ +import bpy +import materials_utils + +def loadMesh(file): + + bpy.utils.register_module('materials_utils') + + bpy.ops.import_scene.obj(filepath=file, + axis_forward='Y', axis_up='Z') + + bpy.ops.xps_tools.convert_to_cycles_all() + + model = bpy.data.objects[-1] + minX = float('inf') + maxX = float('-inf') + minY = float('inf') + maxY = float('-inf') + minZ = float('inf') + maxZ = float('-inf') + for coord in model.bound_box: + x = coord[0] + y = coord[1] + z = coord[2] + minX = min(x, minX) + maxX = max(x, maxX) + minY = min(y, minY) + maxY = max(y, maxY) + minZ = min(z, minZ) + maxZ = max(z, maxZ) + + model.location[2] += (maxZ - minZ)/2 + + surfaceShaderType = 'ShaderNodeEmission' + surfaceShaderName = 'Emission' + + for m in bpy.data.materials: + nt = m.node_tree + nt.nodes.remove(nt.nodes['Color Mult']) + nt.nodes.remove(nt.nodes['Diffuse BSDF']) + nt.nodes.new(surfaceShaderType) + nt.links.new(nt.nodes['Material Output'].inputs[0], + nt.nodes[surfaceShaderName].outputs[0]) + nt.links.new(nt.nodes[surfaceShaderName].inputs[0], + nt.nodes['Diffuse Texture'].outputs[0]) diff --git a/contrib/blender/odm_photo.py b/contrib/blender/odm_photo.py index 6f9bb858..b63cdcf3 100644 --- a/contrib/blender/odm_photo.py +++ b/contrib/blender/odm_photo.py @@ -10,11 +10,8 @@ import sys import bpy -import materials_utils import subprocess - -surfaceShaderType = 'ShaderNodeEmission' -surfaceShaderName = 'Emission' +from common import loadMesh def main(): @@ -24,47 +21,12 @@ def main(): projectHome = sys.argv[-1] - bpy.utils.register_module('materials_utils') - - bpy.ops.import_scene.obj(filepath=projectHome + - '/odm_texturing/odm_textured_model_geo.obj', - axis_forward='Y', axis_up='Z') - - bpy.ops.xps_tools.convert_to_cycles_all() - - model = bpy.data.objects[-1] - minX = float('inf') - maxX = float('-inf') - minY = float('inf') - maxY = float('-inf') - minZ = float('inf') - maxZ = float('-inf') - for coord in model.bound_box: - x = coord[0] - y = coord[1] - z = coord[2] - minX = min(x, minX) - maxX = max(x, maxX) - minY = min(y, minY) - maxY = max(y, maxY) - minZ = min(z, minZ) - maxZ = max(z, maxZ) - - model.location[2] += (maxZ - minZ)/2 - - for m in bpy.data.materials: - nt = m.node_tree - nt.nodes.remove(nt.nodes['Color Mult']) - nt.nodes.remove(nt.nodes['Diffuse BSDF']) - nt.nodes.new(surfaceShaderType) - nt.links.new(nt.nodes['Material Output'].inputs[0], - nt.nodes[surfaceShaderName].outputs[0]) - nt.links.new(nt.nodes[surfaceShaderName].inputs[0], - nt.nodes['Diffuse Texture'].outputs[0]) + loadMesh(projectHome + + '/odm_texturing/odm_textured_model_geo.obj') blendName = bpy.path.display_name_from_filepath(bpy.data.filepath) fileName = projectHome + '/odm_photo/odm_' + blendName - render = bpy.data.scenes[0].render + render = bpy.data.scenes['Scene'].render render.filepath = fileName bpy.ops.render.render(write_still=True) diff --git a/contrib/blender/odm_video.py b/contrib/blender/odm_video.py new file mode 100644 index 00000000..47469f51 --- /dev/null +++ b/contrib/blender/odm_video.py @@ -0,0 +1,79 @@ +#!/usr/bin/env python + +# Renders a video. +# To generate a 360 panoramic video: +# blender -b photo_360.blend --python odm_video.py -- + +import sys +import bpy +import subprocess +from common import loadMesh + + +def main(): + + if len(sys.argv) < 7 or sys.argv[-4] != '--': + sys.exit('Please provide the ODM project path, camera waypoints (xyz format), and number of frames.') + + projectHome = sys.argv[-3] + waypointFile = sys.argv[-2] + numFrames = int(sys.argv[-1]) + + loadMesh(projectHome + + '/odm_texturing/odm_textured_model_geo.obj') + + waypoints = loadWaypoints(waypointFile) + numWaypoints = len(waypoints) + + scene = bpy.data.scenes['Scene'] + + # create path thru waypoints + curve = bpy.data.curves.new(name='CameraPath', type='CURVE') + curve.dimensions = '3D' + nurbs = curve.splines.new('NURBS') + nurbs.points.add(numWaypoints-1) + weight = 1 + for i in range(numWaypoints): + nurbs.points[i].co[0] = waypoints[i][0] + nurbs.points[i].co[1] = waypoints[i][1] + nurbs.points[i].co[2] = waypoints[i][2] + nurbs.points[i].co[3] = weight + nurbs.use_endpoint_u = True + path = bpy.data.objects.new(name='CameraPath', object_data=curve) + scene.objects.link(path) + + camera = bpy.data.objects['Camera'] + camera.location[0] = 0 + camera.location[1] = 0 + camera.location[2] = 0 + followPath = camera.constraints.new(type='FOLLOW_PATH') + followPath.name = 'CameraFollowPath' + followPath.target = path + followPath.use_curve_follow = True + animateContext = bpy.context.copy() + animateContext['constraint'] = followPath + bpy.ops.constraint.followpath_path_animate(animateContext, constraint='CameraFollowPath') + + blendName = bpy.path.display_name_from_filepath(bpy.data.filepath) + fileName = projectHome + '/odm_video/odm_' + blendName.replace('photo', 'video') + scene.frame_start = 0 + scene.frame_end = numFrames - 1 + render = scene.render + render.filepath = fileName + render.resolution_x = 4096 + render.resolution_y = 2048 + render.image_settings.file_format = 'FFMPEG' + #bpy.ops.render.render(animation=True) + + +def loadWaypoints(filename): + waypoints = [] + with open(filename) as f: + for line in f: + xyz = line.split() + waypoints.append((float(xyz[0]), float(xyz[1]), float(xyz[2]))) + return waypoints + + +if __name__ == '__main__': + main() diff --git a/contrib/blender/photo_360.blend b/contrib/blender/photo_360.blend index a55e75e16b214323ace601605fb521d5e724acb6..6e2769479b906dc50b4689ff961436d99810902a 100644 GIT binary patch delta 123039 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 a;@?-YJ6Stg#%4@3<(XcJVA6zsQ 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 From 1b5f9fb87291749ec205395f793218b0545433ee Mon Sep 17 00:00:00 2001 From: Mark Hale Date: Mon, 6 Mar 2017 17:11:23 +0000 Subject: [PATCH 2/3] Code formatting. Signed-off-by: Mark Hale Former-commit-id: d19600b3dc03aeb32a804c40cd31e83f15116d2b --- contrib/blender/common.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/contrib/blender/common.py b/contrib/blender/common.py index 32061d2c..e3774982 100644 --- a/contrib/blender/common.py +++ b/contrib/blender/common.py @@ -6,7 +6,8 @@ def loadMesh(file): bpy.utils.register_module('materials_utils') bpy.ops.import_scene.obj(filepath=file, - axis_forward='Y', axis_up='Z') + axis_forward='Y', + axis_up='Z') bpy.ops.xps_tools.convert_to_cycles_all() From 997375493fe0842967aa199263c8ff7b9917c0fa Mon Sep 17 00:00:00 2001 From: Mark Hale Date: Tue, 7 Mar 2017 23:04:09 +0000 Subject: [PATCH 3/3] VR videos. Signed-off-by: Mark Hale Former-commit-id: 7e14c54ae7696ac75aa54201674b6fa5c8a0801c --- contrib/blender/README.md | 17 +++++++++++++ contrib/blender/odm_video.py | 46 +++++++++++++++++++++++++++++++----- 2 files changed, 57 insertions(+), 6 deletions(-) diff --git a/contrib/blender/README.md b/contrib/blender/README.md index 6c92f74f..74b93008 100644 --- a/contrib/blender/README.md +++ b/contrib/blender/README.md @@ -22,3 +22,20 @@ To generate a 360 3D panoramic photo: Output is `/odm_photo/odm_photo_vr_L.jpg` and `/odm_photo/odm_photo_vr_R.jpg`. **NB: argument order matters!** + +# odm_video +Renders videos from ODM generated texture models. +Currently can produce 360 panoramic videos. +NB: the default resolution is 4096x2048 (maximum supported by Facebook). + +## Requirements +* Blender +* Python 2.7 (must be on your PATH) +* Spatial Media Metadata Injector (https://github.com/google/spatial-media/tree/master/spatialmedia) (place in `spatialmedia` subdirectory) + +## Usage +To generate a 360 panoramic photo: + + blender -b photo_360.blend --python odm_video.py -- + +Output is `/odm_video/odm_video_360.mp4`. diff --git a/contrib/blender/odm_video.py b/contrib/blender/odm_video.py index 47469f51..6faf8b15 100644 --- a/contrib/blender/odm_video.py +++ b/contrib/blender/odm_video.py @@ -5,8 +5,9 @@ # blender -b photo_360.blend --python odm_video.py -- import sys -import bpy import subprocess +import os +import bpy from common import loadMesh @@ -30,6 +31,7 @@ def main(): # create path thru waypoints curve = bpy.data.curves.new(name='CameraPath', type='CURVE') curve.dimensions = '3D' + curve.twist_mode = 'Z_UP' nurbs = curve.splines.new('NURBS') nurbs.points.add(numWaypoints-1) weight = 1 @@ -52,18 +54,37 @@ def main(): followPath.use_curve_follow = True animateContext = bpy.context.copy() animateContext['constraint'] = followPath - bpy.ops.constraint.followpath_path_animate(animateContext, constraint='CameraFollowPath') + bpy.ops.constraint.followpath_path_animate(animateContext, + constraint='CameraFollowPath', + frame_start=0, + length=numFrames) blendName = bpy.path.display_name_from_filepath(bpy.data.filepath) fileName = projectHome + '/odm_video/odm_' + blendName.replace('photo', 'video') scene.frame_start = 0 - scene.frame_end = numFrames - 1 + scene.frame_end = numFrames render = scene.render - render.filepath = fileName + render.filepath = fileName + '.mp4' + render.image_settings.file_format = 'FFMPEG' + if(render.use_multiview): + render.image_settings.stereo_3d_format.display_mode = 'TOPBOTTOM' + render.image_settings.views_format = 'STEREO_3D' + render.views[0].file_suffix = '' + format3d = 'top-bottom' + else: + width = render.resolution_x + height = render.resolution_y + format3d = 'none' render.resolution_x = 4096 render.resolution_y = 2048 - render.image_settings.file_format = 'FFMPEG' - #bpy.ops.render.render(animation=True) + + render.ffmpeg.audio_codec = 'AAC' + render.ffmpeg.codec = 'H264' + render.ffmpeg.format = 'MPEG4' + render.ffmpeg.video_bitrate = 45000 + bpy.ops.render.render(animation=True) + + writeMetadata(fileName+'.mp4', format3d) def loadWaypoints(filename): @@ -75,5 +96,18 @@ def loadWaypoints(filename): return waypoints +def writeMetadata(filename, format3d): + subprocess.run(['python', + 'spatialmedia', + '-i', + '--stereo='+format3d, + filename, + filename+'.injected']) + # check metadata injector was succesful + if os.path.exists(filename+'.injected'): + os.remove(filename) + os.rename(filename+'.injected', filename) + + if __name__ == '__main__': main()