mirror of
https://github.com/alicevision/Meshroom.git
synced 2025-06-11 07:11:52 +02:00
[nodes] Adding mesh render with edge detection and changes on the args
Added the possibility of rendering the output of the meshing node into a edge detection render of the obj. Added the activation and deactivation of the background images as an option. Improving the way the arguments are shown with a conditionnal display of some arguments.
This commit is contained in:
parent
1e2aaff884
commit
f8141796f3
3 changed files with 497 additions and 347 deletions
|
@ -8,6 +8,27 @@ currentDir = os.path.dirname(os.path.abspath(__file__))
|
|||
class RenderAnimatedCamera(desc.CommandLineNode):
|
||||
commandLine = '{blenderPathValue} -b --python {scriptPathValue} -- {allParams}'
|
||||
|
||||
category = 'Rendition'
|
||||
documentation = '''
|
||||
The goal of this node is to make a render of the sfmData a Blender scene using Blender's API.
|
||||
It supports both Point Clouds (.abc) and Meshes (.obj) and can use a background image of you use undistorted images.
|
||||
We have several inputs:
|
||||
**blenderPath points to the blender executable
|
||||
**scriptPath point to the script containing the code.
|
||||
**sfMCameraPath point to the AnimatedCamera we are going to be tracking.
|
||||
**useBackground determines if you want to use images as a background.
|
||||
**undistortedImages path toward the images you can use as background.
|
||||
**sfMData the data you want to render.
|
||||
(point cloud)
|
||||
**pointCloudDensity changes the density of the point cloud rendered.
|
||||
**particleSize changes the size of each point in the point cloud rendered.
|
||||
**particleColor changes the color of each point in the point cloud rendered.
|
||||
(Mesh)
|
||||
**edgeColor is the color of the outline of the mesh rendered.
|
||||
**outputFormat is the video format we want to export of rendition in.
|
||||
**outputPath point to where is video is going to be saved.
|
||||
'''
|
||||
|
||||
inputs = [
|
||||
desc.File(
|
||||
name='blenderPath',
|
||||
|
@ -20,8 +41,8 @@ class RenderAnimatedCamera(desc.CommandLineNode):
|
|||
desc.File(
|
||||
name='scriptPath',
|
||||
label='Script Path',
|
||||
description='''Path to blender binary.''',
|
||||
value=os.path.join(currentDir, 'scripts' ,'camera_support.py'),
|
||||
description='''Path to the script in the project.''',
|
||||
value=os.path.join(currentDir, 'scripts' ,'renderAnimatedCameraInBlender.py'),
|
||||
uid=[],
|
||||
group='',
|
||||
),
|
||||
|
@ -32,54 +53,90 @@ class RenderAnimatedCamera(desc.CommandLineNode):
|
|||
value='',
|
||||
uid=[0],
|
||||
),
|
||||
desc.File(
|
||||
name='sfMData',
|
||||
label='SFM Data',
|
||||
description='''Input the previously used SFM Data.''',
|
||||
value='',
|
||||
desc.BoolParam(
|
||||
name='useBackground',
|
||||
label='Display Background',
|
||||
description='Tick if you want to use original image dataset as background',
|
||||
value=True,
|
||||
uid=[0],
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='cloudPointDensity',
|
||||
label='Cloud Point Density',
|
||||
description='''Number of point from the cloud rendered''',
|
||||
value=0.25,
|
||||
range=(0.01, 0.5, 0.01),
|
||||
uid=[0],
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='particleSize',
|
||||
label='Particle Size',
|
||||
description='''Scale of every particle used to show the cloud of point''',
|
||||
value=0.25,
|
||||
range=(0.01, 1, 0.01),
|
||||
uid=[0],
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='particleColor',
|
||||
label='Particle Color',
|
||||
description='''Color of every particle used to show the cloud of point''',
|
||||
value=['Grey'],
|
||||
values=['Grey', 'White', 'Red', 'Green', 'Magenta'],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
joinChar=',',
|
||||
),
|
||||
desc.File(
|
||||
name='undistortedImages',
|
||||
label='Images Folder',
|
||||
description='''Input the processed images.''',
|
||||
value='',
|
||||
uid=[0],
|
||||
enabled=lambda node: node.displayBackground.useBackground.value,
|
||||
),
|
||||
desc.File(
|
||||
name='sfMData',
|
||||
label='SFM Data',
|
||||
description='''Input the previously used SFM Data.''',
|
||||
value='',
|
||||
uid=[0],
|
||||
),
|
||||
desc.GroupAttribute(name="isCloudPoint", label="Point Cloud Settings", group=None, enabled=lambda node: node.sfMData.value.endswith('.abc'), description="Setting of the render if we use a Point Cloud. (SFM Data is .abc)", groupDesc=[
|
||||
desc.FloatParam(
|
||||
name='pointCloudDensity',
|
||||
label='Point Cloud Density',
|
||||
description='''Number of point from the point cloud rendered''',
|
||||
value=0.25,
|
||||
range=(0.01, 0.5, 0.01),
|
||||
uid=[0],
|
||||
enabled=lambda node: node.sfMData.value.endswith('.abc'),
|
||||
),
|
||||
desc.FloatParam(
|
||||
name='particleSize',
|
||||
label='Particle Size',
|
||||
description='''Scale of every particle used to show the point cloud''',
|
||||
value=0.25,
|
||||
range=(0.01, 1, 0.01),
|
||||
uid=[0],
|
||||
enabled=lambda node: node.sfMData.value.endswith('.abc'),
|
||||
),
|
||||
desc.ChoiceParam(
|
||||
name='particleColor',
|
||||
label='Particle Color',
|
||||
description='''Color of every particle used to show the point cloud (SFM Data is .abc)''',
|
||||
value='Red',
|
||||
values=['Grey', 'White', 'Red', 'Green', 'Magenta'],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
joinChar=',',
|
||||
enabled=lambda node: node.sfMData.value.endswith('.abc'),
|
||||
),
|
||||
]),
|
||||
desc.GroupAttribute(name="isMesh", label="Mesh Settings", group=None, enabled=lambda node: node.sfMData.value.endswith('.obj'), description="Setting of the render if we use a Mesh. (SFM Data is .obj)", groupDesc=[
|
||||
desc.ChoiceParam(
|
||||
name='edgeColor',
|
||||
label='Edge Color',
|
||||
description='''Color of the edges of the rendered object (SFM Data is .obj)''',
|
||||
value='Red',
|
||||
values=['Grey', 'White', 'Red', 'Green', 'Magenta'],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
joinChar=',',
|
||||
enabled=lambda node: node.sfMData.value.endswith('.obj'),
|
||||
),
|
||||
]),
|
||||
desc.ChoiceParam(
|
||||
name='outputFormat',
|
||||
label='Output Format',
|
||||
description='''Choose the format of the output among this list of supported format''',
|
||||
value='mkv',
|
||||
values=['mkv', 'mp4', 'mov', 'avi'],
|
||||
exclusive=True,
|
||||
uid=[0],
|
||||
joinChar=',',
|
||||
),
|
||||
]
|
||||
|
||||
outputs = [
|
||||
desc.File(
|
||||
name='outputPath',
|
||||
label='Output Video',
|
||||
label='Output Path',
|
||||
description='''Output folder.''',
|
||||
value=desc.Node.internalFolder, # PLACE HOLDER TO CHANGE
|
||||
value=desc.Node.internalFolder,
|
||||
uid=[],
|
||||
)
|
||||
]
|
Loading…
Add table
Add a link
Reference in a new issue