mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-07-26 04:57:18 +02:00
[nodes] adding new node for Animated Camera Rendering (no errors but not functional yet)
This commit is contained in:
parent
7f95a4ba02
commit
64da47fc8e
3 changed files with 151 additions and 0 deletions
92
meshroom/nodes/blender/scripts/camera_support.py
Normal file
92
meshroom/nodes/blender/scripts/camera_support.py
Normal file
|
@ -0,0 +1,92 @@
|
|||
import bpy
|
||||
import bmesh
|
||||
import os
|
||||
import mathutils
|
||||
import math
|
||||
import sys # to get command line args
|
||||
import argparse # to parse options for us and print a nice help message
|
||||
from math import radians
|
||||
|
||||
def main():
|
||||
argv = sys.argv
|
||||
|
||||
if "--" not in argv:
|
||||
argv = [] # as if no args are passed
|
||||
else:
|
||||
argv = argv[argv.index("--") + 1:] # get all args after "--"
|
||||
|
||||
# When --help or no args are given, print this help
|
||||
usage_text = (
|
||||
"Run blender in background mode with this script:"
|
||||
" blender --background --python " + __file__ + " -- [options]"
|
||||
)
|
||||
|
||||
parser = argparse.ArgumentParser(description=usage_text)
|
||||
|
||||
parser.add_argument(
|
||||
"--sfMData", dest="SFM_Data", metavar='FILE', required=True,
|
||||
help="These info carry the cloud point we need.",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--sfMCameraPath", dest="SFM_cam_path", metavar='FILE', required=True,
|
||||
help="This text will be used to render an image",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--undistortedImages", dest="undisto_images", metavar='FILE', required=True,
|
||||
help="Save the generated file to the specified path",
|
||||
)
|
||||
|
||||
parser.add_argument(
|
||||
"--outputPath", dest="output_path", metavar='FILE', required=True,
|
||||
help="Render an image to the specified path",
|
||||
)
|
||||
|
||||
args = parser.parse_args(argv)
|
||||
|
||||
if not argv:
|
||||
parser.print_help()
|
||||
return
|
||||
|
||||
if not args.SFM_cam_path:
|
||||
print("Error: --SFM_cam_path argument not given, aborting.")
|
||||
parser.print_help()
|
||||
return
|
||||
|
||||
if not args.undisto_images:
|
||||
print("Error: --undisto_images argument not given, aborting.")
|
||||
parser.print_help()
|
||||
return
|
||||
|
||||
if not args.output_path:
|
||||
print("Error: --output_path argument not given, aborting.")
|
||||
parser.print_help()
|
||||
return
|
||||
|
||||
print(args.SFM_cam_path)
|
||||
|
||||
#import abd
|
||||
try:
|
||||
bpy.ops.wm.alembic_import(filepath=args.SFM_cam_path)
|
||||
animated_cams = bpy.context.selected_editable_objects[:] #Contains ['animxform_RJBframe_SONY_ILCE-7M3', 'mvgCameras', 'mvgCamerasUndefined', 'mvgPointCloud', 'mvgCloud', 'mvgRoot']
|
||||
animated_cam = animated_cams[0]
|
||||
|
||||
except:
|
||||
print("Error: while importing the alembic file.")
|
||||
|
||||
# import Undistorted Images
|
||||
|
||||
undis_imgs = []
|
||||
try:
|
||||
files = os.listdir(args.undisto_images)
|
||||
for f in files :
|
||||
if f.endswith(".exr") :
|
||||
undis_imgs.append(bpy.ops.image.open(filepath=args.undisto_images + '/' + f))
|
||||
except:
|
||||
print("Error: while importing the undistorted images.")
|
||||
|
||||
#bpy.ops.render.render(animation=True)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
Loading…
Add table
Add a link
Reference in a new issue