mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-06-05 20:31:56 +02:00
[nodes] Replace desc.Node.internalFolder
with {nodeCacheFolder}
This commit is contained in:
parent
6cbb97d9a8
commit
2290c12da2
88 changed files with 160 additions and 160 deletions
|
@ -44,6 +44,6 @@ class ApplyCalibration(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="SMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
value="{nodeCacheFolder}/sfmData.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -124,6 +124,6 @@ class CameraCalibration(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Output",
|
||||
description="Output filename for intrinsic [and extrinsic] parameters.",
|
||||
value=desc.Node.internalFolder + "/cameraCalibration.cal",
|
||||
value="{nodeCacheFolder}/cameraCalibration.cal",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -487,7 +487,7 @@ The needed metadata are:
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Output SfMData.",
|
||||
value=desc.Node.internalFolder + "cameraInit.sfm",
|
||||
value="{nodeCacheFolder}/cameraInit.sfm",
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -191,12 +191,12 @@ class CameraLocalization(desc.AVCommandLineNode):
|
|||
name="outputAlembic",
|
||||
label="Alembic",
|
||||
description="Filename for the SfMData export file (where camera poses will be stored).",
|
||||
value=desc.Node.internalFolder + "trackedCameras.abc",
|
||||
value="{nodeCacheFolder}/trackedCameras.abc",
|
||||
),
|
||||
desc.File(
|
||||
name="outputJSON",
|
||||
label="JSON File",
|
||||
description="Filename for the localization results as .json.",
|
||||
value=desc.Node.internalFolder + "trackedCameras.json",
|
||||
value="{nodeCacheFolder}/trackedCameras.json",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -156,6 +156,6 @@ class CameraRigCalibration(desc.AVCommandLineNode):
|
|||
name="outfile",
|
||||
label="Output File",
|
||||
description="The name of the file to store the calibration data in.",
|
||||
value=desc.Node.internalFolder + "cameraRigCalibration.rigCal",
|
||||
value="{nodeCacheFolder}/cameraRigCalibration.rigCal",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -162,6 +162,6 @@ class CameraRigLocalization(desc.AVCommandLineNode):
|
|||
name="outputAlembic",
|
||||
label="Alembic",
|
||||
description="Filename for the SfMData export file (where camera poses will be stored).",
|
||||
value=desc.Node.internalFolder + "trackedcameras.abc",
|
||||
value="{nodeCacheFolder}/trackedcameras.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -47,6 +47,6 @@ Estimate the camera intrinsics and extrinsincs on a set of checkerboard images.
|
|||
name="output",
|
||||
label="SfMData File",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
value="{nodeCacheFolder}/sfmData.sfm",
|
||||
)
|
||||
]
|
||||
|
|
|
@ -61,7 +61,7 @@ The detection method also supports nested calibration grids.
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="checkerLines",
|
||||
|
@ -69,7 +69,7 @@ The detection method also supports nested calibration grids.
|
|||
label="Checker Lines",
|
||||
description="Debug images.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>.png",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>.png",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
]
|
||||
|
|
|
@ -69,13 +69,13 @@ If multiple color charts are submitted, only the first one will be taken in acco
|
|||
name="outSfMData",
|
||||
label="SfMData",
|
||||
description="Output SfMData.",
|
||||
value=lambda attr: (desc.Node.internalFolder + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
|
||||
value=lambda attr: ("{nodeCacheFolder}/" + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
name="output",
|
||||
label="Folder",
|
||||
description="Output images folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -62,6 +62,6 @@ Dev notes:
|
|||
name="outputData",
|
||||
label="Color Checker Data",
|
||||
description="Output position and colorimetric data extracted from detected color checkers in the images.",
|
||||
value=desc.Node.internalFolder + "/ccheckers.json",
|
||||
value="{nodeCacheFolder}/ccheckers.json",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -48,6 +48,6 @@ class ConvertDistortion(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Output",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
value="{nodeCacheFolder}/sfm.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -39,6 +39,6 @@ class ConvertMesh(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Mesh",
|
||||
description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
|
||||
value=desc.Node.internalFolder + "mesh." + "{outputMeshFileTypeValue}",
|
||||
value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -94,6 +94,6 @@ It can also be used to remove specific parts of from an SfM scene (like filter a
|
|||
name="output",
|
||||
label="Output",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.{fileExtValue}",
|
||||
value="{nodeCacheFolder}/sfm.{fileExtValue}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -565,7 +565,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output folder for generated depth maps.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
# these attributes are only here to describe more accurately the output of the node
|
||||
# by specifying that it generates 2 sequences of images
|
||||
|
@ -575,7 +575,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="Depth Maps",
|
||||
description="Generated depth maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_depthMap.exr",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -583,14 +583,14 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="Sim Maps",
|
||||
description="Generated sim maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_simMap.exr",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
name="tilePattern",
|
||||
label="Tile Pattern",
|
||||
description="Debug: Tile pattern.",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_tilePattern.obj",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_tilePattern.obj",
|
||||
group="", # do not export on the command line
|
||||
enabled=lambda node: node.intermediateResults.exportTilePattern.value,
|
||||
),
|
||||
|
@ -599,7 +599,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="Depth Maps SGM",
|
||||
description="Debug: Depth maps SGM",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgm.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_depthMap_sgm.exr",
|
||||
group="", # do not export on the command line
|
||||
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
|
||||
),
|
||||
|
@ -608,7 +608,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="Depth Maps SGM Upscaled",
|
||||
description="Debug: Depth maps SGM upscaled.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_sgmUpscaled.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_depthMap_sgmUpscaled.exr",
|
||||
group="", # do not export on the command line
|
||||
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
|
||||
),
|
||||
|
@ -617,7 +617,7 @@ Use a downscale factor of one (full-resolution) only if the quality of the input
|
|||
label="Depth Maps Refined",
|
||||
description="Debug: Depth maps after refinement",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap_refinedFused.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_depthMap_refinedFused.exr",
|
||||
group="", # do not export on the command line
|
||||
enabled=lambda node: node.intermediateResults.exportIntermediateDepthSimMaps.value,
|
||||
),
|
||||
|
|
|
@ -113,7 +113,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
name="output",
|
||||
label="Filtered Depth Maps Folder",
|
||||
description="Output folder for generated depth maps.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}"
|
||||
),
|
||||
# these attributes are only here to describe more accurately the output of the node
|
||||
# by specifying that it generates 2 sequences of images
|
||||
|
@ -123,7 +123,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
label="Depth Maps",
|
||||
description="Filtered depth maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_depthMap.exr",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -131,7 +131,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
label="Sim Maps",
|
||||
description="Filtered sim maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_simMap.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_simMap.exr",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -139,7 +139,7 @@ This allows to filter unstable points before starting the fusion of all depth ma
|
|||
label="Normal Maps",
|
||||
description="Normal maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_normalMap.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_normalMap.exr",
|
||||
enabled=lambda node: node.computeNormalMaps.value,
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
|
|
|
@ -39,14 +39,14 @@ class DepthMapRendering(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="depth",
|
||||
label="Depth Maps",
|
||||
description="Rendered depth maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_depthMap.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_depthMap.exr",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -54,7 +54,7 @@ class DepthMapRendering(desc.AVCommandLineNode):
|
|||
label="Masks",
|
||||
description="Masks.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_mask.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_mask.exr",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
]
|
||||
|
|
|
@ -59,6 +59,6 @@ Calibration of a camera/lens couple distortion using a full screen checkerboard.
|
|||
name="output",
|
||||
label="SfMData File",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
value="{nodeCacheFolder}/sfmData.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -83,27 +83,27 @@ Based on the input image filenames, it will recognize the input video sequence t
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output folder with animated camera and undistorted images.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="outputCamera",
|
||||
label="Camera",
|
||||
description="Output filename for the animated camera in Alembic format.",
|
||||
value=desc.Node.internalFolder + "camera.abc",
|
||||
value="{nodeCacheFolder}/camera.abc",
|
||||
group="", # exclude from command line
|
||||
),
|
||||
desc.File(
|
||||
name="outputUndistorted",
|
||||
label="Undistorted Folder",
|
||||
description="Output undistorted folder.",
|
||||
value=desc.Node.internalFolder + "undistort/",
|
||||
value="{nodeCacheFolder}/undistort/",
|
||||
group="", # exclude from command line
|
||||
),
|
||||
desc.File(
|
||||
name="outputImages",
|
||||
label="Undistorted Images",
|
||||
description="Output undistorted images.",
|
||||
value=desc.Node.internalFolder + "undistort/" + "<INTRINSIC_ID>_<FILESTEM>.{undistortedImageTypeValue}",
|
||||
value="{nodeCacheFolder}/undistort/<INTRINSIC_ID>_<FILESTEM>.{undistortedImageTypeValue}",
|
||||
semantic="image",
|
||||
group="", # exclude from command line
|
||||
enabled=lambda node: node.exportUndistortedImages.value,
|
||||
|
|
|
@ -32,6 +32,6 @@ class ExportColoredPointCloud(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Point Cloud Filepath",
|
||||
description="Output point cloud with visibilities as SfMData file.",
|
||||
value=desc.Node.internalFolder + "pointCloud.abc",
|
||||
value="{nodeCacheFolder}/pointCloud.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -59,13 +59,13 @@ It also allows to export an undistorted image of the lens grids for validation.
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="distortionNukeNode",
|
||||
label="Distortion Nuke Node",
|
||||
description="Calibrated distortion ST map.",
|
||||
value=desc.Node.internalFolder + "nukeLensDistortion_<INTRINSIC_ID>.nk",
|
||||
value="{nodeCacheFolder}/nukeLensDistortion_<INTRINSIC_ID>.nk",
|
||||
group="", # do not export on the command line
|
||||
enabled=lambda node: node.exportNukeNode.value,
|
||||
),
|
||||
|
@ -74,7 +74,7 @@ It also allows to export an undistorted image of the lens grids for validation.
|
|||
label="Undistorted Lens Grids",
|
||||
description="Undistorted lens grids for validation",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "lensgrid_<VIEW_ID>_undistort.exr",
|
||||
value="{nodeCacheFolder}/lensgrid_<VIEW_ID>_undistort.exr",
|
||||
group="", # do not export on the command line
|
||||
enabled=lambda node: node.exportLensGridsUndistorted.value,
|
||||
),
|
||||
|
@ -83,7 +83,7 @@ It also allows to export an undistorted image of the lens grids for validation.
|
|||
label="Distortion ST Map",
|
||||
description="Calibrated distortion ST map.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_distort.exr",
|
||||
value="{nodeCacheFolder}/stmap_<INTRINSIC_ID>_distort.exr",
|
||||
group="", # do not export on the command line
|
||||
enabled=lambda node: node.exportSTMaps.value,
|
||||
),
|
||||
|
@ -92,7 +92,7 @@ It also allows to export an undistorted image of the lens grids for validation.
|
|||
label="Undistortion ST Map",
|
||||
description="Calibrated undistortion ST map.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "stmap_<INTRINSIC_ID>_undistort.exr",
|
||||
value="{nodeCacheFolder}/stmap_<INTRINSIC_ID>_undistort.exr",
|
||||
group="", # do not export on the command line
|
||||
enabled=lambda node: node.exportSTMaps.value,
|
||||
),
|
||||
|
|
|
@ -76,6 +76,6 @@ class ExportMatches(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output path for the features and descriptors files (*.feat, *.desc).",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -56,13 +56,13 @@ class ExportMaya(desc.Node):
|
|||
name="meloutput",
|
||||
label="Mel Script",
|
||||
description="Generated mel script.",
|
||||
value=desc.Node.internalFolder + "import.mel",
|
||||
value="{nodeCacheFolder}/import.mel",
|
||||
),
|
||||
desc.File(
|
||||
name="mayaoutput",
|
||||
label="Maya Scene",
|
||||
description="Generated Maya scene.",
|
||||
value=desc.Node.internalFolder + "scene.mb",
|
||||
value="{nodeCacheFolder}/scene.mb",
|
||||
enabled=lambda node: node.generateMaya.value,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -41,6 +41,6 @@ class ExportUSD(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Output",
|
||||
description="Path to the output file.",
|
||||
value=desc.Node.internalFolder + "output.{fileTypeValue}",
|
||||
value="{nodeCacheFolder}/output.{fileTypeValue}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -68,7 +68,7 @@ Using exifTool, this node extracts metadata of all images referenced in a sfmDat
|
|||
name="output",
|
||||
label="Result Folder",
|
||||
description="Output path for the resulting metadata files.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -160,6 +160,6 @@ It is robust to motion-blur, depth-of-field, occlusion. Be careful to have enoug
|
|||
name="output",
|
||||
label="Features Folder",
|
||||
description="Output path for the features and descriptors files (*.feat, *.desc).",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -205,6 +205,6 @@ then it checks the number of features that validates this model and iterate thro
|
|||
name="output",
|
||||
label="Matches Folder",
|
||||
description="Path to a folder in which the computed matches are stored.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -115,6 +115,6 @@ Compare feature/descriptor matching repeatability on some dataset with known hom
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output path for the features and descriptors files (*.feat, *.desc).",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -61,6 +61,6 @@ Estimate the global rotation given tracks.
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
value="{nodeCacheFolder}/sfm.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -94,18 +94,18 @@ It is known to be faster but less robust to challenging datasets than the Increm
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
value="{nodeCacheFolder}/sfm.abc",
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Output Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
value="{nodeCacheFolder}/cameras.sfm",
|
||||
),
|
||||
desc.File(
|
||||
name="extraInfoFolder",
|
||||
label="Folder",
|
||||
description="Folder for intermediate reconstruction files and additional reconstruction information files.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -131,6 +131,6 @@ class ImageMasking(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Output",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -135,6 +135,6 @@ If images have known poses, use frustum intersection else use VocabularuTree.
|
|||
name="output",
|
||||
label="Image Pairs",
|
||||
description="Filepath to the output file with the list of selected image pairs.",
|
||||
value=desc.Node.internalFolder + "imageMatches.txt",
|
||||
value="{nodeCacheFolder}/imageMatches.txt",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -141,12 +141,12 @@ Thanks to this node, the FeatureMatching node will only compute the matches betw
|
|||
name="output",
|
||||
label="List File",
|
||||
description="Filepath to the output file with the list of selected image pairs.",
|
||||
value=desc.Node.internalFolder + "imageMatches.txt",
|
||||
value="{nodeCacheFolder}/imageMatches.txt",
|
||||
),
|
||||
desc.File(
|
||||
name="outputCombinedSfM",
|
||||
label="Combined SfM",
|
||||
description="Path for the combined SfMData file.",
|
||||
value=desc.Node.internalFolder + "combineSfM.sfm",
|
||||
value="{nodeCacheFolder}/combineSfM.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -15,20 +15,20 @@ def outputImagesValueFunct(attr):
|
|||
if inputExt in ['.abc', '.sfm']:
|
||||
fileStem = '<FILESTEM>' if attr.node.keepImageFilename.value else '<VIEW_ID>'
|
||||
# If we have an SfM in input
|
||||
return desc.Node.internalFolder + fileStem + (outputExt or '.*')
|
||||
return "{nodeCacheFolder}/" + fileStem + (outputExt or '.*')
|
||||
|
||||
if inputExt:
|
||||
# If we have one or multiple files in input
|
||||
return desc.Node.internalFolder + fileStem + (outputExt or inputExt)
|
||||
return "{nodeCacheFolder}/" + fileStem + (outputExt or inputExt)
|
||||
|
||||
if '*' in fileStem:
|
||||
# The fileStem of the input param is a regular expression,
|
||||
# so even if there is no file extension,
|
||||
# we consider that the expression represents files.
|
||||
return desc.Node.internalFolder + fileStem + (outputExt or '.*')
|
||||
return "{nodeCacheFolder}/" + fileStem + (outputExt or '.*')
|
||||
|
||||
# No extension and no expression means that the input param is a folder path
|
||||
return desc.Node.internalFolder + '*' + (outputExt or '.*')
|
||||
return "{nodeCacheFolder}/" + '*' + (outputExt or '.*')
|
||||
|
||||
|
||||
class ImageProcessing(desc.AVCommandLineNode):
|
||||
|
@ -608,14 +608,14 @@ Convert or apply filtering to the input images.
|
|||
name="outSfMData",
|
||||
label="SfMData",
|
||||
description="Output SfMData file.",
|
||||
value=lambda attr: (desc.Node.internalFolder + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
|
||||
value=lambda attr: ("{nodeCacheFolder}/" + os.path.basename(attr.node.input.value)) if (os.path.splitext(attr.node.input.value)[1] in [".abc", ".sfm"]) else "",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
name="output",
|
||||
label="Folder",
|
||||
description="Output images folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="outputImages",
|
||||
|
|
|
@ -81,14 +81,14 @@ Generate a mask with segmented labels for each pixel.
|
|||
name="output",
|
||||
label="Masks Folder",
|
||||
description="Output path for the masks.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="masks",
|
||||
label="Masks",
|
||||
description="Generated segmentation masks.",
|
||||
semantic="image",
|
||||
value=lambda attr: desc.Node.internalFolder + "<VIEW_ID>.exr" if not attr.node.keepFilename.value else desc.Node.internalFolder + "<FILESTEM>.exr",
|
||||
value=lambda attr: "{nodeCacheFolder}/<VIEW_ID>.exr" if not attr.node.keepFilename.value else "{nodeCacheFolder}/<FILESTEM>.exr",
|
||||
group="",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -60,6 +60,6 @@ Import an E57 file and generate an SfMData.
|
|||
name="output",
|
||||
label="Output",
|
||||
description="Path to the output JSON file.",
|
||||
value=desc.Node.internalFolder + "inputset.json",
|
||||
value="{nodeCacheFolder}/inputset.json",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -39,6 +39,6 @@ class ImportKnownPoses(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Output",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "/sfmData.abc",
|
||||
value="{nodeCacheFolder}/sfmData.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -390,20 +390,20 @@ You can extract frames at regular interval by configuring only the min/maxFrameS
|
|||
name="outputFolder",
|
||||
label="Folder",
|
||||
description="Output keyframes folder for extracted frames.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="outputSfMDataKeyframes",
|
||||
label="Keyframes SfMData",
|
||||
description="Output SfMData file containing all the selected keyframes.",
|
||||
value=desc.Node.internalFolder + "keyframes.sfm",
|
||||
value="{nodeCacheFolder}/keyframes.sfm",
|
||||
),
|
||||
desc.File(
|
||||
name="outputSfMDataFrames",
|
||||
label="Frames SfMData",
|
||||
description="Output SfMData file containing all the frames that were not selected as keyframes.\n"
|
||||
"If the input contains videos, this file will not be written since all the frames that were not selected do not actually exist on disk.",
|
||||
value=desc.Node.internalFolder + "frames.sfm",
|
||||
value="{nodeCacheFolder}/frames.sfm",
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ Calibrate LDR to HDR response curve from samples.
|
|||
name="samples",
|
||||
label="Samples Folder",
|
||||
description="Samples folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.IntParam(
|
||||
name="userNbBrackets",
|
||||
|
@ -151,7 +151,7 @@ Calibrate LDR to HDR response curve from samples.
|
|||
name="response",
|
||||
label="Response File",
|
||||
description="Path to the output response file.",
|
||||
value=desc.Node.internalFolder + "response_<INTRINSIC_ID>.csv",
|
||||
value="{nodeCacheFolder}/response_<INTRINSIC_ID>.csv",
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -228,14 +228,14 @@ Merge LDR images into HDR images.
|
|||
name="outputFolder",
|
||||
label="Folder",
|
||||
description="Path to the folder containing the merged HDR images.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
name="outSfMData",
|
||||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
value="{nodeCacheFolder}/sfmData.sfm",
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -176,7 +176,7 @@ Sample pixels from Low range images for HDR creation.
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output path for the samples.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
||||
|
|
|
@ -46,12 +46,12 @@ class LidarDecimating(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Sub-Meshes Directory",
|
||||
description="Output directory for sub-meshes.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="outputJson",
|
||||
label="Scene Description",
|
||||
description="Output scene description.",
|
||||
value=desc.Node.internalFolder + "scene.json",
|
||||
value="{nodeCacheFolder}/scene.json",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -35,6 +35,6 @@ class LidarMerging(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Mesh Path Output",
|
||||
description="Output directory for mesh.",
|
||||
value=desc.Node.internalFolder + "output.obj",
|
||||
value="{nodeCacheFolder}/output.obj",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -126,12 +126,12 @@ class LidarMeshing(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Sub-Meshes Directory",
|
||||
description="Output directory for sub-meshes",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="outputJson",
|
||||
label="Scene Description",
|
||||
description="Output scene description.",
|
||||
value=desc.Node.internalFolder + "scene.json",
|
||||
value="{nodeCacheFolder}/scene.json",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -60,14 +60,14 @@ Can also be used to calibrate a lighting dome (RTI type).
|
|||
name="outputFile",
|
||||
label="Light File",
|
||||
description="Light information will be written here.",
|
||||
value=desc.Node.internalFolder + "/lights.json",
|
||||
value="{nodeCacheFolder}/lights.json",
|
||||
),
|
||||
desc.File(
|
||||
name="lightingEstimationVisualization",
|
||||
label="Estimated Lighting Visualization",
|
||||
description="Estimated Lighting Visualization.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "/<FILESTEM>_{methodValue}.png",
|
||||
value="{nodeCacheFolder}/<FILESTEM>_{methodValue}.png",
|
||||
group=None,
|
||||
),
|
||||
]
|
||||
|
|
|
@ -77,6 +77,6 @@ class LightingEstimation(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Folder for output lighting vector files.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -72,14 +72,14 @@ class MaskProcessing(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Output",
|
||||
description="Path to the output directory.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="masks",
|
||||
label="Masks",
|
||||
description="Processed segmentation masks.",
|
||||
semantic="imageList",
|
||||
value= desc.Node.internalFolder + "*.exr",
|
||||
value= "{nodeCacheFolder}/*.exr",
|
||||
group="",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -64,6 +64,6 @@ Operation types used to merge two meshes:
|
|||
name="output",
|
||||
label="Mesh",
|
||||
description="Output mesh (*.obj, *.mesh, *.meshb, *.ply, *.off, *.stl).",
|
||||
value=desc.Node.internalFolder + "mesh.stl",
|
||||
value="{nodeCacheFolder}/mesh.stl",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -72,6 +72,6 @@ This node allows to reduce the density of the Mesh.
|
|||
name="output",
|
||||
label="Mesh",
|
||||
description="Output mesh in the OBJ file format.",
|
||||
value=desc.Node.internalFolder + "mesh.obj",
|
||||
value="{nodeCacheFolder}/mesh.obj",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -87,6 +87,6 @@ for now, the parameters are difficult to control and vary a lot from one dataset
|
|||
name="output",
|
||||
label="Output",
|
||||
description="Output mesh in the OBJ file format.",
|
||||
value=desc.Node.internalFolder + "mesh.obj",
|
||||
value="{nodeCacheFolder}/mesh.obj",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -112,6 +112,6 @@ This node applies a Laplacian filtering to remove local defects from the raw Mes
|
|||
name="outputMesh",
|
||||
label="Mesh",
|
||||
description="Output mesh file.",
|
||||
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
|
||||
value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -98,6 +98,6 @@ Decimate triangles based on image masks.
|
|||
name="outputMesh",
|
||||
label="Mesh",
|
||||
description="Output mesh file.",
|
||||
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
|
||||
value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -64,6 +64,6 @@ Remove triangles from the mesh when the vertices are not visible by any camera.
|
|||
name="outputMesh",
|
||||
label="Mesh",
|
||||
description="Output mesh file.",
|
||||
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
|
||||
value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -77,6 +77,6 @@ This node allows to recompute the mesh surface with a new topology and uniform d
|
|||
name="output",
|
||||
label="Mesh",
|
||||
description="Output mesh in the OBJ file format.",
|
||||
value=desc.Node.internalFolder + "mesh.obj",
|
||||
value="{nodeCacheFolder}/mesh.obj",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -472,12 +472,12 @@ A Graph Cut Max-Flow is applied to optimally cut the volume. This cut represents
|
|||
name="outputMesh",
|
||||
label="Mesh",
|
||||
description="Output mesh.",
|
||||
value=desc.Node.internalFolder + "mesh.{outputMeshFileTypeValue}",
|
||||
value="{nodeCacheFolder}/mesh.{outputMeshFileTypeValue}",
|
||||
),
|
||||
desc.File(
|
||||
name="output",
|
||||
label="Dense SfMData",
|
||||
description="Output dense point cloud with visibilities (SfMData file format).",
|
||||
value=desc.Node.internalFolder + "densePointCloud.abc",
|
||||
value="{nodeCacheFolder}/densePointCloud.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -46,6 +46,6 @@ A Structure-From-Motion node specifically designed to handle pure rotation camer
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
value="{nodeCacheFolder}/sfm.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -46,7 +46,7 @@ Evaluate a depth map from a normals map (currently in development)
|
|||
label="Depth Map Camera",
|
||||
description="Generated depth in the camera coordinate system.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<POSE_ID>_depthMap.exr",
|
||||
value="{nodeCacheFolder}/<POSE_ID>_depthMap.exr",
|
||||
group="", # do not export on the command line
|
||||
)
|
||||
]
|
||||
|
|
|
@ -39,14 +39,14 @@ class NormalMapRendering(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="normal",
|
||||
label="Normal Maps",
|
||||
description="Rendered normal maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>_normalMap.exr",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>_normalMap.exr",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
]
|
||||
|
|
|
@ -113,6 +113,6 @@ Multiple cameras are contributing to the low frequencies and only the best one c
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output folder containing the composited panorama.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -170,12 +170,12 @@ Estimate relative camera rotations between input images.
|
|||
name="output",
|
||||
label="SfM File",
|
||||
description="Path to the output SfM file.",
|
||||
value=desc.Node.internalFolder + "panorama.abc",
|
||||
value="{nodeCacheFolder}/panorama.abc",
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Views And Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
value="{nodeCacheFolder}/cameras.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -147,7 +147,7 @@ This node allows to setup the Panorama:
|
|||
label="Contact sheet",
|
||||
semantic="image",
|
||||
description="Contact sheet path.",
|
||||
value=desc.Node.internalFolder + "contactSheetImage.jpg",
|
||||
value="{nodeCacheFolder}/contactSheetImage.jpg",
|
||||
group="", # do not export on the command line
|
||||
enabled=lambda node: node.buildContactSheet.enabled
|
||||
),
|
||||
|
@ -155,6 +155,6 @@ This node allows to setup the Panorama:
|
|||
name="outSfMData",
|
||||
label="SfMData File",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmData.sfm",
|
||||
value="{nodeCacheFolder}/sfmData.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -72,6 +72,6 @@ Merge all inputs coming from the PanoramaCompositing node.
|
|||
label="Panorama",
|
||||
description="Output merged panorama image.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "panorama.{outputFileTypeValue}",
|
||||
value="{nodeCacheFolder}/panorama.{outputFileTypeValue}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -107,20 +107,20 @@ Post process the panorama.
|
|||
label="Output Panorama Preview",
|
||||
description="Preview of the generated panorama in JPG format.",
|
||||
semantic="image",
|
||||
value=lambda attr: desc.Node.internalFolder + attr.node.previewName.value,
|
||||
value=lambda attr: "{nodeCacheFolder}/" + attr.node.previewName.value,
|
||||
),
|
||||
desc.File(
|
||||
name="outputPanorama",
|
||||
label="Output Panorama",
|
||||
description="Generated panorama in EXR format.",
|
||||
semantic="image",
|
||||
value=lambda attr: desc.Node.internalFolder + attr.node.panoramaName.value,
|
||||
value=lambda attr: "{nodeCacheFolder}/" + attr.node.panoramaName.value,
|
||||
),
|
||||
desc.File(
|
||||
name="downscaledPanoramaLevels",
|
||||
label="Downscaled Panorama Levels",
|
||||
description="Downscaled versions of the generated panorama.",
|
||||
value=lambda attr: desc.Node.internalFolder + os.path.splitext(attr.node.panoramaName.value)[0] + "_level_*.exr",
|
||||
value=lambda attr: "{nodeCacheFolder}/" + os.path.splitext(attr.node.panoramaName.value)[0] + "_level_*.exr",
|
||||
group="",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -36,6 +36,6 @@ Prepare images for Panorama pipeline: ensures that images orientations are coher
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Output SfMData file.",
|
||||
value=lambda attr: desc.Node.internalFolder + os.path.basename(attr.node.input.value),
|
||||
value=lambda attr: "{nodeCacheFolder}/" + os.path.basename(attr.node.input.value),
|
||||
),
|
||||
]
|
||||
|
|
|
@ -59,12 +59,12 @@ Estimate the seams lines between the inputs to provide an optimal compositing in
|
|||
label="Labels",
|
||||
description="",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "labels.exr",
|
||||
value="{nodeCacheFolder}/labels.exr",
|
||||
),
|
||||
desc.File(
|
||||
name="outputSfm",
|
||||
label="Output SfMData File",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "panorama.sfm",
|
||||
value="{nodeCacheFolder}/panorama.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -93,6 +93,6 @@ Compute the image warping for each input image in the panorama coordinate system
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -78,27 +78,27 @@ The lighting conditions are assumed to be known.
|
|||
name="outputPath",
|
||||
label="Output Folder",
|
||||
description="Path to the output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="outputSfmDataAlbedo",
|
||||
label="SfMData Albedo",
|
||||
description="Output SfMData file containing the albedo information.",
|
||||
value=desc.Node.internalFolder + "/albedoMaps.sfm",
|
||||
value="{nodeCacheFolder}/albedoMaps.sfm",
|
||||
group="", # remove from command line
|
||||
),
|
||||
desc.File(
|
||||
name="outputSfmDataNormal",
|
||||
label="SfMData Normal",
|
||||
description="Output SfMData file containing the normal maps information.",
|
||||
value=desc.Node.internalFolder + "/normalMaps.sfm",
|
||||
value="{nodeCacheFolder}/normalMaps.sfm",
|
||||
group="", # remove from command line
|
||||
),
|
||||
desc.File(
|
||||
name="outputSfmDataNormalPNG",
|
||||
label="SfMData Normal PNG",
|
||||
description="Output SfMData file containing the normal maps information.",
|
||||
value=desc.Node.internalFolder + "/normalMapsPNG.sfm",
|
||||
value="{nodeCacheFolder}/normalMapsPNG.sfm",
|
||||
group="", # remove from command line
|
||||
),
|
||||
# these attributes are only here to describe more accurately the output of the node
|
||||
|
@ -109,7 +109,7 @@ The lighting conditions are assumed to be known.
|
|||
label="Normal Maps Camera",
|
||||
description="Generated normal maps in the camera coordinate system.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<POSE_ID>_normals.exr",
|
||||
value="{nodeCacheFolder}/<POSE_ID>_normals.exr",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -117,7 +117,7 @@ The lighting conditions are assumed to be known.
|
|||
label="Normal Maps Camera (in false colors)",
|
||||
description="Generated normal maps in the camera coordinate system (in false colors).",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<POSE_ID>_normals.png",
|
||||
value="{nodeCacheFolder}/<POSE_ID>_normals.png",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
desc.File(
|
||||
|
@ -125,7 +125,7 @@ The lighting conditions are assumed to be known.
|
|||
label="Normal Maps World",
|
||||
description="Generated normal maps in the world coordinate system.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<POSE_ID>_normals_w.exr",
|
||||
value="{nodeCacheFolder}/<POSE_ID>_normals_w.exr",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
|
||||
|
@ -134,7 +134,7 @@ The lighting conditions are assumed to be known.
|
|||
label="Albedo Maps",
|
||||
description="Generated albedo maps.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<POSE_ID>_albedo.png",
|
||||
value="{nodeCacheFolder}/<POSE_ID>_albedo.png",
|
||||
group="", # do not export on the command line
|
||||
),
|
||||
]
|
||||
|
|
|
@ -94,14 +94,14 @@ This node export undistorted images so the depth map and texturing can be comput
|
|||
name="output",
|
||||
label="Images Folder",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="undistorted",
|
||||
label="Undistorted Images",
|
||||
description="List of undistorted images.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<VIEW_ID>.{outputFileTypeValue}",
|
||||
value="{nodeCacheFolder}/<VIEW_ID>.{outputFileTypeValue}",
|
||||
group="",
|
||||
advanced=True,
|
||||
),
|
||||
|
|
|
@ -64,6 +64,6 @@ Estimate relative pose between each pair of views that share tracks.
|
|||
name="output",
|
||||
label="Pairs Info",
|
||||
description="Path to the output Pairs info files directory.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -59,6 +59,6 @@ Select Connected Views based on SfM landmarks.
|
|||
name="output",
|
||||
label="Connected Views",
|
||||
description="List of connected views in a text file.",
|
||||
value=desc.Node.internalFolder + "connectedViews.txt",
|
||||
value="{nodeCacheFolder}/connectedViews.txt",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -107,12 +107,12 @@ The alignment can be based on:
|
|||
name="output",
|
||||
label="SfMData File",
|
||||
description="Output SfMData file.",
|
||||
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
|
||||
value=lambda attr: "{nodeCacheFolder}/" + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
value="{nodeCacheFolder}/cameras.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -40,7 +40,7 @@ class SfMChecking(desc.Node):
|
|||
name="output",
|
||||
label="SfM File",
|
||||
description="Path to the output SfM file.",
|
||||
value=desc.Node.internalFolder + "sfmData.abc",
|
||||
value="{nodeCacheFolder}/sfmData.abc",
|
||||
)
|
||||
]
|
||||
|
||||
|
|
|
@ -36,6 +36,6 @@ class SfMColorizing(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfM file.",
|
||||
value=desc.Node.internalFolder + "sfmData.abc",
|
||||
value="{nodeCacheFolder}/sfmData.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -46,12 +46,12 @@ This node allows select views from sfmData file using a regular expresion.
|
|||
name="outputSfMData_selected",
|
||||
label="SfMData_selected",
|
||||
description="Output SfMData file containing selected views.",
|
||||
value=desc.Node.internalFolder + "/selectedSfmData.sfm",
|
||||
value="{nodeCacheFolder}/selectedSfmData.sfm",
|
||||
),
|
||||
desc.File(
|
||||
name="outputSfMData_unselected",
|
||||
label="SfMData_unselected",
|
||||
description="Output SfMData file containing remaining views.",
|
||||
value=desc.Node.internalFolder + "/unselectedSfmData.sfm",
|
||||
value="{nodeCacheFolder}/unselectedSfmData.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -98,6 +98,6 @@ Merges two SfMData files into a single one. Fails if some UID is shared among th
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfM file (in SfMData format).",
|
||||
value=lambda attr: desc.Node.internalFolder + "sfmData.{fileExtValue}",
|
||||
value="{nodeCacheFolder}/sfmData.{fileExtValue}",
|
||||
)
|
||||
]
|
||||
|
|
|
@ -50,6 +50,6 @@ Use a JSON file to inject poses inside the SfMData.
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfM file.",
|
||||
value=desc.Node.internalFolder + "sfmData.abc",
|
||||
value="{nodeCacheFolder}/sfmData.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -36,12 +36,12 @@ class SfMSplitReconstructed(desc.AVCommandLineNode):
|
|||
name="reconstructedOutput",
|
||||
label="Reconstructed SfMData File",
|
||||
description="SfMData file containing the reconstructed cameras.",
|
||||
value=desc.Node.internalFolder + "sfmReconstructed.abc",
|
||||
value="{nodeCacheFolder}/sfmReconstructed.abc",
|
||||
),
|
||||
desc.File(
|
||||
name="notReconstructedOutput",
|
||||
label="Not Reconstructed SfMData File",
|
||||
description="SfMData file containing the non-reconstructed cameras.",
|
||||
value=desc.Node.internalFolder + "sfmNonReconstructed.abc",
|
||||
value="{nodeCacheFolder}/sfmNonReconstructed.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -35,6 +35,6 @@ Assumes the input SfMData describes a set of cameras capturing a scene at a comm
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfM file (in SfMData format).",
|
||||
value=lambda attr: desc.Node.internalFolder + "sfmData.sfm",
|
||||
value="{nodeCacheFolder}/sfmData.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -99,12 +99,12 @@ This node allows to transfer poses and/or intrinsics form one SfM scene onto ano
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfM point cloud file (in SfMData format).",
|
||||
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
|
||||
value=lambda attr: "{nodeCacheFolder}/" + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
value="{nodeCacheFolder}/cameras.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -255,12 +255,12 @@ The transformation can be based on:
|
|||
name="output",
|
||||
label="SfMData File",
|
||||
description="Aligned SfMData file.",
|
||||
value=lambda attr: desc.Node.internalFolder + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
|
||||
value=lambda attr: "{nodeCacheFolder}/" + (os.path.splitext(os.path.basename(attr.node.input.value))[0] or "sfmData") + ".abc",
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
value="{nodeCacheFolder}/cameras.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -143,12 +143,12 @@ Contrary to the StructureFromMotion node, this node does not infer the camera po
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
value="{nodeCacheFolder}/sfm.abc",
|
||||
),
|
||||
desc.File(
|
||||
name="extraInfoFolder",
|
||||
label="Folder",
|
||||
description="Folder for intermediate reconstruction files and additional reconstruction information files.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -79,6 +79,6 @@ class SfMBootStraping(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "bootstrap.abc",
|
||||
value="{nodeCacheFolder}/bootstrap.abc",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -170,12 +170,12 @@ class SfMExpanding(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfMData file.",
|
||||
value=desc.Node.internalFolder + "sfmExpanded.abc",
|
||||
value="{nodeCacheFolder}/sfmExpanded.abc",
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Views And Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
value="{nodeCacheFolder}/cameras.sfm",
|
||||
)
|
||||
]
|
||||
|
|
|
@ -84,6 +84,6 @@ Spheres can be automatically detected or manually defined in the interface.
|
|||
name="output",
|
||||
label="Output Path",
|
||||
description="Sphere detection information will be written here.",
|
||||
value=desc.Node.internalFolder + "/detection.json",
|
||||
value="{nodeCacheFolder}/detection.json",
|
||||
)
|
||||
]
|
||||
|
|
|
@ -128,12 +128,12 @@ class Split360Images(desc.AVCommandLineNode):
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Output folder for extracted frames.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="outSfMData",
|
||||
label="SfMData File",
|
||||
description="Output SfMData file.",
|
||||
value=desc.Node.internalFolder + "rig.sfm",
|
||||
value="{nodeCacheFolder}/rig.sfm",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -376,18 +376,18 @@ It iterates like that, adding cameras and triangulating new 2D features into 3D
|
|||
name="output",
|
||||
label="SfMData",
|
||||
description="Path to the output SfM point cloud file (in SfMData format).",
|
||||
value=desc.Node.internalFolder + "sfm.abc",
|
||||
value="{nodeCacheFolder}/sfm.abc",
|
||||
),
|
||||
desc.File(
|
||||
name="outputViewsAndPoses",
|
||||
label="Views And Poses",
|
||||
description="Path to the output SfMData file with cameras (views and poses).",
|
||||
value=desc.Node.internalFolder + "cameras.sfm",
|
||||
value="{nodeCacheFolder}/cameras.sfm",
|
||||
),
|
||||
desc.File(
|
||||
name="extraInfoFolder",
|
||||
label="Folder",
|
||||
description="Folder for intermediate reconstruction files and additional reconstruction information files.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -336,13 +336,13 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
name="output",
|
||||
label="Folder",
|
||||
description="Folder for output mesh: OBJ, material and texture files.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="outputMesh",
|
||||
label="Mesh",
|
||||
description="Output mesh file.",
|
||||
value=desc.Node.internalFolder + "texturedMesh.{outputMeshFileTypeValue}",
|
||||
value="{nodeCacheFolder}/texturedMesh.{outputMeshFileTypeValue}",
|
||||
group="",
|
||||
),
|
||||
desc.File(
|
||||
|
@ -350,22 +350,22 @@ Many cameras are contributing to the low frequencies and only the best ones cont
|
|||
enabled=lambda node: node.outputMeshFileType.value == "obj",
|
||||
label="Material",
|
||||
description="Output material file.",
|
||||
value=desc.Node.internalFolder + "texturedMesh.mtl",
|
||||
value="{nodeCacheFolder}/texturedMesh.mtl",
|
||||
group="",
|
||||
),
|
||||
desc.File(
|
||||
name="outputTextures",
|
||||
label="Textures",
|
||||
description="Output texture files.",
|
||||
value=lambda attr: desc.Node.internalFolder + "texture_*." + attr.node.colorMapping.colorMappingFileType.value if attr.node.colorMapping.enable.value else "",
|
||||
value=lambda attr: "{nodeCacheFolder}/texture_*." + attr.node.colorMapping.colorMappingFileType.value if attr.node.colorMapping.enable.value else "",
|
||||
group="",
|
||||
),
|
||||
]
|
||||
|
||||
def upgradeAttributeValues(self, attrValues, fromVersion):
|
||||
if fromVersion < Version(6, 0):
|
||||
outputTextureFileType = attrValues['outputTextureFileType']
|
||||
outputTextureFileType = attrValues["outputTextureFileType"]
|
||||
if isinstance(outputTextureFileType, str):
|
||||
attrValues['colorMapping'] = {}
|
||||
attrValues['colorMapping']['colorMappingFileType'] = outputTextureFileType
|
||||
attrValues["colorMapping"] = {}
|
||||
attrValues["colorMapping"]["colorMappingFileType"] = outputTextureFileType
|
||||
return attrValues
|
||||
|
|
|
@ -92,6 +92,6 @@ It fuses all feature matches between image pairs into tracks. Each track represe
|
|||
name="output",
|
||||
label="Tracks",
|
||||
description="Path to the output tracks file.",
|
||||
value=desc.Node.internalFolder + "tracksFile.json",
|
||||
value="{nodeCacheFolder}/tracksFile.json",
|
||||
),
|
||||
]
|
||||
|
|
|
@ -128,14 +128,14 @@ One frame per viewpoint will be rendered, and the undistorted views can optional
|
|||
name="output",
|
||||
label="Output",
|
||||
description="Output folder.",
|
||||
value=desc.Node.internalFolder,
|
||||
value="{nodeCacheFolder}",
|
||||
),
|
||||
desc.File(
|
||||
name="frames",
|
||||
label="Frames",
|
||||
description="Frames rendered in Blender.",
|
||||
semantic="image",
|
||||
value=desc.Node.internalFolder + "<FILESTEM>_preview.jpg",
|
||||
value="{nodeCacheFolder}/<FILESTEM>_preview.jpg",
|
||||
group="",
|
||||
),
|
||||
]
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue