From 2beca01cec57791930044d6ae2580d8424fffec1 Mon Sep 17 00:00:00 2001 From: Fabien Castan Date: Fri, 16 Feb 2018 23:19:12 +0100 Subject: [PATCH 1/3] [submitters] simpleFarm: use a config file for serviceKeys --- meshroom/submitters/simpleFarmConfig.json | 18 ++++++++++++++++++ meshroom/submitters/simpleFarmSubmitter.py | 20 +++++++++++--------- 2 files changed, 29 insertions(+), 9 deletions(-) create mode 100644 meshroom/submitters/simpleFarmConfig.json diff --git a/meshroom/submitters/simpleFarmConfig.json b/meshroom/submitters/simpleFarmConfig.json new file mode 100644 index 00000000..dd0e41d0 --- /dev/null +++ b/meshroom/submitters/simpleFarmConfig.json @@ -0,0 +1,18 @@ +{ + "BASE": ["mikrosRender", "!RenderLow", "!Wkst_OS", "!\"vfxpc1*\"", "!\"vfxpc??\""], + "CPU": { + "NONE": [], + "NORMAL": [], + "INTENSIVE": ["\"RenderHigh*\"", "@.nCPUs>20"] + }, + "RAM": { + "NONE": [], + "NORMAL": ["@.mem>8"], + "INTENSIVE": ["@.mem>30"] + }, + "GPU": { + "NONE": [], + "NORMAL": ["!\"*loc*\"", "Wkst"], + "INTENSIVE": ["!\"*loc*\"", "Wkst"] + } +} diff --git a/meshroom/submitters/simpleFarmSubmitter.py b/meshroom/submitters/simpleFarmSubmitter.py index 3ff9b055..e8686271 100644 --- a/meshroom/submitters/simpleFarmSubmitter.py +++ b/meshroom/submitters/simpleFarmSubmitter.py @@ -2,16 +2,21 @@ # coding:utf-8 import os +import json import simpleFarm from meshroom.core.desc import Level from meshroom.core.submitter import BaseSubmitter +currentDir = os.path.dirname(os.path.realpath(__file__)) + class SimpleFarmSubmitter(BaseSubmitter): MESHROOM_PACKAGE = os.environ.get('REZ_USED_REQUEST', '') - BASE_REQUIREMENTS = ['mikrosRender', '!RenderLow', '!Wkst_OS', '!"vfxpc1*"', '!"vfxpc??"'] + filepath = os.environ.get('SIMPLEFARMCONFIG', os.path.join(currentDir, 'simpleFarmConfig.json')) + config = json.load(open(filepath)) + ENGINE = '' DEFAULT_TAGS = {'prod': ''} @@ -34,13 +39,10 @@ class SimpleFarmSubmitter(BaseSubmitter): tags['nbFrames'] = nbFrames tags['prod'] = self.prod - allRequirements = list(self.BASE_REQUIREMENTS) - if node.nodeDesc.cpu == Level.INTENSIVE: - allRequirements.extend(['"RenderHigh*"', '@.nCPUs>20']) - if node.nodeDesc.gpu != Level.NONE: - allRequirements.extend(['!"*loc*"', 'Wkst']) - if node.nodeDesc.ram == Level.INTENSIVE: - allRequirements.append('@.mem>30') + allRequirements = self.config.get('BASE', []) + allRequirements.extend(self.config['CPU'].get(node.nodeDesc.cpu.name, [])) + allRequirements.extend(self.config['RAM'].get(node.nodeDesc.ram.name, [])) + allRequirements.extend(self.config['GPU'].get(node.nodeDesc.gpu.name, [])) task = simpleFarm.Task( name=node.nodeType, @@ -48,7 +50,7 @@ class SimpleFarmSubmitter(BaseSubmitter): nodeName=node.name, meshroomFile=meshroomFile, parallelArgs=parallelArgs), tags=tags, rezPackages=[self.MESHROOM_PACKAGE], - requirements={'service': ','.join(allRequirements)}, + requirements={'service': str(','.join(allRequirements))}, **arguments) return task From edcf72445b00a95166ca196f559ab71334743141 Mon Sep 17 00:00:00 2001 From: Fabien Castan Date: Thu, 22 Feb 2018 12:46:21 +0100 Subject: [PATCH 2/3] [nodes] new meshFiltering node --- meshroom/nodes/aliceVision/MeshFiltering.py | 43 +++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 meshroom/nodes/aliceVision/MeshFiltering.py diff --git a/meshroom/nodes/aliceVision/MeshFiltering.py b/meshroom/nodes/aliceVision/MeshFiltering.py new file mode 100644 index 00000000..4bf732c8 --- /dev/null +++ b/meshroom/nodes/aliceVision/MeshFiltering.py @@ -0,0 +1,43 @@ +import sys +from meshroom.core import desc + + +class MeshFiltering(desc.CommandLineNode): + internalFolder = '{cache}/{nodeType}/{uid0}/' + commandLine = 'aliceVision_meshFiltering {allParams}' + + inputs = [ + desc.File( + name='input', + label='Input', + description='''Input Mesh (OBJ file format).''', + value='', + uid=[0], + ), + desc.IntParam( + name='iterations', + label='Nb Iterations', + description='', + value=10, + range=(0, 50, 1), + uid=[0], + ), + desc.FloatParam( + name='lambda', + label='Lambda', + description='', + value=1.0, + range=(0.0, 10.0, 0.1), + uid=[0], + ), + ] + + outputs = [ + desc.File( + name='output', + label='Output', + description='''Output mesh (OBJ file format).''', + value='{cache}/{nodeType}/{uid0}/mesh.obj', + uid=[], + ), + ] From 4a7c47a258efe98bfdb414af243894fab7318f4f Mon Sep 17 00:00:00 2001 From: Fabien Castan Date: Thu, 22 Feb 2018 12:46:52 +0100 Subject: [PATCH 3/3] [nodes] Meshing: new filtering parameters --- meshroom/nodes/aliceVision/Meshing.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/meshroom/nodes/aliceVision/Meshing.py b/meshroom/nodes/aliceVision/Meshing.py index e92bb9c9..80507a5a 100644 --- a/meshroom/nodes/aliceVision/Meshing.py +++ b/meshroom/nodes/aliceVision/Meshing.py @@ -40,6 +40,22 @@ class Meshing(desc.CommandLineNode): exclusive=True, uid=[0], ), + desc.IntParam( + name='smoothingIteration', + label='Smoothing Iteration', + description='Number of Smoothing Iterations', + value=10, + range=(0, 50, 1), + uid=[0], + ), + desc.FloatParam( + name='smoothingWeight', + label='Smoothing Weight', + description='Smoothing Weight', + value=1.0, + range=(0, 2, 1), + uid=[0], + ), desc.File( name="depthMapFolder", label='Depth Maps Folder',